/* * JBoss, Home of Professional Open Source. * Copyright 2012, Red Hat, Inc., and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.picketlink.identity.federation; import java.io.IOException; import java.security.GeneralSecurityException; import javax.security.auth.login.LoginException; import javax.xml.crypto.dsig.XMLSignatureException; import javax.xml.stream.Location; import javax.xml.ws.WebServiceException; import org.picketlink.identity.federation.core.exceptions.ConfigurationException; import org.picketlink.identity.federation.core.exceptions.ParsingException; import org.picketlink.identity.federation.core.exceptions.ProcessingException; import org.picketlink.identity.federation.core.interfaces.TrustKeyConfigurationException; import org.picketlink.identity.federation.core.interfaces.TrustKeyProcessingException; import org.picketlink.identity.federation.core.saml.v2.exceptions.AssertionExpiredException; import org.picketlink.identity.federation.core.saml.v2.exceptions.IssueInstantMissingException; import org.picketlink.identity.federation.core.saml.v2.exceptions.IssuerNotTrustedException; import org.picketlink.identity.federation.core.saml.v2.exceptions.SignatureValidationException; import org.picketlink.identity.federation.core.wstrust.WSTrustException; import org.w3c.dom.Element; /** * <p>This interface acts as a Logger Facade for PicketLink, from which exceptions and messages should be created or logged.</p> * <p>As PicketLink supports multiple containers and its versions, the main objective of this interface is to abstract the logging aspects from the code and provide different logging implementations * for each supported binding/container.</p> * * @author <a href="mailto:psilva@redhat.com">Pedro Silva</a> * @see {@link PicketLinkLoggerFactory} */ public interface PicketLinkLogger { /** * <p>Creates an {@link IllegalArgumentException} for null arguments.</p> * * @param argument * @return */ IllegalArgumentException nullArgumentError(String argument); /** * <p>Creates an {@link IllegalArgumentException} for arguments that should not be the same.</p> * * @param string * @return */ IllegalArgumentException shouldNotBeTheSameError(String string); /** * <p>Creates an {@link ProcessingException} for resources that are not found.</p> * * @param resource * @return */ ProcessingException resourceNotFound(String resource); /** * <p>Creates an {@link ProcessingException} for generics processing errors.</p> * @param message * * @param t * @return */ ProcessingException processingError(Throwable t); /** * <p>Creates an {@link RuntimeException} for not supported types.</p> * * @param name * @return */ RuntimeException unsupportedType(String name); /** * <p>Creates a {@link ProcessingException} for exceptions raised during signature processing.</p> * * @param e * @return */ XMLSignatureException signatureError(Throwable e); /** * <p>Creates a {@link RuntimeException} for null values.</p> * * @param nullValue * @return */ RuntimeException nullValueError(String nullValue); /** * <p>Creates a {@link RuntimeException} for not implemented methods or features.</p> * @param string * * @return */ RuntimeException notImplementedYet(String string); /** * <p>Creates a {@link IllegalStateException} for the case the Audit Manager is null.</p> * * @return */ IllegalStateException auditNullAuditManager(); /** * <p>Indicates if the logging level is set to INFO.</p> * * @return */ boolean isInfoEnabled(); /** * <p>Logs a PicketLink Audit Event.</p> * * @param auditEvent */ void auditEvent(String auditEvent); /** * <p>Creates a {@link RuntimeException} for missing values.</p> * * @param string * @return */ RuntimeException injectedValueMissing(String value); /** * <p>Logs a message during the KeyStore setup.</p> */ void keyStoreSetup(); /** * <p>Creates a {@link IllegalStateException} for the case where the KeyStore is null.</p> * * @return */ IllegalStateException keyStoreNullStore(); /** * <p>Logs a message for the cases where no public key was found for a given alias.</p> * * @param alias */ void keyStoreNullPublicKeyForAlias(String alias); /** * <p>Creates a {@link TrustKeyConfigurationException} for exceptions raised during the KeyStore configuration.</p> * * @param t * @return */ TrustKeyConfigurationException keyStoreConfigurationError(Throwable t); /** * <p>Creates a {@link TrustKeyConfigurationException} for exceptions raised during the KeyStore processing.</p> * * @param t * @return */ TrustKeyProcessingException keyStoreProcessingError(Throwable t); /** * @param domain * @return */ IllegalStateException keyStoreMissingDomainAlias(String domain); /** * <p>Creates a {@link RuntimeException} for the case where the signing key password is null.</p> * * @return */ RuntimeException keyStoreNullSigningKeyPass(); /** * <p>Creates a {@link RuntimeException} for the case where key store are not located.</p> * * @param keyStore * @return */ RuntimeException keyStoreNotLocated(String keyStore); /** * <p>Creates a {@link IllegalStateException} for the case where the alias is null.</p> * * @return */ IllegalStateException keyStoreNullAlias(); /** * <p>Creates a {@link RuntimeException} for the case where parser founds a unknown end element.</p> * * @param endElementName * @return */ RuntimeException parserUnknownEndElement(String endElementName); /** * @param tag * @param location * @return */ RuntimeException parserUnknownTag(String tag, Location location); /** * @param string * @return */ ParsingException parserRequiredAttribute(String string); /** * @param elementName * @param location * @return */ RuntimeException parserUnknownStartElement(String elementName, Location location); /** * @return */ IllegalStateException parserNullStartElement(); /** * @param xsiTypeValue * @return */ ParsingException parserUnknownXSI(String xsiTypeValue); /** * @param string * @return */ ParsingException parserExpectedEndTag(String tagName); /** * @param e * @return */ ParsingException parserException(Throwable t); /** * @param string * @return */ ParsingException parserExpectedTextValue(String string); /** * @param expectedXsi * @return */ RuntimeException parserExpectedXSI(String expectedXsi); /** * @param tag * @param foundElementTag * @return */ RuntimeException parserExpectedTag(String tag, String foundElementTag); /** * @param elementName * @return */ RuntimeException parserFailed(String elementName); /** * @return */ ParsingException parserUnableParsingNullToken(); /** * @param t * @return */ ParsingException parserError(Throwable t); /** * * @param e * @return */ RuntimeException xacmlPDPMessageProcessingError(Throwable t); /** * @param policyConfigFileName * @return */ IllegalStateException fileNotLocated(String policyConfigFileName); /** * @param string * @return */ IllegalStateException optionNotSet(String option); /** * */ void stsTokenRegistryNotSpecified(); /** * @param tokenRegistryOption */ void stsTokenRegistryInvalidType(String tokenRegistryOption); /** * */ void stsTokenRegistryInstantiationError(); /** * */ void stsRevocationRegistryNotSpecified(); /** * @param registryOption */ void stsRevocationRegistryInvalidType(String registryOption); /** * */ void stsRevocationRegistryInstantiationError(); /** * @return */ ProcessingException samlAssertionExpiredError(); /** * @return */ ProcessingException assertionInvalidError(); /** * @param name * @return */ RuntimeException writerUnknownTypeError(String name); /** * @param string * @return */ ProcessingException writerNullValueError(String value); /** * @param value * @return */ RuntimeException writerUnsupportedAttributeValueError(String value); /** * @return */ IllegalArgumentException issuerInfoMissingStatusCodeError(); /** * @param fqn * @return */ ProcessingException classNotLoadedError(String fqn); /** * @param fqn * @param e * @return */ ProcessingException couldNotCreateInstance(String fqn, Throwable t); /** * @param property * @return */ RuntimeException systemPropertyMissingError(String property); /** * @param t */ void samlMetaDataIdentityProviderLoadingError(Throwable t); /** * @param t */ void samlMetaDataServiceProviderLoadingError(Throwable t); /** * @param t */ void signatureAssertionValidationError(Throwable t); /** * @param id */ void samlAssertionExpired(String id); /** * @param attrValue * @return */ RuntimeException unknownObjectType(Object attrValue); /** * @param e * @return */ ConfigurationException configurationError(Throwable t); /** * @param message */ void trace(String message); /** * @param string * @param t */ void trace(String message, Throwable t); /** * @param algo * @return */ RuntimeException signatureUnknownAlgo(String algo); /** * @param message * @return */ IllegalArgumentException invalidArgumentError(String message); /** * @param configuration * @param protocolContext * @return */ ProcessingException stsNoTokenProviderError(String configuration, String protocolContext); /** * @param message */ void debug(String message); /** * @param fileName */ void stsConfigurationFileNotFoundTCL(String fileName); /** * @param fileName */ void stsConfigurationFileNotFoundClassLoader(String fileName); /** * @param fileName */ void stsUsingDefaultConfiguration(String fileName); /** * @param fileName */ void stsConfigurationFileLoaded(String fileName); /** * @param t * @return */ ConfigurationException stsConfigurationFileParsingError(Throwable t); /** * @param message * @return */ IOException notSerializableError(String message); /** * */ void trustKeyManagerCreationError(Throwable t); /** * @param message */ void info(String message); /** * @param string */ void warn(String message); /** * @param message */ void error(String message); /** * @param t */ void xmlCouldNotGetSchema(Throwable t); /** * @return */ boolean isTraceEnabled(); /** * @return */ boolean isDebugEnabled(); /** * @param name * @param t */ void jceProviderCouldNotBeLoaded(String name, Throwable t); /** * @return */ ProcessingException writerInvalidKeyInfoNullContentError(); /** * @param first * @param second * @return */ RuntimeException notEqualError(String first, String second); /** * @param message * @return */ IllegalArgumentException wrongTypeError(String message); /** * @param certAlgo * @return */ RuntimeException encryptUnknownAlgoError(String certAlgo); /** * @param element * @return */ IllegalStateException domMissingDocElementError(String element); /** * @param element * @return */ IllegalStateException domMissingElementError(String element); /** * @return */ WebServiceException stsWSInvalidTokenRequestError(); /** * @param t * @return */ WebServiceException stsWSError(Throwable t); /** * @param t * @return */ WebServiceException stsWSConfigurationError(Throwable t); /** * @param requestType * @return */ WSTrustException stsWSInvalidRequestTypeError(String requestType); /** * @param t * @return */ WebServiceException stsWSHandlingTokenRequestError(Throwable t); /** * @param t * @return */ WebServiceException stsWSResponseWritingError(Throwable t); /** * @param t * @return */ RuntimeException stsUnableToConstructKeyManagerError(Throwable t); /** * @param serviceName * @param t * @return */ RuntimeException stsPublicKeyError(String serviceName, Throwable t); /** * @param t * @return */ RuntimeException stsSigningKeyPairError(Throwable t); /** * @param t * @return */ RuntimeException stsPublicKeyCertError(Throwable t); /** * */ void stsTokenTimeoutNotSpecified(); /** * @param t * @return */ WSTrustException wsTrustCombinedSecretKeyError(Throwable t); /** * @return */ WSTrustException wsTrustClientPublicKeyError(); /** * @param t * @return */ WSTrustException stsError(Throwable t); /** * @param message * @param t * @return */ XMLSignatureException signatureInvalidError(String message, Throwable t); /** * */ void stsSecurityTokenSignatureNotVerified(); /** * @param e * @return */ RuntimeException encryptProcessError(Throwable t); /** * */ void stsSecurityTokenShouldBeEncrypted(); /** * @param password * @return */ RuntimeException unableToDecodePasswordError(String password); /** * @param configFile * @return */ IllegalStateException couldNotLoadProperties(String configFile); /** * @param t * @return */ WSTrustException stsKeyInfoTypeCreationError(Throwable t); /** * */ void stsSecretKeyNotEncrypted(); /** * @return */ LoginException authCouldNotIssueSAMLToken(); /** * @param t * @return */ LoginException authLoginError(Throwable t); /** * @param e * @return */ IllegalStateException authCouldNotCreateWSTrustClient(Throwable t); /** * @param id */ void samlAssertionWithoutExpiration(String id); /** * @param token * @return */ LoginException authCouldNotValidateSAMLToken(Element token); /** * @return */ LoginException authCouldNotLocateSecurityToken(); /** * @return */ ProcessingException wsTrustNullCancelTargetError(); /** * @param t * @return */ ProcessingException samlAssertionMarshallError(Throwable t); /** * @return */ ProcessingException wsTrustNullRenewTargetError(); /** * @param t * @return */ ProcessingException samlAssertionUnmarshallError(Throwable t); /** * @return */ ProcessingException samlAssertionRevokedCouldNotRenew(String id); /** * @return */ ProcessingException wsTrustNullValidationTargetError(); /** * @param attributeProviderClassName */ void stsWrongAttributeProviderTypeNotInstalled(String attributeProviderClassName); /** * @param t */ void attributeProviderInstationError(Throwable t); /** * @param nodeAsString */ void samlAssertion(String nodeAsString); /** * @param dce * @return */ RuntimeException wsTrustUnableToGetDataTypeFactory(Throwable t); /** * @return */ ProcessingException wsTrustValidationStatusCodeMissing(); /** * @param activeSessionCount */ void samlIdentityServerActiveSessionCount(int activeSessionCount); /** * @param id * @param activeSessionCount */ void samlIdentityServerSessionCreated(String id, int activeSessionCount); /** * @param id * @param activeSessionCount */ void samlIdentityServerSessionDestroyed(String id, int activeSessionCount); /** * @param name * @return */ RuntimeException unknowCredentialType(String name); /** * @param t */ void samlHandlerRoleGeneratorSetupError(Throwable t); /** * @return */ RuntimeException samlHandlerAssertionNotFound(); /** * @return */ ProcessingException samlHandlerAuthnRequestIsNull(); /** * @param t */ void samlHandlerAuthenticationError(Throwable t); /** * @return */ IllegalArgumentException samlHandlerNoAssertionFromIDP(); /** * @return */ ProcessingException samlHandlerNullEncryptedAssertion(); /** * @return */ SecurityException samlHandlerIDPAuthenticationFailedError(); /** * @param aee * @return */ ProcessingException assertionExpiredError(AssertionExpiredException aee); /** * @param attrValue * @return */ RuntimeException unsupportedRoleType(Object attrValue); /** * @param inResponseTo * @param authnRequestId */ void samlHandlerFailedInResponseToVerification(String inResponseTo, String authnRequestId); /** * @return */ ProcessingException samlHandlerFailedInResponseToVerificarionError(); /** * @param issuer * @return */ IssuerNotTrustedException samlIssuerNotTrustedError(String issuer); /** * @param e * @return */ IssuerNotTrustedException samlIssuerNotTrustedException(Throwable t); /** * @return */ ConfigurationException samlHandlerTrustElementMissingError(); /** * @return */ ProcessingException samlHandlerIdentityServerNotFoundError(); /** * @return */ ProcessingException samlHandlerPrincipalNotFoundError(); /** * */ void samlHandlerKeyPairNotFound(); /** * @return */ ProcessingException samlHandlerKeyPairNotFoundError(); /** * @param t */ void samlHandlerErrorSigningRedirectBindingMessage(Throwable t); /** * @param t * @return */ RuntimeException samlHandlerSigningRedirectBindingMessageError(Throwable t); /** * @return */ SignatureValidationException samlHandlerSignatureValidationFailed(); /** * @param t */ void samlHandlerErrorValidatingSignature(Throwable t); /** * @return */ ProcessingException samlHandlerInvalidSignatureError(); /** * @return */ ProcessingException samlHandlerSignatureNotPresentError(); /** * @param t * @return */ ProcessingException samlHandlerSignatureValidationError(Throwable t); /** * @param t */ void error(Throwable t); /** * @param t * @return */ RuntimeException samlHandlerChainProcessingError(Throwable t); /** * @return */ TrustKeyConfigurationException trustKeyManagerMissing(); /** * @param rte */ void samlBase64DecodingError(Throwable t); /** * @param t */ void samlParsingError(Throwable t); /** * @param t */ void trace(Throwable t); /** * */ void mappingContextNull(); /** * @param t */ void attributeManagerError(Throwable t); /** * */ void couldNotObtainSecurityContext(); /** * @param t * @return */ LoginException authFailedToCreatePrincipal(Throwable t); /** * @param class1 * @return */ LoginException authSharedCredentialIsNotSAMLCredential(String className); /** * @return */ LoginException authSTSConfigFileNotFound(); /** * @param t * @return */ LoginException authErrorHandlingCallback(Throwable t); /** * @return */ LoginException authInvalidSAMLAssertionBySTS(); /** * @param t * @return */ LoginException authAssertionValidationError(Throwable t); /** * @param t * @return */ LoginException authFailedToParseSAMLAssertion(Throwable t); /** * @param t */ void samlAssertionPasingFailed(Throwable t); LoginException authNullKeyStoreFromSecurityDomainError(String name); LoginException authNullKeyStoreAliasFromSecurityDomainError(String name); LoginException authNoCertificateFoundForAliasError(String alias, String name); LoginException authSAMLInvalidSignatureError(); LoginException authSAMLAssertionExpiredError(); /** * @param t */ void authSAMLAssertionIssuingFailed(Throwable t); /** * @param t */ void jbossWSUnableToCreateBinaryToken(Throwable t); /** * */ void jbossWSUnableToCreateSecurityToken(); /** * @param ignore */ void jbossWSUnableToWriteSOAPMessage(Throwable t); /** * @return */ RuntimeException jbossWSUnableToLoadJBossWSSEConfigError(); /** * @return */ RuntimeException jbossWSAuthorizationFailed(); /** * @param t */ void jbossWSErrorGettingOperationName(Throwable t); /** * @return */ LoginException authSAMLCredentialNotAvailable(); /** * @param token * @param t * @return */ RuntimeException authUnableToInstantiateHandler(String token, Throwable t); /** * @param e1 * @return */ RuntimeException jbossWSUnableToCreateSSLSocketFactory(Throwable t); /** * @return */ RuntimeException jbossWSUnableToFindSSLSocketFactory(); /** * @return */ RuntimeException authUnableToGetIdentityFromSubject(); /** * @return */ RuntimeException authSAMLAssertionNullOrEmpty(); /** * @return */ ProcessingException jbossWSUncheckedAndRolesCannotBeTogether(); /** * @param t */ void samlIDPHandlingSAML11Error(Throwable t); /** * @return */ GeneralSecurityException samlIDPValidationCheckFailed(); /** * @param t */ void samlIDPRequestProcessingError(Throwable t); /** * @param t */ void samlIDPUnableToSetParticipantStackUsingDefault(Throwable t); /** * @param t */ void samlHandlerConfigurationError(Throwable t); /** * @param canonicalizationMethod */ void samlIDPSettingCanonicalizationMethod(String canonicalizationMethod); /** * @param t * @return */ RuntimeException samlIDPConfigurationError(Throwable t); /** * @param configFile * @return */ RuntimeException configurationFileMissing(String configFile); /** * */ void samlIDPInstallingDefaultSTSConfig(); void samlSPFallingBackToLocalFormAuthentication(); /** * @param ex * @return */ IOException unableLocalAuthentication(Throwable t); /** * */ void samlSPUnableToGetIDPDescriptorFromMetadata(); /** * @param t * @return */ RuntimeException samlSPConfigurationError(Throwable t); /** * @param canonicalizationMethod */ void samlSPSettingCanonicalizationMethod(String canonicalizationMethod); /** * @param logOutPage */ void samlSPCouldNotDispatchToLogoutPage(String logOutPage); /** * <p>Logs the implementation being used to log messages and exceptions.</p> * * @param name */ void usingLoggerImplementation(String className); /** * */ void samlResponseFromIDPParsingFailed(); /** * * @param t * @return */ ConfigurationException auditSecurityDomainNotFound(Throwable t); /** * @param location * @param t * @return */ ConfigurationException auditAuditManagerNotFound(String location, Throwable t); /** * @return */ IssueInstantMissingException samlIssueInstantMissingError(); /** * @param response * @return */ RuntimeException samlSPResponseNotCatalinaResponseError(Object response); /** * @param t */ void samlLogoutError(Throwable t); /** * @param t */ void samlErrorPageForwardError(String errorPage, Throwable t); /** * @param t */ void samlSPHandleRequestError(Throwable t); /** * @param t * @return */ IOException samlSPProcessingExceptionError(Throwable t); /** * @return */ IllegalArgumentException samlInvalidProtocolBinding(); /** * @return */ IllegalStateException samlHandlerServiceProviderConfigNotFound(); /** * */ void samlSecurityTokenAlreadyPersisted(String id); /** * @param id */ void samlSecurityTokenNotFoundInRegistry(String id); IllegalArgumentException samlMetaDataFailedToCreateCacheDuration(String timeValue); ConfigurationException samlMetaDataNoIdentityProviderDefined(); ConfigurationException samlMetaDataNoServiceProviderDefined(); ConfigurationException securityDomainNotFound(); void authenticationManagerError(ConfigurationException e); void authorizationManagerError(ConfigurationException e); IllegalStateException jbdcInitializationError(Throwable throwable); RuntimeException errorUnmarshallingToken(Throwable e); RuntimeException runtimeException(String msg, Throwable e); IllegalStateException datasourceIsNull(); IllegalArgumentException cannotParseParameterValue(String parameter, Throwable e); RuntimeException cannotGetFreeClientPoolKey(String key); RuntimeException cannotGetSTSConfigByKey(String key); RuntimeException cannotGetUsedClientsByKey(String key); RuntimeException removingNonExistingClientFromUsedClientsByKey(String key); RuntimeException freePoolAlreadyContainsGivenKey(String key); RuntimeException maximumNumberOfClientsReachedforPool(String max); ConfigurationException wrongMetadataRootElement(); }