keycloak-uncached
Changes
adapters/oidc/adapter-core/pom.xml 5(+5 -0)
adapters/oidc/installed/pom.xml 4(+4 -0)
adapters/oidc/jetty/jetty8.1/pom.xml 4(+4 -0)
adapters/oidc/servlet-filter/pom.xml 4(+4 -0)
adapters/oidc/undertow/pom.xml 4(+4 -0)
adapters/saml/as7-eap6/subsystem/src/main/java/org/keycloak/subsystem/saml/as7/KeycloakDependencyProcessor.java 2(+2 -0)
adapters/saml/core/pom.xml 14(+14 -0)
adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeycloakSamlAdapterXMLParser.java 1(+0 -1)
adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeysXmlParser.java 1(+0 -1)
adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/BrowserHandler.java 1(+0 -1)
adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/SamlEndpoint.java 1(+0 -1)
adapters/saml/core-public/pom.xml 86(+86 -0)
adapters/saml/core-public/src/main/java/org/keycloak/adapters/saml/SamlAuthenticationError.java 1(+0 -1)
adapters/saml/jetty/jetty8.1/pom.xml 8(+8 -0)
adapters/saml/jetty/jetty9.1/pom.xml 8(+8 -0)
adapters/saml/jetty/jetty9.2/pom.xml 8(+8 -0)
adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/AbstractSamlAuthenticator.java 2(+0 -2)
adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/JettySamlSessionStore.java 1(+0 -1)
adapters/saml/pom.xml 1(+1 -0)
adapters/saml/servlet-filter/pom.xml 12(+10 -2)
adapters/saml/servlet-filter/src/main/java/org/keycloak/adapters/saml/servlet/FilterSamlSessionStore.java 1(+0 -1)
adapters/saml/tomcat/tomcat-core/pom.xml 12(+10 -2)
adapters/saml/tomcat/tomcat-core/src/main/java/org/keycloak/adapters/saml/CatalinaSamlSessionStore.java 3(+0 -3)
adapters/saml/undertow/pom.xml 10(+10 -0)
adapters/saml/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/saml/extension/KeycloakDependencyProcessor.java 2(+2 -0)
adapters/spi/adapter-spi/pom.xml 5(+5 -0)
adapters/spi/adapter-spi-public/pom.xml 97(+97 -0)
adapters/spi/adapter-spi-public/src/main/java/org/keycloak/adapters/spi/AuthenticationError.java 0(+0 -0)
adapters/spi/pom.xml 1(+1 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml 5(+5 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml 4(+4 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml 40(+40 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml 3(+3 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml 4(+4 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml 3(+3 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml 1(+1 -0)
distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml 1(+1 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml 1(+1 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml 4(+4 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml 37(+37 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml 3(+3 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml 1(+1 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml 1(+1 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml 4(+4 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wf8-subsystem/main/module.xml 3(+3 -0)
distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml 4(+4 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml 1(+1 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml 4(+4 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml 37(+37 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml 3(+3 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml 1(+1 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml 1(+1 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml 4(+4 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml 4(+4 -0)
distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-subsystem/main/module.xml 3(+3 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-core/main/module.xml 1(+1 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi/main/module.xml 4(+4 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi-public/main/module.xml 37(+37 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-subsystem/main/module.xml 3(+3 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-jboss-adapter-core/main/module.xml 1(+1 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-servlet-oauth-client/main/module.xml 1(+1 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-undertow-adapter/main/module.xml 4(+4 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-adapter/main/module.xml 4(+4 -0)
distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-subsystem/main/module.xml 3(+3 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml 4(+0 -4)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml 4(+0 -4)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml 0(+0 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml 1(+1 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml 34(+34 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/module.xml 0(+0 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml 1(+1 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml 0(+0 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml 4(+4 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml 37(+37 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml 1(+1 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml 36(+36 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml 6(+6 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml 3(+3 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-adapter/main/module.xml 6(+6 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-subsystem/main/module.xml 3(+3 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml 4(+4 -0)
distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml 37(+37 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml 4(+4 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml 37(+37 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml 1(+1 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml 36(+36 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml 6(+6 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml 3(+3 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml 5(+5 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml 37(+37 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-undertow-adapter/main/module.xml 6(+6 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-adapter/main/module.xml 6(+6 -0)
distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-subsystem/main/module.xml 3(+3 -0)
examples/demo-template/offline-access-app/src/main/webapp/WEB-INF/jboss-deployment-structure.xml 2(+1 -1)
examples/multi-tenant/pom.xml 5(+5 -0)
pom.xml 16(+16 -0)
saml-core/pom.xml 4(+4 -0)
saml-core/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingRequestType.java 134(+0 -134)
saml-core/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestedAuthnContextType.java 134(+0 -134)
saml-core/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/CanonicalizationMethodType.java 66(+0 -66)
saml-core/src/main/java/org/keycloak/saml/common/constants/PicketLinkCommonConstants.java 29(+0 -29)
saml-core/src/main/java/org/keycloak/saml/common/constants/SAMLAuthenticationContextClass.java 80(+0 -80)
saml-core/src/main/java/org/keycloak/saml/common/exceptions/fed/AssertionExpiredException.java 52(+0 -52)
saml-core/src/main/java/org/keycloak/saml/common/exceptions/fed/IssueInstantMissingException.java 44(+0 -44)
saml-core/src/main/java/org/keycloak/saml/common/exceptions/fed/IssuerNotTrustedException.java 44(+0 -44)
saml-core/src/main/java/org/keycloak/saml/common/exceptions/fed/SignatureValidationException.java 43(+0 -43)
saml-core/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyConfigurationException.java 42(+0 -42)
saml-core/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyProcessingException.java 42(+0 -42)
saml-core/src/main/java/org/keycloak/saml/processing/core/parsers/saml/metadata/AbstractDescriptorParser.java 4(+0 -4)
saml-core-api/pom.xml 72(+72 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11AttributeDesignatorType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11AttributeStatementType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11AudienceRestrictionCondition.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11AuthenticationStatementType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11AuthorityBindingType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11AuthorizationDecisionStatementType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11ConditionAbstractType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11ConditionsAbstractType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11DoNotCacheConditionType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11NameIdentifierType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11StatementAbstractType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11SubjectConfirmationType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11SubjectLocalityType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/assertion/SAML11SubjectStatementType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/protocol/SAML11AttributeQueryType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/protocol/SAML11AuthenticationQueryType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/protocol/SAML11AuthorizationDecisionQueryType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/protocol/SAML11RequestAbstractType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/protocol/SAML11ResponseAbstractType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v1/protocol/SAML11SubjectQueryAbstractType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/AuthenticatorTransportProtocolType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/AuthnContextDeclarationBaseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/ActivationLimitDurationType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/ActivationLimitSessionType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/ActivationLimitUsagesType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/AuthenticatorTransportProtocolType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/AuthnContextDeclarationBaseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/ComplexAuthenticatorType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/GoverningAgreementRefType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/GoverningAgreementsType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/OperationalProtectionType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/OriginalAuthenticatorBaseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/OriginalAuthenticatorTransportProtocolType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/OriginalAuthnContextDeclarationBaseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/OriginalAuthnMethodBaseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/PrincipalAuthenticationMechanismType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/PrivateKeyProtectionType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/RestrictedPasswordType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/SecretKeyProtectionType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/SharedSecretChallengeResponseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/classes/TechnicalProtectionBaseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/PrincipalAuthenticationMechanismType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/ac/SharedSecretChallengeResponseType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/AudienceRestrictionType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/AuthnContextClassRefType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/AuthnContextDeclRefType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/AuthzDecisionStatementType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/KeyInfoConfirmationDataType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/SubjectConfirmationDataType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/assertion/SubjectConfirmationType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/metadata/AdditionalMetadataLocationType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/metadata/AffiliationDescriptorType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/metadata/AttributeAuthorityDescriptorType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/metadata/AttributeConsumingServiceType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/metadata/AuthnAuthorityDescriptorType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/profiles/attribute/dce/DCEValueType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/profiles/attribute/dce/package-info.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/AuthnContextComparisonType.java 0(+0 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/AuthzDecisionQueryType.java 121(+121 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ManageNameIDRequestType.java 157(+157 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingRequestType.java 134(+134 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingResponseType.java 89(+89 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestedAuthnContextType.java 134(+134 -0)
saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/SubjectQueryAbstractType.java 62(+62 -0)
saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/CanonicalizationMethodType.java 66(+66 -0)
saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RetrievalMethodType.java 100(+100 -0)
saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertiesType.java 84(+84 -0)
saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertyType.java 94(+94 -0)
saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertiesType.java 83(+83 -0)
saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertyType.java 108(+108 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLURIConstants.java 131(+131 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ConfigurationException.java 44(+44 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/AssertionExpiredException.java 52(+52 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssueInstantMissingException.java 44(+44 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssuerNotTrustedException.java 44(+44 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/SignatureValidationException.java 43(+43 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/WSTrustException.java 64(+64 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/NotImplementedException.java 31(+31 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyConfigurationException.java 42(+42 -0)
saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyProcessingException.java 42(+42 -0)
services/pom.xml 5(+5 -0)
services/src/main/java/org/keycloak/protocol/saml/EntityDescriptorDescriptionConverter.java 7(+6 -1)
testsuite/integration/pom.xml 5(+5 -0)
testsuite/integration/src/test/java/org/keycloak/testsuite/keycloaksaml/SamlAdapterTestStrategy.java 4(+0 -4)
testsuite/stress/pom.xml 4(+4 -0)
Details
adapters/oidc/adapter-core/pom.xml 5(+5 -0)
diff --git a/adapters/oidc/adapter-core/pom.xml b/adapters/oidc/adapter-core/pom.xml
index 662d3fa..d160b6e 100755
--- a/adapters/oidc/adapter-core/pom.xml
+++ b/adapters/oidc/adapter-core/pom.xml
@@ -57,6 +57,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/adapters/oidc/as7-eap6/as7-adapter/pom.xml b/adapters/oidc/as7-eap6/as7-adapter/pom.xml
index 9a7e5fc..d5a5b4a 100755
--- a/adapters/oidc/as7-eap6/as7-adapter/pom.xml
+++ b/adapters/oidc/as7-eap6/as7-adapter/pom.xml
@@ -41,6 +41,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/as7-eap6/as7-adapter-spi/pom.xml b/adapters/oidc/as7-eap6/as7-adapter-spi/pom.xml
index 9eae6ef..95d629d 100755
--- a/adapters/oidc/as7-eap6/as7-adapter-spi/pom.xml
+++ b/adapters/oidc/as7-eap6/as7-adapter-spi/pom.xml
@@ -33,6 +33,10 @@
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
adapters/oidc/installed/pom.xml 4(+4 -0)
diff --git a/adapters/oidc/installed/pom.xml b/adapters/oidc/installed/pom.xml
index 650ec69..e8e258f 100755
--- a/adapters/oidc/installed/pom.xml
+++ b/adapters/oidc/installed/pom.xml
@@ -37,6 +37,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/jaxrs-oauth-client/pom.xml b/adapters/oidc/jaxrs-oauth-client/pom.xml
index 0011839..7035072 100755
--- a/adapters/oidc/jaxrs-oauth-client/pom.xml
+++ b/adapters/oidc/jaxrs-oauth-client/pom.xml
@@ -48,6 +48,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
adapters/oidc/jetty/jetty8.1/pom.xml 4(+4 -0)
diff --git a/adapters/oidc/jetty/jetty8.1/pom.xml b/adapters/oidc/jetty/jetty8.1/pom.xml
index 0e91eed..0eae047 100755
--- a/adapters/oidc/jetty/jetty8.1/pom.xml
+++ b/adapters/oidc/jetty/jetty8.1/pom.xml
@@ -57,6 +57,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/jetty/jetty-core/pom.xml b/adapters/oidc/jetty/jetty-core/pom.xml
index 2d0e0dc..58009aa 100755
--- a/adapters/oidc/jetty/jetty-core/pom.xml
+++ b/adapters/oidc/jetty/jetty-core/pom.xml
@@ -54,6 +54,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
adapters/oidc/servlet-filter/pom.xml 4(+4 -0)
diff --git a/adapters/oidc/servlet-filter/pom.xml b/adapters/oidc/servlet-filter/pom.xml
index 4e63337..df14ee4 100755
--- a/adapters/oidc/servlet-filter/pom.xml
+++ b/adapters/oidc/servlet-filter/pom.xml
@@ -43,6 +43,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/servlet-oauth-client/pom.xml b/adapters/oidc/servlet-oauth-client/pom.xml
index 092aa86..b154875 100755
--- a/adapters/oidc/servlet-oauth-client/pom.xml
+++ b/adapters/oidc/servlet-oauth-client/pom.xml
@@ -41,6 +41,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/spring-security/pom.xml b/adapters/oidc/spring-security/pom.xml
index fcbb8a1..55e62d4 100755
--- a/adapters/oidc/spring-security/pom.xml
+++ b/adapters/oidc/spring-security/pom.xml
@@ -44,6 +44,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/tomcat/tomcat-core/pom.xml b/adapters/oidc/tomcat/tomcat-core/pom.xml
index bc1e20d..2f4b623 100755
--- a/adapters/oidc/tomcat/tomcat-core/pom.xml
+++ b/adapters/oidc/tomcat/tomcat-core/pom.xml
@@ -45,7 +45,11 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
</dependency>
- <dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
adapters/oidc/undertow/pom.xml 4(+4 -0)
diff --git a/adapters/oidc/undertow/pom.xml b/adapters/oidc/undertow/pom.xml
index 76edf37..007ae70 100755
--- a/adapters/oidc/undertow/pom.xml
+++ b/adapters/oidc/undertow/pom.xml
@@ -43,6 +43,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/oidc/wildfly/wildfly-adapter/pom.xml b/adapters/oidc/wildfly/wildfly-adapter/pom.xml
index d012c21..5640357 100755
--- a/adapters/oidc/wildfly/wildfly-adapter/pom.xml
+++ b/adapters/oidc/wildfly/wildfly-adapter/pom.xml
@@ -43,6 +43,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/saml/as7-eap6/adapter/pom.xml b/adapters/saml/as7-eap6/adapter/pom.xml
index 21eb6d3..19f5388 100755
--- a/adapters/saml/as7-eap6/adapter/pom.xml
+++ b/adapters/saml/as7-eap6/adapter/pom.xml
@@ -41,10 +41,18 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
diff --git a/adapters/saml/as7-eap6/subsystem/src/main/java/org/keycloak/subsystem/saml/as7/KeycloakDependencyProcessor.java b/adapters/saml/as7-eap6/subsystem/src/main/java/org/keycloak/subsystem/saml/as7/KeycloakDependencyProcessor.java
index fc326e6..38b6acb 100755
--- a/adapters/saml/as7-eap6/subsystem/src/main/java/org/keycloak/subsystem/saml/as7/KeycloakDependencyProcessor.java
+++ b/adapters/saml/as7-eap6/subsystem/src/main/java/org/keycloak/subsystem/saml/as7/KeycloakDependencyProcessor.java
@@ -39,6 +39,7 @@ public abstract class KeycloakDependencyProcessor implements DeploymentUnitProce
private static final ModuleIdentifier KEYCLOAK_JBOSS_CORE_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-jboss-adapter-core");
private static final ModuleIdentifier KEYCLOAK_CORE_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-saml-adapter-core");
+ private static final ModuleIdentifier KEYCLOAK_API_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-saml-adapter-api-public");
private static final ModuleIdentifier KEYCLOAK_COMMON = ModuleIdentifier.create("org.keycloak.keycloak-common");
@Override
@@ -70,6 +71,7 @@ public abstract class KeycloakDependencyProcessor implements DeploymentUnitProce
private void addCommonModules(ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) {
// ModuleDependency(ModuleLoader moduleLoader, ModuleIdentifier identifier, boolean optional, boolean export, boolean importServices, boolean userSpecified)
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_JBOSS_CORE_ADAPTER, false, false, false, false));
+ moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_API_ADAPTER, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_CORE_ADAPTER, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_COMMON, false, false, false, false));
}
adapters/saml/core/pom.xml 14(+14 -0)
diff --git a/adapters/saml/core/pom.xml b/adapters/saml/core/pom.xml
index dc4afa1..a7496b9 100755
--- a/adapters/saml/core/pom.xml
+++ b/adapters/saml/core/pom.xml
@@ -37,14 +37,28 @@
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-core-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-common</artifactId>
diff --git a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/AbstractInitiateLogin.java b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/AbstractInitiateLogin.java
index f8016e0..305ffeb 100755
--- a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/AbstractInitiateLogin.java
+++ b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/AbstractInitiateLogin.java
@@ -26,7 +26,6 @@ import org.keycloak.saml.SAML2NameIDPolicyBuilder;
import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
import org.keycloak.saml.common.exceptions.ConfigurationException;
import org.keycloak.saml.common.exceptions.ProcessingException;
-import org.w3c.dom.Document;
import java.io.IOException;
import java.security.KeyPair;
diff --git a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeycloakSamlAdapterXMLParser.java b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeycloakSamlAdapterXMLParser.java
index 1049fa1..1330d34 100755
--- a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeycloakSamlAdapterXMLParser.java
+++ b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeycloakSamlAdapterXMLParser.java
@@ -25,7 +25,6 @@ import org.keycloak.saml.common.util.StaxParserUtil;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLEventReader;
-import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.StartElement;
/**
diff --git a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeysXmlParser.java b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeysXmlParser.java
index b771af4..f75331a 100755
--- a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeysXmlParser.java
+++ b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/config/parsers/KeysXmlParser.java
@@ -18,7 +18,6 @@
package org.keycloak.adapters.saml.config.parsers;
import org.keycloak.adapters.saml.config.Key;
-import org.keycloak.adapters.saml.config.SP;
import org.keycloak.saml.common.exceptions.ParsingException;
import org.keycloak.saml.common.parsers.AbstractParser;
import org.keycloak.saml.common.util.StaxParserUtil;
diff --git a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/BrowserHandler.java b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/BrowserHandler.java
index 4fdc45d..63474e8 100755
--- a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/BrowserHandler.java
+++ b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/BrowserHandler.java
@@ -23,7 +23,6 @@ import org.keycloak.adapters.saml.SamlSessionStore;
import org.keycloak.adapters.saml.profile.SamlInvocationContext;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
-import org.keycloak.saml.common.constants.GeneralConstants;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
diff --git a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/SamlEndpoint.java b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/SamlEndpoint.java
index ba27765..6823fd4 100755
--- a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/SamlEndpoint.java
+++ b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/profile/webbrowsersso/SamlEndpoint.java
@@ -20,7 +20,6 @@ package org.keycloak.adapters.saml.profile.webbrowsersso;
import org.keycloak.adapters.saml.OnSessionCreated;
import org.keycloak.adapters.saml.SamlDeployment;
import org.keycloak.adapters.saml.SamlSessionStore;
-import org.keycloak.adapters.saml.profile.SamlInvocationContext;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.saml.common.constants.GeneralConstants;
diff --git a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/SamlSessionStore.java b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/SamlSessionStore.java
index 9db7c30..9ce1498 100755
--- a/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/SamlSessionStore.java
+++ b/adapters/saml/core/src/main/java/org/keycloak/adapters/saml/SamlSessionStore.java
@@ -18,8 +18,6 @@
package org.keycloak.adapters.saml;
import org.keycloak.adapters.spi.AdapterSessionStore;
-import org.keycloak.dom.saml.v2.protocol.StatusResponseType;
-import org.keycloak.dom.saml.v2.protocol.StatusType;
import java.util.List;
adapters/saml/core-public/pom.xml 86(+86 -0)
diff --git a/adapters/saml/core-public/pom.xml b/adapters/saml/core-public/pom.xml
new file mode 100755
index 0000000..54ebea3
--- /dev/null
+++ b/adapters/saml/core-public/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>keycloak-parent</artifactId>
+ <groupId>org.keycloak</groupId>
+ <version>1.9.2.Final-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ <name>Keycloak SAML Client Adapter Public API</name>
+ <description/>
+
+ <properties>
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-core-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${maven.compiler.source}</source>
+ <target>${maven.compiler.target}</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
adapters/saml/jetty/jetty8.1/pom.xml 8(+8 -0)
diff --git a/adapters/saml/jetty/jetty8.1/pom.xml b/adapters/saml/jetty/jetty8.1/pom.xml
index 136500d..afe7a0e 100755
--- a/adapters/saml/jetty/jetty8.1/pom.xml
+++ b/adapters/saml/jetty/jetty8.1/pom.xml
@@ -53,10 +53,18 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
adapters/saml/jetty/jetty9.1/pom.xml 8(+8 -0)
diff --git a/adapters/saml/jetty/jetty9.1/pom.xml b/adapters/saml/jetty/jetty9.1/pom.xml
index 877e860..6f76e83 100755
--- a/adapters/saml/jetty/jetty9.1/pom.xml
+++ b/adapters/saml/jetty/jetty9.1/pom.xml
@@ -54,10 +54,18 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
adapters/saml/jetty/jetty9.2/pom.xml 8(+8 -0)
diff --git a/adapters/saml/jetty/jetty9.2/pom.xml b/adapters/saml/jetty/jetty9.2/pom.xml
index 4c92670..de6157f 100755
--- a/adapters/saml/jetty/jetty9.2/pom.xml
+++ b/adapters/saml/jetty/jetty9.2/pom.xml
@@ -58,10 +58,18 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/saml/jetty/jetty-core/pom.xml b/adapters/saml/jetty/jetty-core/pom.xml
index 4b408e8..0c4ec36 100755
--- a/adapters/saml/jetty/jetty-core/pom.xml
+++ b/adapters/saml/jetty/jetty-core/pom.xml
@@ -50,6 +50,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
@@ -62,6 +66,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
diff --git a/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/AbstractSamlAuthenticator.java b/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/AbstractSamlAuthenticator.java
index eb17fee..bfa7d59 100755
--- a/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/AbstractSamlAuthenticator.java
+++ b/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/AbstractSamlAuthenticator.java
@@ -27,10 +27,8 @@ import org.eclipse.jetty.security.authentication.FormAuthenticator;
import org.eclipse.jetty.security.authentication.LoginAuthenticator;
import org.eclipse.jetty.server.Authentication;
import org.eclipse.jetty.server.Request;
-import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.UserIdentity;
import org.eclipse.jetty.server.handler.ContextHandler;
-import org.eclipse.jetty.util.URIUtil;
import org.jboss.logging.Logger;
import org.keycloak.adapters.saml.SamlSessionStore;
import org.keycloak.adapters.saml.profile.SamlAuthenticationHandler;
diff --git a/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/JettySamlSessionStore.java b/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/JettySamlSessionStore.java
index 6c4e82a..1ccfc67 100755
--- a/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/JettySamlSessionStore.java
+++ b/adapters/saml/jetty/jetty-core/src/main/java/org/keycloak/adapters/saml/jetty/JettySamlSessionStore.java
@@ -28,7 +28,6 @@ import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement;
import org.keycloak.adapters.saml.SamlSession;
import org.keycloak.adapters.saml.SamlSessionStore;
import org.keycloak.common.util.KeycloakUriBuilder;
-import org.keycloak.dom.saml.v2.protocol.StatusType;
import javax.servlet.http.HttpSession;
adapters/saml/pom.xml 1(+1 -0)
diff --git a/adapters/saml/pom.xml b/adapters/saml/pom.xml
index 6228ead..c30eed6 100755
--- a/adapters/saml/pom.xml
+++ b/adapters/saml/pom.xml
@@ -31,6 +31,7 @@
<packaging>pom</packaging>
<modules>
+ <module>core-public</module>
<module>core</module>
<module>undertow</module>
<module>tomcat</module>
adapters/saml/servlet-filter/pom.xml 12(+10 -2)
diff --git a/adapters/saml/servlet-filter/pom.xml b/adapters/saml/servlet-filter/pom.xml
index 5e1db84..5e969ff 100755
--- a/adapters/saml/servlet-filter/pom.xml
+++ b/adapters/saml/servlet-filter/pom.xml
@@ -39,7 +39,11 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-common</artifactId>
</dependency>
- <dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
@@ -55,7 +59,11 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-core</artifactId>
</dependency>
- <dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
diff --git a/adapters/saml/servlet-filter/src/main/java/org/keycloak/adapters/saml/servlet/FilterSamlSessionStore.java b/adapters/saml/servlet-filter/src/main/java/org/keycloak/adapters/saml/servlet/FilterSamlSessionStore.java
index 6bb4687..3d6d6e3 100755
--- a/adapters/saml/servlet-filter/src/main/java/org/keycloak/adapters/saml/servlet/FilterSamlSessionStore.java
+++ b/adapters/saml/servlet-filter/src/main/java/org/keycloak/adapters/saml/servlet/FilterSamlSessionStore.java
@@ -26,7 +26,6 @@ import org.keycloak.adapters.saml.SamlSession;
import org.keycloak.adapters.saml.SamlSessionStore;
import org.keycloak.adapters.servlet.FilterSessionStore;
import org.keycloak.common.util.KeycloakUriBuilder;
-import org.keycloak.dom.saml.v2.protocol.StatusType;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
adapters/saml/tomcat/tomcat-core/pom.xml 12(+10 -2)
diff --git a/adapters/saml/tomcat/tomcat-core/pom.xml b/adapters/saml/tomcat/tomcat-core/pom.xml
index e16036e..0b655e7 100755
--- a/adapters/saml/tomcat/tomcat-core/pom.xml
+++ b/adapters/saml/tomcat/tomcat-core/pom.xml
@@ -45,7 +45,11 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-common</artifactId>
</dependency>
- <dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
@@ -65,7 +69,11 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-core</artifactId>
</dependency>
- <dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
diff --git a/adapters/saml/tomcat/tomcat-core/src/main/java/org/keycloak/adapters/saml/CatalinaSamlSessionStore.java b/adapters/saml/tomcat/tomcat-core/src/main/java/org/keycloak/adapters/saml/CatalinaSamlSessionStore.java
index 2020bee..d72bbfd 100755
--- a/adapters/saml/tomcat/tomcat-core/src/main/java/org/keycloak/adapters/saml/CatalinaSamlSessionStore.java
+++ b/adapters/saml/tomcat/tomcat-core/src/main/java/org/keycloak/adapters/saml/CatalinaSamlSessionStore.java
@@ -27,10 +27,7 @@ import org.keycloak.adapters.spi.SessionIdMapper;
import org.keycloak.adapters.tomcat.CatalinaUserSessionManagement;
import org.keycloak.adapters.tomcat.GenericPrincipalFactory;
import org.keycloak.common.util.KeycloakUriBuilder;
-import org.keycloak.dom.saml.v2.protocol.StatusResponseType;
-import org.keycloak.dom.saml.v2.protocol.StatusType;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.LinkedList;
adapters/saml/undertow/pom.xml 10(+10 -0)
diff --git a/adapters/saml/undertow/pom.xml b/adapters/saml/undertow/pom.xml
index 47855ac..0f5a66f 100755
--- a/adapters/saml/undertow/pom.xml
+++ b/adapters/saml/undertow/pom.xml
@@ -44,6 +44,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<scope>provided</scope>
</dependency>
@@ -54,6 +59,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/adapters/saml/wildfly/wildfly-adapter/pom.xml b/adapters/saml/wildfly/wildfly-adapter/pom.xml
index 24b6375..779d6a7 100755
--- a/adapters/saml/wildfly/wildfly-adapter/pom.xml
+++ b/adapters/saml/wildfly/wildfly-adapter/pom.xml
@@ -43,10 +43,18 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
diff --git a/adapters/saml/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/saml/extension/KeycloakDependencyProcessor.java b/adapters/saml/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/saml/extension/KeycloakDependencyProcessor.java
index 391310c..f61c08c 100755
--- a/adapters/saml/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/saml/extension/KeycloakDependencyProcessor.java
+++ b/adapters/saml/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/saml/extension/KeycloakDependencyProcessor.java
@@ -37,6 +37,7 @@ import org.jboss.modules.ModuleLoader;
public abstract class KeycloakDependencyProcessor implements DeploymentUnitProcessor {
private static final ModuleIdentifier KEYCLOAK_JBOSS_CORE_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-jboss-adapter-core");
+ private static final ModuleIdentifier KEYCLOAK_API_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-saml-adapter-api-public");
private static final ModuleIdentifier KEYCLOAK_CORE_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-saml-adapter-core");
private static final ModuleIdentifier KEYCLOAK_COMMON = ModuleIdentifier.create("org.keycloak.keycloak-common");
@@ -72,6 +73,7 @@ public abstract class KeycloakDependencyProcessor implements DeploymentUnitProce
// ModuleDependency(ModuleLoader moduleLoader, ModuleIdentifier identifier, boolean optional, boolean export, boolean importServices, boolean userSpecified)
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_JBOSS_CORE_ADAPTER, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_CORE_ADAPTER, false, false, false, false));
+ moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_API_ADAPTER, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_COMMON, false, false, false, false));
}
adapters/spi/adapter-spi/pom.xml 5(+5 -0)
diff --git a/adapters/spi/adapter-spi/pom.xml b/adapters/spi/adapter-spi/pom.xml
index d67f79a..f2b47b4 100755
--- a/adapters/spi/adapter-spi/pom.xml
+++ b/adapters/spi/adapter-spi/pom.xml
@@ -53,6 +53,11 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
adapters/spi/adapter-spi-public/pom.xml 97(+97 -0)
diff --git a/adapters/spi/adapter-spi-public/pom.xml b/adapters/spi/adapter-spi-public/pom.xml
new file mode 100755
index 0000000..950e648
--- /dev/null
+++ b/adapters/spi/adapter-spi-public/pom.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>keycloak-parent</artifactId>
+ <groupId>org.keycloak</groupId>
+ <version>1.9.2.Final-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <name>Keycloak Adapter Public SPI</name>
+ <description/>
+
+ <properties>
+ <keycloak.osgi.export>
+ org.keycloak.adapters.spi.*
+ </keycloak.osgi.export>
+ <keycloak.osgi.import>
+ org.keycloak.*;version="${project.version}",
+ *;resolution:=optional
+ </keycloak.osgi.import>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>${jboss.logging.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${maven.compiler.source}</source>
+ <target>${maven.compiler.target}</target>
+ </configuration>
+ </plugin>
+
+ <!-- Adding OSGI metadata to the JAR without changing the packaging type. -->
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <id>bundle-manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <instructions>
+ <Bundle-ClassPath>.</Bundle-ClassPath>
+ <Bundle-Name>${project.name}</Bundle-Name>
+ <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
+ <Import-Package>${keycloak.osgi.import}</Import-Package>
+ <Export-Package>${keycloak.osgi.export}</Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/adapters/spi/jboss-adapter-core/pom.xml b/adapters/spi/jboss-adapter-core/pom.xml
index a5c8fae..43f1739 100755
--- a/adapters/spi/jboss-adapter-core/pom.xml
+++ b/adapters/spi/jboss-adapter-core/pom.xml
@@ -43,6 +43,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/spi/jetty-adapter-spi/pom.xml b/adapters/spi/jetty-adapter-spi/pom.xml
index 7f009ca..81526dd 100755
--- a/adapters/spi/jetty-adapter-spi/pom.xml
+++ b/adapters/spi/jetty-adapter-spi/pom.xml
@@ -54,6 +54,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
adapters/spi/pom.xml 1(+1 -0)
diff --git a/adapters/spi/pom.xml b/adapters/spi/pom.xml
index 18cdff1..4620ba0 100755
--- a/adapters/spi/pom.xml
+++ b/adapters/spi/pom.xml
@@ -31,6 +31,7 @@
<packaging>pom</packaging>
<modules>
+ <module>adapter-spi-public</module>
<module>adapter-spi</module>
<module>tomcat-adapter-spi</module>
<module>undertow-adapter-spi</module>
diff --git a/adapters/spi/servlet-adapter-spi/pom.xml b/adapters/spi/servlet-adapter-spi/pom.xml
index 13a0e11..ea5a18d 100755
--- a/adapters/spi/servlet-adapter-spi/pom.xml
+++ b/adapters/spi/servlet-adapter-spi/pom.xml
@@ -37,6 +37,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/adapters/spi/tomcat-adapter-spi/pom.xml b/adapters/spi/tomcat-adapter-spi/pom.xml
index 99bc6b9..92f68cf 100755
--- a/adapters/spi/tomcat-adapter-spi/pom.xml
+++ b/adapters/spi/tomcat-adapter-spi/pom.xml
@@ -41,7 +41,11 @@
<artifactId>jboss-logging</artifactId>
<version>${jboss.logging.version}</version>
</dependency>
- <dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
diff --git a/adapters/spi/undertow-adapter-spi/pom.xml b/adapters/spi/undertow-adapter-spi/pom.xml
index 79b8726..2de9308 100755
--- a/adapters/spi/undertow-adapter-spi/pom.xml
+++ b/adapters/spi/undertow-adapter-spi/pom.xml
@@ -39,6 +39,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml b/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml
index 15c4b6a..7e4b115 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml
@@ -33,6 +33,7 @@
<include>org/keycloak/keycloak-common/**</include>
<include>org/keycloak/keycloak-core/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-adapter-core/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/keycloak/keycloak-as7-adapter/**</include>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml
index 829a4d6..49daf71 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/build.xml
@@ -70,6 +70,10 @@
<maven-resource group="org.keycloak" artifact="keycloak-as7-adapter-spi"/>
</module-def>
+ <module-def name="org.keycloak.keycloak-adapter-spi-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-adapter-spi-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-adapter-core">
<maven-resource group="org.keycloak" artifact="keycloak-adapter-core"/>
</module-def>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml
index 6114de3..2c5ab16 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/pom.xml
@@ -44,6 +44,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
index 984cb50..f0f2432 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
@@ -20,6 +20,10 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-core">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
+
<resources>
<!-- Insert resources here -->
</resources>
@@ -33,6 +37,7 @@
<module name="org.jboss.logging"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.keycloak.keycloak-core"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
</dependencies>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
index 08276eb..61b4d31 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -30,6 +33,7 @@
<module name="javax.servlet.api"/>
<module name="org.apache.httpcomponents"/>
<module name="org.bouncycastle" />
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.picketbox"/>
</dependencies>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
new file mode 100755
index 0000000..97e02fb
--- /dev/null
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi-public">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.jboss.as.web"/>
+ <module name="javax.servlet.api"/>
+ <module name="org.apache.httpcomponents"/>
+ <module name="org.bouncycastle" />
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.picketbox"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
index 70d0f84..b92dd26 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml
index cb544af..c79957e 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-as7-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -36,6 +39,7 @@
<module name="org.jboss.as.security"/>
<module name="org.jboss.as.web"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml
index 1f84360..e034dd1 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-as7-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
index a779604..d00e2aa 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -27,6 +27,7 @@
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common" />
</dependencies>
diff --git a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
index 21b32bf..d929060 100755
--- a/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
+++ b/distribution/adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
@@ -27,6 +27,7 @@
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
<module name="org.apache.httpcomponents"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml b/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml
index c69ea6b..25ae36e 100755
--- a/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml
+++ b/distribution/adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml
@@ -33,6 +33,7 @@
<include>org/keycloak/keycloak-common/**</include>
<include>org/keycloak/keycloak-core/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-adapter-core/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/keycloak/keycloak-as7-adapter/**</include>
diff --git a/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml b/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml
index a418265..b42a799 100755
--- a/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml
+++ b/distribution/adapters/wf8-adapter/wf8-adapter-zip/assembly.xml
@@ -32,6 +32,7 @@
<include>org/keycloak/keycloak-common/**</include>
<include>org/keycloak/keycloak-core/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-adapter-core/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/keycloak/keycloak-undertow-adapter/**</include>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/build.xml b/distribution/adapters/wf8-adapter/wf8-modules/build.xml
index ef8f986..b57946b 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/build.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/build.xml
@@ -49,6 +49,10 @@
<maven-resource group="org.keycloak" artifact="keycloak-undertow-adapter-spi"/>
</module-def>
+ <module-def name="org.keycloak.keycloak-adapter-spi-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-adapter-spi-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-adapter-core">
<maven-resource group="org.keycloak" artifact="keycloak-adapter-core"/>
</module-def>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/pom.xml b/distribution/adapters/wf8-adapter/wf8-modules/pom.xml
index 8c86565..6ac0e89 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/pom.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/pom.xml
@@ -44,6 +44,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
index 1642eb3..c044692 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
@@ -31,6 +31,7 @@
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider"/>
<module name="org.apache.httpcomponents" slot="4.3" />
<module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
index e08eb2e..4924dac 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -31,6 +34,7 @@
<module name="org.jboss.xnio"/>
<module name="io.undertow.core"/>
<module name="io.undertow.servlet"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
new file mode 100755
index 0000000..39efea7
--- /dev/null
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.apache.httpcomponents" slot="4.3" />
+ <module name="javax.servlet.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.jboss.xnio"/>
+ <module name="io.undertow.core"/>
+ <module name="io.undertow.servlet"/>
+ <module name="org.keycloak.keycloak-common"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
index 070630c..3d52022 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
index f04205b..390429d 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -27,6 +27,7 @@
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
index ca45251..669efbb 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
@@ -27,6 +27,7 @@
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
<module name="org.apache.httpcomponents" slot="4.3"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-core"/>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml
index bff8ab3..61a1826 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-undertow-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -36,6 +39,7 @@
<module name="org.jboss.xnio"/>
<module name="io.undertow.core"/>
<module name="io.undertow.servlet"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wf8-subsystem/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wf8-subsystem/main/module.xml
index daba325..8b3f231 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wf8-subsystem/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wf8-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-wf8-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml
index 70c3231..bf21f5a 100755
--- a/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml
+++ b/distribution/adapters/wf8-adapter/wf8-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-wildfly-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -37,6 +40,7 @@
<module name="io.undertow.servlet"/>
<module name="org.picketbox"/>
<module name="org.keycloak.keycloak-undertow-adapter"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-core"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml b/distribution/adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml
index 8da890a..36be6b4 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml
@@ -32,6 +32,7 @@
<include>org/keycloak/keycloak-core/**</include>
<include>org/keycloak/keycloak-adapter-core/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/keycloak/keycloak-undertow-adapter/**</include>
<include>org/keycloak/keycloak-wildfly-adapter/**</include>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/build.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/build.xml
index 4597205..59c797b 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/build.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/build.xml
@@ -44,6 +44,10 @@
<!-- subsystems -->
+ <module-def name="org.keycloak.keycloak-adapter-spi-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-adapter-spi-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-adapter-spi">
<maven-resource group="org.keycloak" artifact="keycloak-adapter-spi"/>
<maven-resource group="org.keycloak" artifact="keycloak-undertow-adapter-spi"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/pom.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/pom.xml
index 88b88cf..99a68c9 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/pom.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/pom.xml
@@ -44,6 +44,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
index 8672bf4..91091e7 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
@@ -31,6 +31,7 @@
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider"/>
<module name="org.apache.httpcomponents"/>
<module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.keycloak.keycloak-core"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
index 6f50fa4..30eb7de 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
@@ -20,12 +20,16 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="org.keycloak.keycloak-common"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.apache.httpcomponents"/>
<module name="javax.servlet.api"/>
<module name="org.jboss.logging"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
new file mode 100755
index 0000000..a5d7497
--- /dev/null
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.apache.httpcomponents"/>
+ <module name="javax.servlet.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.jboss.xnio"/>
+ <module name="io.undertow.core"/>
+ <module name="io.undertow.servlet"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
index 762bad0..9cfb934 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
index f04205b..390429d 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -27,6 +27,7 @@
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
index 21b32bf..d929060 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
@@ -27,6 +27,7 @@
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
<module name="org.apache.httpcomponents"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml
index 7afde9f..178383f 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-undertow-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-undertow-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -36,6 +39,7 @@
<module name="org.jboss.xnio"/>
<module name="io.undertow.core"/>
<module name="io.undertow.servlet"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml
index 4bb5e23..6ff363f 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-wildfly-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -37,6 +40,7 @@
<module name="io.undertow.servlet"/>
<module name="org.picketbox"/>
<module name="org.keycloak.keycloak-undertow-adapter"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-core"/>
diff --git a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-subsystem/main/module.xml b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-subsystem/main/module.xml
index 73bb570..c5bdd9f 100755
--- a/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-subsystem/main/module.xml
+++ b/distribution/adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-wildfly-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/feature-packs/adapter-feature-pack/pom.xml b/distribution/feature-packs/adapter-feature-pack/pom.xml
index 3e3c48f..e5ac0be 100755
--- a/distribution/feature-packs/adapter-feature-pack/pom.xml
+++ b/distribution/feature-packs/adapter-feature-pack/pom.xml
@@ -45,6 +45,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-core/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-core/main/module.xml
index 673b5cd..cbc3863 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-core/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-core/main/module.xml
@@ -31,6 +31,7 @@
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider"/>
<module name="org.apache.httpcomponents" />
<module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.keycloak.keycloak-core"/>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi/main/module.xml
index ef2e0ed..2a58953 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-adapter-spi">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<artifact name="${org.keycloak:keycloak-adapter-spi}"/>
<artifact name="${org.keycloak:keycloak-undertow-adapter-spi}"/>
@@ -32,6 +35,7 @@
<module name="io.undertow.servlet"/>
<module name="javax.servlet.api"/>
<module name="org.bouncycastle" />
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi-public/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi-public/main/module.xml
new file mode 100755
index 0000000..20178b1
--- /dev/null
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-spi-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-adapter-spi-public">
+ <resources>
+ <artifact name="${org.keycloak:keycloak-adapter-spi-public}"/>
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.jboss.xnio"/>
+ <module name="io.undertow.core"/>
+ <module name="io.undertow.servlet"/>
+ <module name="javax.servlet.api"/>
+ <module name="org.bouncycastle" />
+ <module name="org.keycloak.keycloak-common"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-subsystem/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-subsystem/main/module.xml
old mode 100644
new mode 100755
index dc11d19..82c2c7e
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-subsystem/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-adapter-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-adapter-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
</resources>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
index 6f34216..0d85987 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -27,6 +27,7 @@
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-servlet-oauth-client/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
index c78682d..64742c9 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-servlet-oauth-client/main/module.xml
@@ -27,6 +27,7 @@
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
<module name="org.apache.httpcomponents"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-undertow-adapter/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-undertow-adapter/main/module.xml
index fa3b9b5..1297fcc 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-undertow-adapter/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-undertow-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-undertow-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<artifact name="${org.keycloak:keycloak-undertow-adapter}"/>
</resources>
@@ -36,6 +39,7 @@
<module name="org.jboss.xnio"/>
<module name="io.undertow.core"/>
<module name="io.undertow.servlet"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-adapter/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-adapter/main/module.xml
index a5c76db..7653b12 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-adapter/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-wildfly-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<artifact name="${org.keycloak:keycloak-wildfly-adapter}"/>
</resources>
@@ -37,6 +40,7 @@
<module name="io.undertow.servlet"/>
<module name="org.picketbox"/>
<module name="org.keycloak.keycloak-undertow-adapter"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
diff --git a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-subsystem/main/module.xml b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-subsystem/main/module.xml
index b923fed..e99bfe5 100755
--- a/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-subsystem/main/module.xml
+++ b/distribution/feature-packs/adapter-feature-pack/src/main/resources/modules/system/add-ons/keycloak/org/keycloak/keycloak-wildfly-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-wildfly-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<artifact name="${org.keycloak:keycloak-wildfly-subsystem}"/>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml
index 4a3d370..7b024b1 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml
@@ -16,10 +16,6 @@
~ limitations under the License.
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-common">
- <properties>
- <property name="jboss.api" value="private"/>
- </properties>
-
<resources>
<artifact name="${org.keycloak:keycloak-common}"/>
</resources>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml
index 1afc30d..659a055 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml
@@ -16,10 +16,6 @@
~ limitations under the License.
-->
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-core">
- <properties>
- <property name="jboss.api" value="private"/>
- </properties>
-
<resources>
<artifact name="${org.keycloak:keycloak-core}"/>
</resources>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml
old mode 100644
new mode 100755
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml
index 6b4ad24..7330a0a 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml
@@ -26,6 +26,7 @@
<dependencies>
<module name="org.keycloak.keycloak-common"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
<module name="org.jboss.logging"/>
<module name="org.keycloak.keycloak-core"/>
<module name="org.apache.santuario.xmlsec">
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml
new file mode 100755
index 0000000..36cc520
--- /dev/null
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-saml-core-public">
+ <resources>
+ <artifact name="${org.keycloak:keycloak-saml-core-public}"/>
+ </resources>
+
+ <dependencies>
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-core"/>
+ <module name="org.apache.santuario.xmlsec">
+ <imports>
+ <exclude path="javax/*"/>
+ </imports>
+ </module>
+ <module name="javax.api"/>
+ </dependencies>
+</module>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/module.xml
old mode 100644
new mode 100755
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
index 99e1e8f..a44279d 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
@@ -39,6 +39,7 @@
<module name="org.keycloak.keycloak-model-jpa" services="import"/>
<module name="org.keycloak.keycloak-model-mongo" services="import"/>
<module name="org.keycloak.keycloak-model-infinispan" services="import"/>
+ <module name="org.keycloak.keycloak-saml-core-public" services="import"/>
<module name="org.keycloak.keycloak-saml-core" services="import"/>
<module name="org.keycloak.keycloak-services" export="true" services="import"/>
<module name="org.keycloak.keycloak-wildfly-extensions" services="import"/>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml
old mode 100644
new mode 100755
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml
index 5a1cb43..b1925d2 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-adapter-zip/assembly.xml
@@ -32,6 +32,8 @@
<include>org/keycloak/keycloak-saml-core/**</include>
<include>org/keycloak/keycloak-saml-adapter-core/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
+ <include>org/keycloak/keycloak-saml-adapter-api-public/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/bouncycastle/**</include>
<include>org/keycloak/keycloak-saml-as7-adapter/**</include>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/build.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/build.xml
index 8ce93d3..df85573 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/build.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/build.xml
@@ -43,16 +43,28 @@
<!-- subsystems -->
+ <module-def name="org.keycloak.keycloak-adapter-spi-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-adapter-spi-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-adapter-spi">
<maven-resource group="org.keycloak" artifact="keycloak-adapter-spi"/>
<maven-resource group="org.keycloak" artifact="keycloak-tomcat-adapter-spi"/>
<maven-resource group="org.keycloak" artifact="keycloak-as7-adapter-spi"/>
</module-def>
+ <module-def name="org.keycloak.keycloak-saml-core-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-saml-core-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-saml-core">
<maven-resource group="org.keycloak" artifact="keycloak-saml-core"/>
</module-def>
+ <module-def name="org.keycloak.keycloak-saml-adapter-api-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-saml-adapter-api-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-saml-adapter-core">
<maven-resource group="org.keycloak" artifact="keycloak-saml-adapter-core"/>
</module-def>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/pom.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/pom.xml
index a415f4b..d2e3b20 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/pom.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/pom.xml
@@ -40,6 +40,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
@@ -52,6 +56,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
index 08276eb..61b4d31 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -30,6 +33,7 @@
<module name="javax.servlet.api"/>
<module name="org.apache.httpcomponents"/>
<module name="org.bouncycastle" />
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.picketbox"/>
</dependencies>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
new file mode 100755
index 0000000..52ceb2e
--- /dev/null
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.jboss.as.web"/>
+ <module name="javax.servlet.api"/>
+ <module name="org.apache.httpcomponents"/>
+ <module name="org.bouncycastle" />
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.picketbox"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
index f04205b..390429d 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -27,6 +27,7 @@
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml
new file mode 100755
index 0000000..09c45fc
--- /dev/null
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-adapter-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
+ <module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
+ <module name="org.keycloak.keycloak-saml-core"/>
+ <module name="org.keycloak.keycloak-common"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml
index a037c7b..0d53fc3 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml
@@ -20,13 +20,19 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-adapter-core">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
+ <module name="org.keycloak.keycloak-saml-adapter-api-public"/>
<module name="org.keycloak.keycloak-saml-core"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml
index a399ef2..fa4feb2 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-adapter-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-adapter/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-adapter/main/module.xml
index 899f32d..e24c2db 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-adapter/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-as7-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -32,8 +35,11 @@
<module name="org.jboss.as.web"/>
<module name="org.picketbox"/>
<module name="org.keycloak.keycloak-saml-as7-adapter"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
<module name="org.keycloak.keycloak-saml-core"/>
+ <module name="org.keycloak.keycloak-saml-adapter-api-public"/>
<module name="org.keycloak.keycloak-saml-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-subsystem/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-subsystem/main/module.xml
index ce3e259..06d1833 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-subsystem/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-as7-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-as7-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml
index 8404872..aac9500 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml
@@ -20,12 +20,16 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-core">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="org.jboss.logging"/>
<module name="org.keycloak.keycloak-common"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
<module name="org.apache.santuario.xmlsec">
<imports>
<exclude path="javax/*"/>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml
new file mode 100755
index 0000000..550dac8
--- /dev/null
+++ b/distribution/saml-adapters/as7-eap6-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-core-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.apache.santuario.xmlsec">
+ <imports>
+ <exclude path="javax/*"/>
+ </imports>
+ </module>
+ <module name="javax.api"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/saml-adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml b/distribution/saml-adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml
index 683561b..6c374a6 100755
--- a/distribution/saml-adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml
+++ b/distribution/saml-adapters/as7-eap6-adapter/eap6-adapter-zip/assembly.xml
@@ -32,6 +32,8 @@
<include>org/keycloak/keycloak-saml-core/**</include>
<include>org/keycloak/keycloak-saml-adapter-core/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
+ <include>org/keycloak/keycloak-saml-adapter-api-public/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/bouncycastle/**</include>
<include>org/keycloak/keycloak-saml-as7-adapter/**</include>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml
index 14d7a90..efdbabb 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-adapter-zip/assembly.xml
@@ -31,6 +31,8 @@
<include>org/keycloak/keycloak-common/**</include>
<include>org/keycloak/keycloak-saml-core/**</include>
<include>org/keycloak/keycloak-saml-adapter-core/**</include>
+ <include>org/keycloak/keycloak-saml-adapter-api-public/**</include>
+ <include>org/keycloak/keycloak-adapter-spi-public/**</include>
<include>org/keycloak/keycloak-adapter-spi/**</include>
<include>org/keycloak/keycloak-jboss-adapter-core/**</include>
<include>org/keycloak/keycloak-saml-undertow-adapter/**</include>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/build.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/build.xml
index 6df0b3d..b16d545 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/build.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/build.xml
@@ -39,6 +39,10 @@
<!-- subsystems -->
+ <module-def name="org.keycloak.keycloak-adapter-spi-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-adapter-spi-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-adapter-spi">
<maven-resource group="org.keycloak" artifact="keycloak-adapter-spi"/>
<maven-resource group="org.keycloak" artifact="keycloak-undertow-adapter-spi"/>
@@ -48,6 +52,14 @@
<maven-resource group="org.keycloak" artifact="keycloak-saml-core"/>
</module-def>
+ <module-def name="org.keycloak.keycloak-saml-core-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-saml-core-public"/>
+ </module-def>
+
+ <module-def name="org.keycloak.keycloak-saml-adapter-api-public">
+ <maven-resource group="org.keycloak" artifact="keycloak-saml-adapter-api-public"/>
+ </module-def>
+
<module-def name="org.keycloak.keycloak-saml-adapter-core">
<maven-resource group="org.keycloak" artifact="keycloak-saml-adapter-core"/>
</module-def>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/pom.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/pom.xml
index 81e0827..cf9db45 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/pom.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/pom.xml
@@ -40,6 +40,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
@@ -52,6 +56,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
index 6f50fa4..30eb7de 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi/main/module.xml
@@ -20,12 +20,16 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="org.keycloak.keycloak-common"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.apache.httpcomponents"/>
<module name="javax.servlet.api"/>
<module name="org.jboss.logging"/>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
new file mode 100755
index 0000000..a5d7497
--- /dev/null
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-spi-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-adapter-spi-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.apache.httpcomponents"/>
+ <module name="javax.servlet.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.jboss.xnio"/>
+ <module name="io.undertow.core"/>
+ <module name="io.undertow.servlet"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
index f04205b..390429d 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -27,6 +27,7 @@
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml
new file mode 100755
index 0000000..09178e1
--- /dev/null
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-api-public/main/module.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-adapter-api-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
+ <module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
+ <module name="org.keycloak.keycloak-saml-core"/>
+ <module name="org.keycloak.keycloak-common"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml
index a037c7b..75c4e4f 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-core/main/module.xml
@@ -20,13 +20,19 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-adapter-core">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-adapter-api-public"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
<module name="org.keycloak.keycloak-saml-core"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml
index 91b63a7..ae6407e 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-adapter-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-adapter-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml
index 8404872..972a0d9 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core/main/module.xml
@@ -20,12 +20,17 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-core">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="org.jboss.logging"/>
<module name="org.keycloak.keycloak-common"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
+ <module name="org.keycloak.keycloak-core-public"/>
<module name="org.apache.santuario.xmlsec">
<imports>
<exclude path="javax/*"/>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml
new file mode 100755
index 0000000..550dac8
--- /dev/null
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-core-public/main/module.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-core-public">
+ <resources>
+ <!-- Insert resources here -->
+ </resources>
+ <dependencies>
+ <module name="org.jboss.logging"/>
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.apache.santuario.xmlsec">
+ <imports>
+ <exclude path="javax/*"/>
+ </imports>
+ </module>
+ <module name="javax.api"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-undertow-adapter/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-undertow-adapter/main/module.xml
index d645ade..9d49641 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-undertow-adapter/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-undertow-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-undertow-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -31,8 +34,11 @@
<module name="org.jboss.xnio"/>
<module name="io.undertow.core"/>
<module name="io.undertow.servlet"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
<module name="org.keycloak.keycloak-saml-core"/>
+ <module name="org.keycloak.keycloak-saml-adapter-api-public"/>
<module name="org.keycloak.keycloak-saml-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-adapter/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-adapter/main/module.xml
index bf017de..258e624 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-adapter/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-adapter/main/module.xml
@@ -20,6 +20,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-wildfly-adapter">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<!-- Insert resources here -->
</resources>
@@ -32,8 +35,11 @@
<module name="io.undertow.servlet"/>
<module name="org.picketbox"/>
<module name="org.keycloak.keycloak-saml-undertow-adapter"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
<module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-saml-core-public"/>
<module name="org.keycloak.keycloak-saml-core"/>
+ <module name="org.keycloak.keycloak-saml-adapter-api-public"/>
<module name="org.keycloak.keycloak-saml-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
</dependencies>
diff --git a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-subsystem/main/module.xml b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-subsystem/main/module.xml
index 1d4c71e..c788a9a 100755
--- a/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-subsystem/main/module.xml
+++ b/distribution/saml-adapters/wildfly-adapter/wildfly-modules/src/main/resources/modules/org/keycloak/keycloak-saml-wildfly-subsystem/main/module.xml
@@ -18,6 +18,9 @@
-->
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-saml-wildfly-subsystem">
+ <properties>
+ <property name="jboss.api" value="private"/>
+ </properties>
<resources>
<resource-root path="."/>
diff --git a/examples/demo-template/offline-access-app/pom.xml b/examples/demo-template/offline-access-app/pom.xml
old mode 100644
new mode 100755
index b63eb26..5ceb17d
--- a/examples/demo-template/offline-access-app/pom.xml
+++ b/examples/demo-template/offline-access-app/pom.xml
@@ -52,6 +52,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/examples/demo-template/offline-access-app/src/main/webapp/WEB-INF/jboss-deployment-structure.xml b/examples/demo-template/offline-access-app/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
old mode 100644
new mode 100755
index 9762fd8..9948c47
--- a/examples/demo-template/offline-access-app/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
+++ b/examples/demo-template/offline-access-app/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
@@ -21,7 +21,7 @@
<!-- the Demo code uses classes in these modules. These are optional to import if you are not using
Apache Http Client or the HttpClientBuilder that comes with the adapter core -->
<module name="org.apache.httpcomponents"/>
- <module name="org.keycloak.keycloak-adapter-spi"/>
+ <module name="org.keycloak.keycloak-adapter-spi-public"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
\ No newline at end of file
examples/multi-tenant/pom.xml 5(+5 -0)
diff --git a/examples/multi-tenant/pom.xml b/examples/multi-tenant/pom.xml
index c744934..7320a1b 100755
--- a/examples/multi-tenant/pom.xml
+++ b/examples/multi-tenant/pom.xml
@@ -59,6 +59,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<scope>provided</scope>
</dependency>
pom.xml 16(+16 -0)
diff --git a/pom.xml b/pom.xml
old mode 100644
new mode 100755
index 0ddcf4c..bc90c8a
--- a/pom.xml
+++ b/pom.xml
@@ -162,6 +162,7 @@
<module>core</module>
<module>dependencies</module>
<module>server-spi</module>
+ <module>saml-core-api</module>
<module>saml-core</module>
<module>proxy</module>
<module>federation</module>
@@ -674,6 +675,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<version>${project.version}</version>
</dependency>
@@ -909,6 +915,16 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-core-public</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
<version>${project.version}</version>
</dependency>
saml-core/pom.xml 4(+4 -0)
diff --git a/saml-core/pom.xml b/saml-core/pom.xml
index b705b42..f0ff56d 100755
--- a/saml-core/pom.xml
+++ b/saml-core/pom.xml
@@ -46,6 +46,10 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-core-public</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
</dependency>
diff --git a/saml-core/src/main/java/org/keycloak/saml/common/util/StaxParserUtil.java b/saml-core/src/main/java/org/keycloak/saml/common/util/StaxParserUtil.java
index b0fd051..212fb13 100755
--- a/saml-core/src/main/java/org/keycloak/saml/common/util/StaxParserUtil.java
+++ b/saml-core/src/main/java/org/keycloak/saml/common/util/StaxParserUtil.java
@@ -26,7 +26,6 @@ import org.keycloak.saml.common.exceptions.ParsingException;
import org.keycloak.saml.common.ErrorCodes;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
@@ -47,7 +46,6 @@ import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
-import java.io.IOException;
import java.io.InputStream;
/**
diff --git a/saml-core/src/main/java/org/keycloak/saml/common/util/StringUtil.java b/saml-core/src/main/java/org/keycloak/saml/common/util/StringUtil.java
index 07f3467..f582ae0 100755
--- a/saml-core/src/main/java/org/keycloak/saml/common/util/StringUtil.java
+++ b/saml-core/src/main/java/org/keycloak/saml/common/util/StringUtil.java
@@ -18,12 +18,7 @@ package org.keycloak.saml.common.util;
import org.keycloak.saml.common.PicketLinkLogger;
import org.keycloak.saml.common.PicketLinkLoggerFactory;
-import org.keycloak.saml.common.constants.PicketLinkCommonConstants;
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.PBEKeySpec;
-import javax.crypto.spec.PBEParameterSpec;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/saml-core/src/main/java/org/keycloak/saml/processing/api/saml/v2/sig/SAML2Signature.java b/saml-core/src/main/java/org/keycloak/saml/processing/api/saml/v2/sig/SAML2Signature.java
index 1c42b50..5ac8ce1 100755
--- a/saml-core/src/main/java/org/keycloak/saml/processing/api/saml/v2/sig/SAML2Signature.java
+++ b/saml-core/src/main/java/org/keycloak/saml/processing/api/saml/v2/sig/SAML2Signature.java
@@ -21,27 +21,18 @@ import org.keycloak.saml.common.PicketLinkLoggerFactory;
import org.keycloak.saml.common.constants.JBossSAMLConstants;
import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
import org.keycloak.saml.common.exceptions.ProcessingException;
-import org.keycloak.saml.processing.api.saml.v2.request.SAML2Request;
-import org.keycloak.saml.processing.api.saml.v2.response.SAML2Response;
import org.keycloak.saml.processing.core.util.SignatureUtilTransferObject;
import org.keycloak.saml.processing.core.util.XMLSignatureUtil;
-import org.keycloak.dom.saml.v2.protocol.RequestAbstractType;
-import org.keycloak.dom.saml.v2.protocol.ResponseType;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
import javax.xml.crypto.MarshalException;
import javax.xml.crypto.dsig.DigestMethod;
import javax.xml.crypto.dsig.SignatureMethod;
import javax.xml.crypto.dsig.XMLSignatureException;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.xpath.XPathException;
-import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.KeyPair;
import java.security.PublicKey;
diff --git a/saml-core/src/main/java/org/keycloak/saml/processing/core/parsers/saml/metadata/AbstractDescriptorParser.java b/saml-core/src/main/java/org/keycloak/saml/processing/core/parsers/saml/metadata/AbstractDescriptorParser.java
index a58006c..b80d4b0 100755
--- a/saml-core/src/main/java/org/keycloak/saml/processing/core/parsers/saml/metadata/AbstractDescriptorParser.java
+++ b/saml-core/src/main/java/org/keycloak/saml/processing/core/parsers/saml/metadata/AbstractDescriptorParser.java
@@ -20,12 +20,8 @@ package org.keycloak.saml.processing.core.parsers.saml.metadata;
import org.keycloak.saml.common.exceptions.ParsingException;
import org.keycloak.saml.common.parsers.AbstractParser;
-import javax.xml.stream.EventFilter;
import javax.xml.stream.XMLEventReader;
-import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.events.Characters;
-import javax.xml.stream.events.XMLEvent;
/**
* <p>Abstract entity descriptor parser, which provides common parser functionality</p>
diff --git a/saml-core/src/main/java/org/keycloak/saml/processing/core/util/XMLSignatureUtil.java b/saml-core/src/main/java/org/keycloak/saml/processing/core/util/XMLSignatureUtil.java
index 94a6c2b..c1b5ef0 100755
--- a/saml-core/src/main/java/org/keycloak/saml/processing/core/util/XMLSignatureUtil.java
+++ b/saml-core/src/main/java/org/keycloak/saml/processing/core/util/XMLSignatureUtil.java
@@ -19,7 +19,6 @@ package org.keycloak.saml.processing.core.util;
import org.keycloak.saml.common.PicketLinkLogger;
import org.keycloak.saml.common.PicketLinkLoggerFactory;
import org.keycloak.saml.common.constants.JBossSAMLConstants;
-import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
import org.keycloak.saml.common.constants.WSTrustConstants;
import org.keycloak.saml.common.exceptions.ParsingException;
import org.keycloak.saml.common.exceptions.ProcessingException;
diff --git a/saml-core/src/main/java/org/keycloak/saml/SAML2ErrorResponseBuilder.java b/saml-core/src/main/java/org/keycloak/saml/SAML2ErrorResponseBuilder.java
index 6eae6ed..99d1c1f 100755
--- a/saml-core/src/main/java/org/keycloak/saml/SAML2ErrorResponseBuilder.java
+++ b/saml-core/src/main/java/org/keycloak/saml/SAML2ErrorResponseBuilder.java
@@ -18,25 +18,16 @@
package org.keycloak.saml;
import org.keycloak.dom.saml.v2.assertion.NameIDType;
-import org.keycloak.dom.saml.v2.protocol.StatusCodeType;
import org.keycloak.dom.saml.v2.protocol.StatusResponseType;
-import org.keycloak.dom.saml.v2.protocol.StatusType;
-import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
import org.keycloak.saml.common.exceptions.ConfigurationException;
import org.keycloak.saml.common.exceptions.ParsingException;
import org.keycloak.saml.common.exceptions.ProcessingException;
import org.keycloak.saml.processing.api.saml.v2.response.SAML2Response;
import org.keycloak.saml.processing.core.saml.v2.common.IDGenerator;
import org.keycloak.saml.processing.core.saml.v2.factories.JBossSAMLAuthnResponseFactory;
-import org.keycloak.saml.processing.core.saml.v2.holders.IDPInfoHolder;
-import org.keycloak.saml.processing.core.saml.v2.holders.IssuerInfoHolder;
-import org.keycloak.saml.processing.core.saml.v2.holders.SPInfoHolder;
-import org.keycloak.dom.saml.v2.protocol.ResponseType;
import org.keycloak.saml.processing.core.saml.v2.util.XMLTimeUtil;
import org.w3c.dom.Document;
-import java.net.URI;
-
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
saml-core-api/pom.xml 72(+72 -0)
diff --git a/saml-core-api/pom.xml b/saml-core-api/pom.xml
new file mode 100755
index 0000000..a28a32f
--- /dev/null
+++ b/saml-core-api/pom.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>keycloak-parent</artifactId>
+ <groupId>org.keycloak</groupId>
+ <version>1.9.2.Final-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>keycloak-saml-core-public</artifactId>
+ <name>Keycloak SAML Core Public API</name>
+ <description/>
+
+ <properties>
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.santuario</groupId>
+ <artifactId>xmlsec</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${maven.compiler.source}</source>
+ <target>${maven.compiler.target}</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/AuthzDecisionQueryType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/AuthzDecisionQueryType.java
new file mode 100755
index 0000000..b3b8f87
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/AuthzDecisionQueryType.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.ActionType;
+import org.keycloak.dom.saml.v2.assertion.EvidenceType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for AuthzDecisionQueryType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="AuthzDecisionQueryType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}SubjectQueryAbstractType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}Action" maxOccurs="unbounded"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}Evidence" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Resource" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class AuthzDecisionQueryType extends SubjectQueryAbstractType {
+
+ protected List<ActionType> action = new ArrayList<ActionType>();
+
+ protected EvidenceType evidence;
+
+ protected URI resource;
+
+ public AuthzDecisionQueryType(String id, XMLGregorianCalendar instant) {
+ super(id, instant);
+ }
+
+ /**
+ * Add an action
+ *
+ * @param act
+ */
+ public void addAction(ActionType act) {
+ this.action.add(act);
+ }
+
+ /**
+ * Remove an action
+ *
+ * @param act
+ */
+ public void removeAction(ActionType act) {
+ this.action.remove(act);
+ }
+
+ /**
+ * Gets the value of the action property.
+ */
+ public List<ActionType> getAction() {
+ return Collections.unmodifiableList(this.action);
+ }
+
+ /**
+ * Gets the value of the evidence property.
+ *
+ * @return possible object is {@link EvidenceType }
+ */
+ public EvidenceType getEvidence() {
+ return evidence;
+ }
+
+ /**
+ * Sets the value of the evidence property.
+ *
+ * @param value allowed object is {@link EvidenceType }
+ */
+ public void setEvidence(EvidenceType value) {
+ this.evidence = value;
+ }
+
+ /**
+ * Gets the value of the resource property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getResource() {
+ return resource;
+ }
+
+ /**
+ * Sets the value of the resource property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setResource(URI value) {
+ this.resource = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ExtensionsType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ExtensionsType.java
new file mode 100755
index 0000000..22d9567
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ExtensionsType.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for ExtensionsType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ExtensionsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ExtensionsType {
+
+ protected List<Object> any = new ArrayList<Object>();
+
+ /**
+ * Add an extension
+ *
+ * @param extension
+ */
+ public void addExtension(Object extension) {
+ any.add(extension);
+ }
+
+ /**
+ * Remove an extension
+ *
+ * @param extension
+ */
+ public void removeExtension(Object extension) {
+ any.remove(extension);
+ }
+
+ /**
+ * Gets the value of the any property.
+ */
+ public List<Object> getAny() {
+ return Collections.unmodifiableList(this.any);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/IDPEntryType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/IDPEntryType.java
new file mode 100755
index 0000000..803ccab
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/IDPEntryType.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for IDPEntryType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="IDPEntryType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="ProviderID" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="Loc" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class IDPEntryType {
+
+ protected URI providerID;
+ protected String name;
+ protected String loc;
+
+ /**
+ * Gets the value of the providerID property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getProviderID() {
+ return providerID;
+ }
+
+ /**
+ * Sets the value of the providerID property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setProviderID(URI value) {
+ this.providerID = value;
+ }
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the loc property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getLoc() {
+ return loc;
+ }
+
+ /**
+ * Sets the value of the loc property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setLoc(String value) {
+ this.loc = value;
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/IDPListType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/IDPListType.java
new file mode 100755
index 0000000..026b120
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/IDPListType.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for IDPListType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="IDPListType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}IDPEntry" maxOccurs="unbounded"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}GetComplete" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class IDPListType {
+
+ protected List<IDPEntryType> idpEntry = new ArrayList<IDPEntryType>();
+ protected URI getComplete;
+
+ /**
+ * Add an idp entry
+ *
+ * @param entry
+ */
+ public void addIDPEntry(IDPEntryType entry) {
+ this.idpEntry.add(entry);
+ }
+
+ /**
+ * Remove an idp entry
+ *
+ * @param entry
+ */
+ public void removeIDPEntry(IDPEntryType entry) {
+ this.idpEntry.remove(entry);
+ }
+
+ /**
+ * Gets the value of the idpEntry property.
+ */
+ public List<IDPEntryType> getIDPEntry() {
+ return Collections.unmodifiableList(this.idpEntry);
+ }
+
+ /**
+ * Gets the value of the getComplete property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getGetComplete() {
+ return getComplete;
+ }
+
+ /**
+ * Sets the value of the getComplete property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setGetComplete(URI value) {
+ this.getComplete = value;
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/LogoutRequestType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/LogoutRequestType.java
new file mode 100755
index 0000000..9df173f
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/LogoutRequestType.java
@@ -0,0 +1,187 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.BaseIDAbstractType;
+import org.keycloak.dom.saml.v2.assertion.EncryptedElementType;
+import org.keycloak.dom.saml.v2.assertion.NameIDType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for LogoutRequestType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="LogoutRequestType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ * <sequence>
+ * <choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}BaseID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}NameID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedID"/>
+ * </choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}SessionIndex" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Reason" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="NotOnOrAfter" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class LogoutRequestType extends RequestAbstractType {
+
+ protected BaseIDAbstractType baseID;
+
+ protected NameIDType nameID;
+
+ protected EncryptedElementType encryptedID;
+
+ protected List<String> sessionIndex = new ArrayList<String>();
+
+ protected String reason;
+
+ protected XMLGregorianCalendar notOnOrAfter;
+
+ public LogoutRequestType(String id, XMLGregorianCalendar instant) {
+ super(id, instant);
+ }
+
+ /**
+ * Gets the value of the baseID property.
+ *
+ * @return possible object is {@link BaseIDAbstractType }
+ */
+ public BaseIDAbstractType getBaseID() {
+ return baseID;
+ }
+
+ /**
+ * Sets the value of the baseID property.
+ *
+ * @param value allowed object is {@link BaseIDAbstractType }
+ */
+ public void setBaseID(BaseIDAbstractType value) {
+ this.baseID = value;
+ }
+
+ /**
+ * Gets the value of the nameID property.
+ *
+ * @return possible object is {@link NameIDType }
+ */
+ public NameIDType getNameID() {
+ return nameID;
+ }
+
+ /**
+ * Sets the value of the nameID property.
+ *
+ * @param value allowed object is {@link NameIDType }
+ */
+ public void setNameID(NameIDType value) {
+ this.nameID = value;
+ }
+
+ /**
+ * Gets the value of the encryptedID property.
+ *
+ * @return possible object is {@link EncryptedElementType }
+ */
+ public EncryptedElementType getEncryptedID() {
+ return encryptedID;
+ }
+
+ /**
+ * Sets the value of the encryptedID property.
+ *
+ * @param value allowed object is {@link EncryptedElementType }
+ */
+ public void setEncryptedID(EncryptedElementType value) {
+ this.encryptedID = value;
+ }
+
+ /**
+ * Add session index
+ *
+ * @param index
+ */
+ public void addSessionIndex(String index) {
+ this.sessionIndex.add(index);
+ }
+
+ /**
+ * Remove session index
+ *
+ * @param index
+ */
+ public void removeSessionIndex(String index) {
+ this.sessionIndex.remove(index);
+ }
+
+ /**
+ * Gets the value of the sessionIndex property.
+ */
+ public List<String> getSessionIndex() {
+ return Collections.unmodifiableList(this.sessionIndex);
+ }
+
+ /**
+ * Gets the value of the reason property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getReason() {
+ return reason;
+ }
+
+ /**
+ * Sets the value of the reason property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setReason(String value) {
+ this.reason = value;
+ }
+
+ /**
+ * Gets the value of the notOnOrAfter property.
+ *
+ * @return possible object is {@link XMLGregorianCalendar }
+ */
+ public XMLGregorianCalendar getNotOnOrAfter() {
+ return notOnOrAfter;
+ }
+
+ /**
+ * Sets the value of the notOnOrAfter property.
+ *
+ * @param value allowed object is {@link XMLGregorianCalendar }
+ */
+ public void setNotOnOrAfter(XMLGregorianCalendar value) {
+ this.notOnOrAfter = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ManageNameIDRequestType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ManageNameIDRequestType.java
new file mode 100755
index 0000000..d4e5524
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ManageNameIDRequestType.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.EncryptedElementType;
+import org.keycloak.dom.saml.v2.assertion.NameIDType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * <p>
+ * Java class for ManageNameIDRequestType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ManageNameIDRequestType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ * <sequence>
+ * <choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}NameID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedID"/>
+ * </choice>
+ * <choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}NewID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}NewEncryptedID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}Terminate"/>
+ * </choice>
+ * </sequence>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ManageNameIDRequestType extends RequestAbstractType {
+
+ protected NameIDType nameID;
+
+ protected EncryptedElementType encryptedID;
+
+ protected String newID;
+
+ protected EncryptedElementType newEncryptedID;
+
+ protected TerminateType terminate;
+
+ public ManageNameIDRequestType(String id, XMLGregorianCalendar instant) {
+ super(id, instant);
+ }
+
+ /**
+ * Gets the value of the nameID property.
+ *
+ * @return possible object is {@link NameIDType }
+ */
+ public NameIDType getNameID() {
+ return nameID;
+ }
+
+ /**
+ * Sets the value of the nameID property.
+ *
+ * @param value allowed object is {@link NameIDType }
+ */
+ public void setNameID(NameIDType value) {
+ this.nameID = value;
+ }
+
+ /**
+ * Gets the value of the encryptedID property.
+ *
+ * @return possible object is {@link EncryptedElementType }
+ */
+ public EncryptedElementType getEncryptedID() {
+ return encryptedID;
+ }
+
+ /**
+ * Sets the value of the encryptedID property.
+ *
+ * @param value allowed object is {@link EncryptedElementType }
+ */
+ public void setEncryptedID(EncryptedElementType value) {
+ this.encryptedID = value;
+ }
+
+ /**
+ * Gets the value of the newID property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getNewID() {
+ return newID;
+ }
+
+ /**
+ * Sets the value of the newID property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setNewID(String value) {
+ this.newID = value;
+ }
+
+ /**
+ * Gets the value of the newEncryptedID property.
+ *
+ * @return possible object is {@link EncryptedElementType }
+ */
+ public EncryptedElementType getNewEncryptedID() {
+ return newEncryptedID;
+ }
+
+ /**
+ * Sets the value of the newEncryptedID property.
+ *
+ * @param value allowed object is {@link EncryptedElementType }
+ */
+ public void setNewEncryptedID(EncryptedElementType value) {
+ this.newEncryptedID = value;
+ }
+
+ /**
+ * Gets the value of the terminate property.
+ *
+ * @return possible object is {@link TerminateType }
+ */
+ public TerminateType getTerminate() {
+ return terminate;
+ }
+
+ /**
+ * Sets the value of the terminate property.
+ *
+ * @param value allowed object is {@link TerminateType }
+ */
+ public void setTerminate(TerminateType value) {
+ this.terminate = value;
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingRequestType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingRequestType.java
new file mode 100755
index 0000000..4ee658a
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingRequestType.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.BaseIDAbstractType;
+import org.keycloak.dom.saml.v2.assertion.EncryptedElementType;
+import org.keycloak.dom.saml.v2.assertion.NameIDType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * <p>
+ * Java class for NameIDMappingRequestType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="NameIDMappingRequestType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ * <sequence>
+ * <choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}BaseID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}NameID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedID"/>
+ * </choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}NameIDPolicy"/>
+ * </sequence>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class NameIDMappingRequestType extends RequestAbstractType {
+
+ protected BaseIDAbstractType baseID;
+
+ protected NameIDType nameID;
+
+ protected EncryptedElementType encryptedID;
+
+ protected NameIDPolicyType nameIDPolicy;
+
+ public NameIDMappingRequestType(String id, XMLGregorianCalendar instant) {
+ super(id, instant);
+ }
+
+ /**
+ * Gets the value of the baseID property.
+ *
+ * @return possible object is {@link BaseIDAbstractType }
+ */
+ public BaseIDAbstractType getBaseID() {
+ return baseID;
+ }
+
+ /**
+ * Sets the value of the baseID property.
+ *
+ * @param value allowed object is {@link BaseIDAbstractType }
+ */
+ public void setBaseID(BaseIDAbstractType value) {
+ this.baseID = value;
+ }
+
+ /**
+ * Gets the value of the nameID property.
+ *
+ * @return possible object is {@link NameIDType }
+ */
+ public NameIDType getNameID() {
+ return nameID;
+ }
+
+ /**
+ * Sets the value of the nameID property.
+ *
+ * @param value allowed object is {@link NameIDType }
+ */
+ public void setNameID(NameIDType value) {
+ this.nameID = value;
+ }
+
+ /**
+ * Gets the value of the encryptedID property.
+ *
+ * @return possible object is {@link EncryptedElementType }
+ */
+ public EncryptedElementType getEncryptedID() {
+ return encryptedID;
+ }
+
+ /**
+ * Sets the value of the encryptedID property.
+ *
+ * @param value allowed object is {@link EncryptedElementType }
+ */
+ public void setEncryptedID(EncryptedElementType value) {
+ this.encryptedID = value;
+ }
+
+ /**
+ * Gets the value of the nameIDPolicy property.
+ *
+ * @return possible object is {@link NameIDPolicyType }
+ */
+ public NameIDPolicyType getNameIDPolicy() {
+ return nameIDPolicy;
+ }
+
+ /**
+ * Sets the value of the nameIDPolicy property.
+ *
+ * @param value allowed object is {@link NameIDPolicyType }
+ */
+ public void setNameIDPolicy(NameIDPolicyType value) {
+ this.nameIDPolicy = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingResponseType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingResponseType.java
new file mode 100755
index 0000000..1bda133
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDMappingResponseType.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.EncryptedElementType;
+import org.keycloak.dom.saml.v2.assertion.NameIDType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * <p>
+ * Java class for NameIDMappingResponseType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="NameIDMappingResponseType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}StatusResponseType">
+ * <choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}NameID"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedID"/>
+ * </choice>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class NameIDMappingResponseType extends StatusResponseType {
+
+ protected NameIDType nameID;
+
+ protected EncryptedElementType encryptedID;
+
+ public NameIDMappingResponseType(String id, XMLGregorianCalendar issueInstant) {
+ super(id, issueInstant);
+ }
+
+ /**
+ * Gets the value of the nameID property.
+ *
+ * @return possible object is {@link NameIDType }
+ */
+ public NameIDType getNameID() {
+ return nameID;
+ }
+
+ /**
+ * Sets the value of the nameID property.
+ *
+ * @param value allowed object is {@link NameIDType }
+ */
+ public void setNameID(NameIDType value) {
+ this.nameID = value;
+ }
+
+ /**
+ * Gets the value of the encryptedID property.
+ *
+ * @return possible object is {@link EncryptedElementType }
+ */
+ public EncryptedElementType getEncryptedID() {
+ return encryptedID;
+ }
+
+ /**
+ * Sets the value of the encryptedID property.
+ *
+ * @param value allowed object is {@link EncryptedElementType }
+ */
+ public void setEncryptedID(EncryptedElementType value) {
+ this.encryptedID = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDPolicyType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDPolicyType.java
new file mode 100755
index 0000000..c797d36
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/NameIDPolicyType.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for NameIDPolicyType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="NameIDPolicyType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="Format" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="SPNameQualifier" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="AllowCreate" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class NameIDPolicyType {
+
+ protected URI format;
+ protected String spNameQualifier;
+ protected Boolean allowCreate = Boolean.FALSE;
+
+ /**
+ * Gets the value of the format property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getFormat() {
+ return format;
+ }
+
+ /**
+ * Sets the value of the format property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setFormat(URI value) {
+ this.format = value;
+ }
+
+ /**
+ * Gets the value of the spNameQualifier property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getSPNameQualifier() {
+ return spNameQualifier;
+ }
+
+ /**
+ * Sets the value of the spNameQualifier property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setSPNameQualifier(String value) {
+ this.spNameQualifier = value;
+ }
+
+ /**
+ * Gets the value of the allowCreate property.
+ *
+ * @return possible object is {@link Boolean }
+ */
+ public Boolean isAllowCreate() {
+ return allowCreate;
+ }
+
+ /**
+ * Sets the value of the allowCreate property.
+ *
+ * @param value allowed object is {@link Boolean }
+ */
+ public void setAllowCreate(Boolean value) {
+ this.allowCreate = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/package-info.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/package-info.java
new file mode 100755
index 0000000..e0b0893
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Package containing the classes for the protocol of SAMLv2
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestAbstractType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestAbstractType.java
new file mode 100755
index 0000000..4901ed6
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestAbstractType.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.common.CommonRequestAbstractType;
+import org.keycloak.dom.saml.v2.SAML2Object;
+import org.keycloak.dom.saml.v2.assertion.NameIDType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for RequestAbstractType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="RequestAbstractType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}Issuer" minOccurs="0"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" minOccurs="0"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}Extensions" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="ID" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * <attribute name="Version" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="IssueInstant" use="required" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
+ * <attribute name="Destination" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Consent" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public abstract class RequestAbstractType extends CommonRequestAbstractType implements SAML2Object {
+
+ protected NameIDType issuer;
+
+ protected ExtensionsType extensions;
+
+ protected String version = "2.0";
+
+ protected URI destination;
+
+ protected String consent;
+
+ public RequestAbstractType(String id, XMLGregorianCalendar instant) {
+ super(id, instant);
+ }
+
+ /**
+ * Gets the value of the issuer property.
+ *
+ * @return possible object is {@link NameIDType }
+ */
+ public NameIDType getIssuer() {
+ return issuer;
+ }
+
+ /**
+ * Sets the value of the issuer property.
+ *
+ * @param value allowed object is {@link NameIDType }
+ */
+ public void setIssuer(NameIDType value) {
+ this.issuer = value;
+ }
+
+ /**
+ * Gets the value of the extensions property.
+ *
+ * @return possible object is {@link ExtensionsType }
+ */
+ public ExtensionsType getExtensions() {
+ return extensions;
+ }
+
+ /**
+ * Sets the value of the extensions property.
+ *
+ * @param value allowed object is {@link ExtensionsType }
+ */
+ public void setExtensions(ExtensionsType value) {
+ this.extensions = value;
+ }
+
+ /**
+ * Gets the value of the version property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * Gets the value of the destination property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getDestination() {
+ return destination;
+ }
+
+ /**
+ * Sets the value of the destination property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setDestination(URI value) {
+ this.destination = value;
+ }
+
+ /**
+ * Gets the value of the consent property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getConsent() {
+ return consent;
+ }
+
+ /**
+ * Sets the value of the consent property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setConsent(String value) {
+ this.consent = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestedAuthnContextType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestedAuthnContextType.java
new file mode 100755
index 0000000..85d364b
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/RequestedAuthnContextType.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for RequestedAuthnContextType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="RequestedAuthnContextType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}AuthnContextClassRef" maxOccurs="unbounded"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}AuthnContextDeclRef" maxOccurs="unbounded"/>
+ * </choice>
+ * <attribute name="Comparison" type="{urn:oasis:names:tc:SAML:2.0:protocol}AuthnContextComparisonType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class RequestedAuthnContextType {
+
+ protected List<String> authnContextClassRef = new ArrayList<String>();
+ protected List<String> authnContextDeclRef = new ArrayList<String>();
+ protected AuthnContextComparisonType comparison;
+
+ /**
+ * Add an authn Context class ref
+ *
+ * @param str
+ */
+ public void addAuthnContextClassRef(String str) {
+ this.authnContextClassRef.add(str);
+ }
+
+ /**
+ * Add authn context decl ref
+ *
+ * @param str
+ */
+ public void addAuthnContextDeclRef(String str) {
+ this.authnContextDeclRef.add(str);
+ }
+
+ /**
+ * Remove an authn Context class ref
+ *
+ * @param str
+ */
+ public void removeAuthnContextClassRef(String str) {
+ this.authnContextClassRef.remove(str);
+ }
+
+ /**
+ * remove authn context decl ref
+ *
+ * @param str
+ */
+ public void removeAuthnContextDeclRef(String str) {
+ this.authnContextDeclRef.remove(str);
+ }
+
+ /**
+ * Gets the value of the authnContextClassRef property.
+ */
+ public List<String> getAuthnContextClassRef() {
+ return Collections.unmodifiableList(this.authnContextClassRef);
+ }
+
+ /**
+ * Gets the value of the authnContextDeclRef property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list, not a snapshot. Therefore any modification you make to
+ * the
+ * returned list will be present inside the JAXB object. This is why there is not a <CODE>set</CODE> method for the
+ * authnContextDeclRef property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ *
+ * <pre>
+ * getAuthnContextDeclRef().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link String }
+ */
+ public List<String> getAuthnContextDeclRef() {
+ return Collections.unmodifiableList(this.authnContextDeclRef);
+ }
+
+ /**
+ * Gets the value of the comparison property.
+ *
+ * @return possible object is {@link AuthnContextComparisonType }
+ */
+ public AuthnContextComparisonType getComparison() {
+ return comparison;
+ }
+
+ /**
+ * Sets the value of the comparison property.
+ *
+ * @param value allowed object is {@link AuthnContextComparisonType }
+ */
+ public void setComparison(AuthnContextComparisonType value) {
+ this.comparison = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ResponseType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ResponseType.java
new file mode 100755
index 0000000..eaa9d04
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ResponseType.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.AssertionType;
+import org.keycloak.dom.saml.v2.assertion.EncryptedAssertionType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for ResponseType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ResponseType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}StatusResponseType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}Assertion"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}EncryptedAssertion"/>
+ * </choice>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ResponseType extends StatusResponseType {
+
+ protected List<RTChoiceType> assertions = new ArrayList<ResponseType.RTChoiceType>();
+
+ public ResponseType(String id, XMLGregorianCalendar issueInstant) {
+ super(id, issueInstant);
+ }
+
+ public ResponseType(StatusResponseType srt) {
+ super(srt);
+ }
+
+ /**
+ * Add an assertion
+ *
+ * @param choice
+ */
+ public void addAssertion(RTChoiceType choice) {
+ assertions.add(choice);
+ }
+
+ /**
+ * Remove an assertion
+ *
+ * @param choice
+ */
+ public void removeAssertion(RTChoiceType choice) {
+ assertions.remove(choice);
+ }
+
+ /**
+ * Replace the first assertion with the passed assertion
+ *
+ * @param id id of the old assertion
+ * @param newAssertion
+ */
+ public void replaceAssertion(String id, RTChoiceType newAssertion) {
+ int index = 0;
+ if (id != null && !id.isEmpty()) {
+ for (RTChoiceType assertion : assertions) {
+ if (assertion.getID().equals(id)) {
+ break;
+ }
+ index++;
+ }
+ }
+ assertions.remove(index);
+ assertions.add(index, newAssertion);
+ }
+
+ /**
+ * Gets a read only list of assertions
+ */
+ public List<RTChoiceType> getAssertions() {
+ return Collections.unmodifiableList(assertions);
+ }
+
+ public static class RTChoiceType {
+
+ private AssertionType assertion;
+
+ private EncryptedAssertionType encryptedAssertion;
+
+ private String id;
+
+ public RTChoiceType(AssertionType assertion) {
+ this.assertion = assertion;
+ this.id = assertion.getID();
+ }
+
+ public RTChoiceType(EncryptedAssertionType encryptedAssertion) {
+ this.encryptedAssertion = encryptedAssertion;
+
+ }
+
+ public AssertionType getAssertion() {
+ return assertion;
+ }
+
+ public EncryptedAssertionType getEncryptedAssertion() {
+ return encryptedAssertion;
+ }
+
+ public String getID() {
+ return id;
+ }
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ScopingType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ScopingType.java
new file mode 100755
index 0000000..3f8a437
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/ScopingType.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.math.BigInteger;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for ScopingType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ScopingType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}IDPList" minOccurs="0"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}RequesterID" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="ProxyCount" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ScopingType {
+
+ protected IDPListType idpList;
+ protected List<URI> requesterID = new ArrayList<URI>();
+
+ protected BigInteger proxyCount;
+
+ /**
+ * Gets the value of the idpList property.
+ *
+ * @return possible object is {@link IDPListType }
+ */
+ public IDPListType getIDPList() {
+ return idpList;
+ }
+
+ /**
+ * Sets the value of the idpList property.
+ *
+ * @param value allowed object is {@link IDPListType }
+ */
+ public void setIDPList(IDPListType value) {
+ this.idpList = value;
+ }
+
+ /**
+ * Gets the value of the requesterID property.
+ * <p>
+ * For example, to add a new item, do as follows:
+ *
+ * <pre>
+ * getRequesterID().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link String }
+ */
+ public List<URI> getRequesterID() {
+ return Collections.unmodifiableList(this.requesterID);
+ }
+
+ /**
+ * Add requester id
+ *
+ * @param uri
+ */
+ public void addRequesterID(URI uri) {
+ this.requesterID.add(uri);
+ }
+
+ /**
+ * Remove requester id
+ *
+ * @param uri
+ */
+ public void removeRequesterID(URI uri) {
+ this.requesterID.remove(uri);
+ }
+
+ /**
+ * Gets the value of the proxyCount property.
+ *
+ * @return possible object is {@link BigInteger }
+ */
+ public BigInteger getProxyCount() {
+ return proxyCount;
+ }
+
+ /**
+ * Sets the value of the proxyCount property.
+ *
+ * @param value allowed object is {@link BigInteger }
+ */
+ public void setProxyCount(BigInteger value) {
+ this.proxyCount = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusCodeType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusCodeType.java
new file mode 100755
index 0000000..004c616
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusCodeType.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.io.Serializable;
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for StatusCodeType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="StatusCodeType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}StatusCode" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Value" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class StatusCodeType implements Serializable {
+
+ protected StatusCodeType statusCode;
+ protected URI value;
+
+ /**
+ * Gets the value of the statusCode property.
+ *
+ * @return possible object is {@link StatusCodeType }
+ */
+ public StatusCodeType getStatusCode() {
+ return statusCode;
+ }
+
+ /**
+ * Sets the value of the statusCode property.
+ *
+ * @param value allowed object is {@link StatusCodeType }
+ */
+ public void setStatusCode(StatusCodeType value) {
+ this.statusCode = value;
+ }
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setValue(URI value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return "StatusCodeType [value=" + value + ", statusCode=" + statusCode + "]";
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusDetailType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusDetailType.java
new file mode 100755
index 0000000..bbbc43f
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusDetailType.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.common.CommonStatusDetailType;
+
+/**
+ * <p>
+ * Java class for StatusDetailType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="StatusDetailType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class StatusDetailType extends CommonStatusDetailType {
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusResponseType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusResponseType.java
new file mode 100755
index 0000000..c03ab20
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusResponseType.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.common.CommonResponseType;
+import org.keycloak.dom.saml.v2.SAML2Object;
+import org.keycloak.dom.saml.v2.assertion.NameIDType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * <p>
+ * Java class for StatusResponseType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="StatusResponseType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}Issuer" minOccurs="0"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" minOccurs="0"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}Extensions" minOccurs="0"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}Status"/>
+ * </sequence>
+ * <attribute name="ID" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * <attribute name="InResponseTo" type="{http://www.w3.org/2001/XMLSchema}NCName" />
+ * <attribute name="Version" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="IssueInstant" use="required" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
+ * <attribute name="Destination" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Consent" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class StatusResponseType extends CommonResponseType implements SAML2Object {
+
+ protected NameIDType issuer;
+
+ protected ExtensionsType extensions;
+
+ protected StatusType status;
+
+ protected String id;
+
+ protected String version = "2.0";
+
+ protected XMLGregorianCalendar issueInstant;
+
+ protected String destination;
+
+ protected String consent;
+
+ public StatusResponseType(String id, XMLGregorianCalendar issueInstant) {
+ super(id, issueInstant);
+ }
+
+ public StatusResponseType(StatusResponseType srt) {
+ this(srt.getID(), srt.getIssueInstant());
+ this.issuer = srt.getIssuer();
+ this.signature = srt.getSignature();
+ this.extensions = srt.getExtensions();
+ this.status = srt.getStatus();
+ this.inResponseTo = srt.getInResponseTo();
+ this.destination = srt.getDestination();
+ this.consent = srt.getConsent();
+ }
+
+ /**
+ * Gets the value of the issuer property.
+ *
+ * @return possible object is {@link NameIDType }
+ */
+ public NameIDType getIssuer() {
+ return issuer;
+ }
+
+ /**
+ * Sets the value of the issuer property.
+ *
+ * @param value allowed object is {@link NameIDType }
+ */
+ public void setIssuer(NameIDType value) {
+ this.issuer = value;
+ }
+
+ /**
+ * Gets the value of the extensions property.
+ *
+ * @return possible object is {@link ExtensionsType }
+ */
+ public ExtensionsType getExtensions() {
+ return extensions;
+ }
+
+ /**
+ * Sets the value of the extensions property.
+ *
+ * @param value allowed object is {@link ExtensionsType }
+ */
+ public void setExtensions(ExtensionsType value) {
+ this.extensions = value;
+ }
+
+ /**
+ * Gets the value of the status property.
+ *
+ * @return possible object is {@link StatusType }
+ */
+ public StatusType getStatus() {
+ return status;
+ }
+
+ /**
+ * Sets the value of the status property.
+ *
+ * @param value allowed object is {@link StatusType }
+ */
+ public void setStatus(StatusType value) {
+ this.status = value;
+ }
+
+ /**
+ * Gets the value of the version property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * Gets the value of the destination property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getDestination() {
+ return destination;
+ }
+
+ /**
+ * Sets the value of the destination property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setDestination(String value) {
+ this.destination = value;
+ }
+
+ /**
+ * Gets the value of the consent property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getConsent() {
+ return consent;
+ }
+
+ /**
+ * Sets the value of the consent property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setConsent(String value) {
+ this.consent = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusType.java
new file mode 100755
index 0000000..976ef62
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/StatusType.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * Java class for StatusType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="StatusType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}StatusCode"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}StatusMessage" minOccurs="0"/>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:protocol}StatusDetail" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class StatusType implements Serializable {
+
+ protected String statusMessage;
+ protected StatusCodeType statusCode;
+ protected StatusDetailType statusDetail;
+
+ /**
+ * Gets the value of the statusCode property.
+ *
+ * @return possible object is {@link StatusCodeType }
+ */
+ public StatusCodeType getStatusCode() {
+ return statusCode;
+ }
+
+ /**
+ * Sets the value of the statusCode property.
+ *
+ * @param value allowed object is {@link StatusCodeType }
+ */
+ public void setStatusCode(StatusCodeType value) {
+ this.statusCode = value;
+ }
+
+ /**
+ * Gets the value of the statusMessage property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getStatusMessage() {
+ return statusMessage;
+ }
+
+ /**
+ * Sets the value of the statusMessage property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setStatusMessage(String value) {
+ this.statusMessage = value;
+ }
+
+ /**
+ * Gets the value of the statusDetail property.
+ *
+ * @return possible object is {@link StatusDetailType }
+ */
+ public StatusDetailType getStatusDetail() {
+ return statusDetail;
+ }
+
+ /**
+ * Sets the value of the statusDetail property.
+ *
+ * @param value allowed object is {@link StatusDetailType }
+ */
+ public void setStatusDetail(StatusDetailType value) {
+ this.statusDetail = value;
+ }
+
+ @Override
+ public String toString() {
+ return "StatusType [statusCode=" + statusCode + ", statusMessage=" + statusMessage + ", statusDetail=" + statusDetail + "]";
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/SubjectQueryAbstractType.java b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/SubjectQueryAbstractType.java
new file mode 100755
index 0000000..29ea5f7
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/saml/v2/protocol/SubjectQueryAbstractType.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.saml.v2.protocol;
+
+import org.keycloak.dom.saml.v2.assertion.SubjectType;
+
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * <p>
+ * Java class for SubjectQueryAbstractType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SubjectQueryAbstractType">
+ * <complexContent>
+ * <extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ * <sequence>
+ * <element ref="{urn:oasis:names:tc:SAML:2.0:assertion}Subject"/>
+ * </sequence>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public abstract class SubjectQueryAbstractType extends RequestAbstractType {
+
+ protected SubjectType subject;
+
+ public SubjectQueryAbstractType(String id, XMLGregorianCalendar instant) {
+ super(id, instant);
+ }
+
+ public void setSubject(SubjectType subject) {
+ this.subject = subject;
+ }
+
+ /**
+ * Gets the value of the subject property.
+ *
+ * @return possible object is {@link SubjectType }
+ */
+ public SubjectType getSubject() {
+ return subject;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/CanonicalizationMethodType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/CanonicalizationMethodType.java
new file mode 100755
index 0000000..f5f50d4
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/CanonicalizationMethodType.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for CanonicalizationMethodType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CanonicalizationMethodType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any/>
+ * </sequence>
+ * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class CanonicalizationMethodType {
+
+ protected URI algorithm;
+ private Object content;
+
+ public CanonicalizationMethodType(URI algorithm) {
+ this.algorithm = algorithm;
+ }
+
+ public void setContent(Object content) {
+ this.content = content;
+ }
+
+ public Object getContent() {
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getAlgorithm() {
+ return algorithm;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/DigestMethodType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/DigestMethodType.java
new file mode 100755
index 0000000..a4e7166
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/DigestMethodType.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for DigestMethodType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="DigestMethodType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any/>
+ * </sequence>
+ * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class DigestMethodType {
+
+ protected URI algorithm;
+ private Object content;
+
+ public DigestMethodType(URI algorithm) {
+ this.algorithm = algorithm;
+ }
+
+ public void setContent(Object content) {
+ this.content = content;
+ }
+
+ public Object getContent() {
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link URI }
+ */
+ public URI getAlgorithm() {
+ return algorithm;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/KeyInfoType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/KeyInfoType.java
new file mode 100755
index 0000000..deecd30
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/KeyInfoType.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for KeyInfoType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="KeyInfoType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded">
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyName"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyValue"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}PGPData"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}SPKIData"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}MgmtData"/>
+ * <any/>
+ * </choice>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class KeyInfoType {
+
+ protected String id;
+
+ protected List<Object> contentList = new ArrayList<Object>();
+
+ public void addContent(Object content) {
+ this.contentList.add(content);
+ }
+
+ public void removeContent(Object content) {
+ this.contentList.remove(content);
+ }
+
+ public List<Object> getContent() {
+ return Collections.unmodifiableList(contentList);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/KeyValueType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/KeyValueType.java
new file mode 100755
index 0000000..6e19040
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/KeyValueType.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+
+/**
+ * <p>
+ * Java class for KeyValueType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="KeyValueType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/>
+ * <any/>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public interface KeyValueType {
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ManifestType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ManifestType.java
new file mode 100755
index 0000000..f7522e8
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ManifestType.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for ManifestType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ManifestType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ManifestType {
+
+ protected List<ReferenceType> reference = new ArrayList<ReferenceType>();
+ protected String id;
+
+ public void addReference(ReferenceType ref) {
+ this.reference.add(ref);
+ }
+
+ public void removeReference(ReferenceType ref) {
+ this.reference.remove(ref);
+ }
+
+ /**
+ * Gets the value of the reference property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link ReferenceType }
+ */
+ public List<ReferenceType> getReference() {
+ return Collections.unmodifiableList(this.reference);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ObjectType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ObjectType.java
new file mode 100755
index 0000000..64199c2
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ObjectType.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for ObjectType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ObjectType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence maxOccurs="unbounded" minOccurs="0">
+ * <any/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * <attribute name="MimeType" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="Encoding" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ObjectType {
+
+ protected List<Object> content = new ArrayList<Object>();
+ protected String id;
+ protected String mimeType;
+ protected String encoding;
+
+ public void add(Object obj) {
+ this.content.add(obj);
+ }
+
+ public void remove(Object obj) {
+ this.content.remove(obj);
+ }
+
+ /**
+ * Gets the value of the content property.
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link org.w3c.dom.Element } {@link Object } {@link String }
+ */
+ public List<Object> getContent() {
+ return Collections.unmodifiableList(this.content);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Gets the value of the mimeType property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /**
+ * Sets the value of the mimeType property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setMimeType(String value) {
+ this.mimeType = value;
+ }
+
+ /**
+ * Gets the value of the encoding property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getEncoding() {
+ return encoding;
+ }
+
+ /**
+ * Sets the value of the encoding property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setEncoding(String value) {
+ this.encoding = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/package-info.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/package-info.java
new file mode 100755
index 0000000..8200753
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/package-info.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/PGPDataType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/PGPDataType.java
new file mode 100755
index 0000000..bfd7ce5
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/PGPDataType.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for PGPDataType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="PGPDataType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <sequence>
+ * <element name="PGPKeyID" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <element name="PGPKeyPacket" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * <any/>
+ * </sequence>
+ * <sequence>
+ * <element name="PGPKeyPacket" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <any/>
+ * </sequence>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class PGPDataType {
+
+ protected List<Object> content = new ArrayList<Object>();
+
+ public void add(Object obj) {
+ this.content.add(obj);
+ }
+
+ public void remove(Object obj) {
+ this.content.remove(obj);
+ }
+
+ /**
+ * Gets the value of the content property.
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link org.w3c.dom.Element } {@link Object } {@link String }
+ */
+ public List<Object> getContent() {
+ return Collections.unmodifiableList(this.content);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ReferenceType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ReferenceType.java
new file mode 100755
index 0000000..f2a1b54
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/ReferenceType.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+/**
+ * <p>
+ * Java class for ReferenceType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ReferenceType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * <attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ReferenceType {
+
+ protected TransformsType transforms;
+ protected DigestMethodType digestMethod;
+ protected byte[] digestValue;
+ protected String id;
+ protected String uri;
+ protected String type;
+
+ /**
+ * Gets the value of the transforms property.
+ *
+ * @return possible object is {@link TransformsType }
+ */
+ public TransformsType getTransforms() {
+ return transforms;
+ }
+
+ /**
+ * Sets the value of the transforms property.
+ *
+ * @param value allowed object is {@link TransformsType }
+ */
+ public void setTransforms(TransformsType value) {
+ this.transforms = value;
+ }
+
+ /**
+ * Gets the value of the digestMethod property.
+ *
+ * @return possible object is {@link DigestMethodType }
+ */
+ public DigestMethodType getDigestMethod() {
+ return digestMethod;
+ }
+
+ /**
+ * Sets the value of the digestMethod property.
+ *
+ * @param value allowed object is {@link DigestMethodType }
+ */
+ public void setDigestMethod(DigestMethodType value) {
+ this.digestMethod = value;
+ }
+
+ /**
+ * Gets the value of the digestValue property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getDigestValue() {
+ return digestValue;
+ }
+
+ /**
+ * Sets the value of the digestValue property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setDigestValue(byte[] value) {
+ this.digestValue = ((byte[]) value);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getURI() {
+ return uri;
+ }
+
+ /**
+ * Sets the value of the uri property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setURI(String value) {
+ this.uri = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RetrievalMethodType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RetrievalMethodType.java
new file mode 100755
index 0000000..763a6a7
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RetrievalMethodType.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+/**
+ * <p>
+ * Java class for RetrievalMethodType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="RetrievalMethodType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class RetrievalMethodType {
+
+ protected TransformsType transforms;
+ protected String uri;
+ protected String type;
+
+ /**
+ * Gets the value of the transforms property.
+ *
+ * @return possible object is {@link TransformsType }
+ */
+ public TransformsType getTransforms() {
+ return transforms;
+ }
+
+ /**
+ * Sets the value of the transforms property.
+ *
+ * @param value allowed object is {@link TransformsType }
+ */
+ public void setTransforms(TransformsType value) {
+ this.transforms = value;
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getURI() {
+ return uri;
+ }
+
+ /**
+ * Sets the value of the uri property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setURI(String value) {
+ this.uri = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RSAKeyValueType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RSAKeyValueType.java
new file mode 100755
index 0000000..a1cf780
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/RSAKeyValueType.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import org.keycloak.saml.common.constants.WSTrustConstants;
+import org.keycloak.saml.common.exceptions.ProcessingException;
+import org.keycloak.saml.common.util.Base64;
+
+import java.math.BigInteger;
+import java.security.KeyFactory;
+import java.security.interfaces.RSAPrivateKey;
+import java.security.interfaces.RSAPublicKey;
+import java.security.spec.RSAPrivateKeySpec;
+import java.security.spec.RSAPublicKeySpec;
+
+/**
+ * <p>
+ * Java class for RSAKeyValueType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="RSAKeyValueType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="Modulus" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * <element name="Exponent" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class RSAKeyValueType implements KeyValueType {
+
+ protected byte[] modulus;
+ protected byte[] exponent;
+
+ /**
+ * Gets the value of the modulus property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getModulus() {
+ return modulus;
+ }
+
+ /**
+ * Sets the value of the modulus property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setModulus(byte[] value) {
+ this.modulus = ((byte[]) value);
+ }
+
+ /**
+ * Gets the value of the exponent property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getExponent() {
+ return exponent;
+ }
+
+ /**
+ * Sets the value of the exponent property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setExponent(byte[] value) {
+ this.exponent = ((byte[]) value);
+ }
+
+ /**
+ * Convert to the JDK representation of a RSA Public Key
+ *
+ * @return
+ *
+ * @throws org.keycloak.saml.common.exceptions.ProcessingException
+ */
+ public RSAPublicKey convertToPublicKey() throws ProcessingException {
+ BigInteger bigModulus = new BigInteger(1, massage(Base64.decode(new String(modulus))));
+ BigInteger bigEx = new BigInteger(1, massage(Base64.decode(new String(exponent))));
+
+ try {
+ KeyFactory rsaKeyFactory = KeyFactory.getInstance("rsa");
+ RSAPublicKeySpec kspec = new RSAPublicKeySpec(bigModulus, bigEx);
+ return (RSAPublicKey) rsaKeyFactory.generatePublic(kspec);
+ } catch (Exception e) {
+ throw new ProcessingException(e);
+ }
+ }
+
+ /**
+ * Convert to the JDK representation of a RSA Private Key
+ *
+ * @return
+ *
+ * @throws ProcessingException
+ */
+ public RSAPrivateKey convertToPrivateKey() throws ProcessingException {
+ BigInteger bigModulus = new BigInteger(1, massage(Base64.decode(new String(modulus))));
+ BigInteger bigEx = new BigInteger(1, massage(Base64.decode(new String(exponent))));
+
+ try {
+ KeyFactory rsaKeyFactory = KeyFactory.getInstance("rsa");
+ RSAPrivateKeySpec kspec = new RSAPrivateKeySpec(bigModulus, bigEx);
+ return (RSAPrivateKey) rsaKeyFactory.generatePrivate(kspec);
+ } catch (Exception e) {
+ throw new ProcessingException(e);
+ }
+ }
+
+ public String toString() {
+ String prefix = WSTrustConstants.XMLDSig.DSIG_PREFIX;
+ String colon = ":";
+ String left = "<";
+ String right = ">";
+ String slash = "/";
+
+ StringBuilder sb = new StringBuilder();
+
+ sb.append(left).append(prefix).append(colon).append(WSTrustConstants.XMLDSig.RSA_KEYVALUE).append(right);
+
+ sb.append(left).append(prefix).append(colon).append(WSTrustConstants.XMLDSig.MODULUS).append(right);
+ sb.append(new String(getModulus()));
+ sb.append(left).append(slash).append(prefix).append(colon).append(WSTrustConstants.XMLDSig.MODULUS).append(right);
+
+ sb.append(left).append(prefix).append(colon).append(WSTrustConstants.XMLDSig.EXPONENT).append(right);
+ sb.append(new String(getExponent()));
+ sb.append(left).append(slash).append(prefix).append(colon).append(WSTrustConstants.XMLDSig.EXPONENT).append(right);
+
+ sb.append(left).append(slash).append(prefix).append(colon).append(WSTrustConstants.XMLDSig.RSA_KEYVALUE).append(right);
+ return sb.toString();
+ }
+
+ private byte[] massage(byte[] byteArray) {
+ if (byteArray[0] == 0) {
+ byte[] substring = new byte[byteArray.length - 1];
+ System.arraycopy(byteArray, 1, substring, 0, byteArray.length - 1);
+ return substring;
+ }
+ return byteArray;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureMethodType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureMethodType.java
new file mode 100755
index 0000000..117ecf4
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureMethodType.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for SignatureMethodType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SignatureMethodType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="HMACOutputLength" type="{http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType"
+ * minOccurs="0"/>
+ * <any/>
+ * </sequence>
+ * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class SignatureMethodType {
+
+ protected List<Object> content = new ArrayList<Object>();
+ protected String algorithm;
+
+ public void add(Object obj) {
+ this.content.add(obj);
+ }
+
+ public void remove(Object obj) {
+ this.content.remove(obj);
+ }
+
+ /**
+ * Gets the value of the content property.
+ *
+ * {@link Object } {@link String }
+ */
+ public List<Object> getContent() {
+ return Collections.unmodifiableList(this.content);
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ /**
+ * Sets the value of the algorithm property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertiesType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertiesType.java
new file mode 100755
index 0000000..3fb4c12
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertiesType.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for SignaturePropertiesType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SignaturePropertiesType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureProperty" maxOccurs="unbounded"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class SignaturePropertiesType {
+
+ protected List<SignaturePropertyType> signatureProperty = new ArrayList<SignaturePropertyType>();
+ protected String id;
+
+ public void addSignatureProperty(SignaturePropertyType sig) {
+ this.signatureProperty.add(sig);
+ }
+
+ public void removeSignatureProperty(SignaturePropertyType sig) {
+ this.signatureProperty.remove(sig);
+ }
+
+ /**
+ * Gets the value of the signatureProperty property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link SignaturePropertyType }
+ */
+ public List<SignaturePropertyType> getSignatureProperty() {
+ return Collections.unmodifiableList(this.signatureProperty);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertyType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertyType.java
new file mode 100755
index 0000000..bb34836
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignaturePropertyType.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for SignaturePropertyType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SignaturePropertyType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded">
+ * <any/>
+ * </choice>
+ * <attribute name="Target" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class SignaturePropertyType {
+
+ protected List<Object> content = new ArrayList<Object>();
+ protected String target;
+ protected String id;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link org.w3c.dom.Element } {@link Object } {@link String }
+ */
+ public List<Object> getContent() {
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the target property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getTarget() {
+ return target;
+ }
+
+ /**
+ * Sets the value of the target property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setTarget(String value) {
+ this.target = value;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureType.java
new file mode 100755
index 0000000..6ba77db
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureType.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for SignatureType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SignatureType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignedInfo"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureValue"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyInfo" minOccurs="0"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Object" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class SignatureType {
+
+ protected SignedInfoType signedInfo;
+ protected SignatureValueType signatureValue;
+ protected KeyInfoType keyInfo;
+ protected List<ObjectType> object = new ArrayList<ObjectType>();
+ protected String id;
+
+ /**
+ * Gets the value of the signedInfo property.
+ *
+ * @return possible object is {@link SignedInfoType }
+ */
+ public SignedInfoType getSignedInfo() {
+ return signedInfo;
+ }
+
+ /**
+ * Sets the value of the signedInfo property.
+ *
+ * @param value allowed object is {@link SignedInfoType }
+ */
+ public void setSignedInfo(SignedInfoType value) {
+ this.signedInfo = value;
+ }
+
+ /**
+ * Gets the value of the signatureValue property.
+ *
+ * @return possible object is {@link SignatureValueType }
+ */
+ public SignatureValueType getSignatureValue() {
+ return signatureValue;
+ }
+
+ /**
+ * Sets the value of the signatureValue property.
+ *
+ * @param value allowed object is {@link SignatureValueType }
+ */
+ public void setSignatureValue(SignatureValueType value) {
+ this.signatureValue = value;
+ }
+
+ /**
+ * Gets the value of the keyInfo property.
+ *
+ * @return possible object is {@link KeyInfoType }
+ */
+ public KeyInfoType getKeyInfo() {
+ return keyInfo;
+ }
+
+ /**
+ * Sets the value of the keyInfo property.
+ *
+ * @param value allowed object is {@link KeyInfoType }
+ */
+ public void setKeyInfo(KeyInfoType value) {
+ this.keyInfo = value;
+ }
+
+ public void addObject(ObjectType obj) {
+ this.object.add(obj);
+ }
+
+ public void removeObject(ObjectType obj) {
+ this.object.remove(obj);
+ }
+
+ /**
+ * Gets the value of the object property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link ObjectType }
+ */
+ public List<ObjectType> getObject() {
+ return Collections.unmodifiableList(this.object);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureValueType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureValueType.java
new file mode 100755
index 0000000..0fde7ce
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignatureValueType.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+/**
+ * <p>
+ * Java class for SignatureValueType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SignatureValueType">
+ * <simpleContent>
+ * <extension base="<http://www.w3.org/2001/XMLSchema>base64Binary">
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </extension>
+ * </simpleContent>
+ * </complexType>
+ * </pre>
+ */
+public class SignatureValueType {
+
+ protected byte[] value;
+ protected String id;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setValue(byte[] value) {
+ this.value = ((byte[]) value);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignedInfoType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignedInfoType.java
new file mode 100755
index 0000000..af30303
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SignedInfoType.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for SignedInfoType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SignedInfoType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureMethod"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class SignedInfoType {
+
+ protected CanonicalizationMethodType canonicalizationMethod;
+ protected SignatureMethodType signatureMethod;
+ protected List<ReferenceType> reference = new ArrayList<ReferenceType>();
+ protected String id;
+
+ /**
+ * Gets the value of the canonicalizationMethod property.
+ *
+ * @return possible object is {@link CanonicalizationMethodType }
+ */
+ public CanonicalizationMethodType getCanonicalizationMethod() {
+ return canonicalizationMethod;
+ }
+
+ /**
+ * Sets the value of the canonicalizationMethod property.
+ *
+ * @param value allowed object is {@link CanonicalizationMethodType }
+ */
+ public void setCanonicalizationMethod(CanonicalizationMethodType value) {
+ this.canonicalizationMethod = value;
+ }
+
+ /**
+ * Gets the value of the signatureMethod property.
+ *
+ * @return possible object is {@link SignatureMethodType }
+ */
+ public SignatureMethodType getSignatureMethod() {
+ return signatureMethod;
+ }
+
+ /**
+ * Sets the value of the signatureMethod property.
+ *
+ * @param value allowed object is {@link SignatureMethodType }
+ */
+ public void setSignatureMethod(SignatureMethodType value) {
+ this.signatureMethod = value;
+ }
+
+ public void add(ReferenceType ref) {
+ this.reference.add(ref);
+ }
+
+ public void remove(ReferenceType ref) {
+ this.reference.remove(ref);
+ }
+
+ /**
+ * Gets the value of the reference property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link ReferenceType }
+ */
+ public List<ReferenceType> getReference() {
+ return Collections.unmodifiableList(this.reference);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SPKIDataType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SPKIDataType.java
new file mode 100755
index 0000000..e744624
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/SPKIDataType.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for SPKIDataType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="SPKIDataType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence maxOccurs="unbounded">
+ * <element name="SPKISexp" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <any/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class SPKIDataType {
+
+ protected List<Object> spkiSexpAndAny = new ArrayList<Object>();
+
+ public void addSPKI(Object obj) {
+ this.spkiSexpAndAny.add(obj);
+ }
+
+ public void removeSPKI(Object obj) {
+ this.spkiSexpAndAny.remove(obj);
+ }
+
+ /**
+ * Gets the value of the spkiSexpAndAny property.
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link org.w3c.dom.Element } {@link Object }
+ */
+ public List<Object> getSPKISexpAndAny() {
+ return Collections.unmodifiableList(this.spkiSexpAndAny);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/TransformsType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/TransformsType.java
new file mode 100755
index 0000000..76010ee
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/TransformsType.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for TransformsType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="TransformsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transform" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class TransformsType {
+
+ protected List<TransformType> transform = new ArrayList<TransformType>();
+
+ public void addTransformsType(TransformType tt) {
+ this.transform.add(tt);
+ }
+
+ public void removeTransformsType(TransformType tt) {
+ this.transform.remove(tt);
+ }
+
+ /**
+ * Gets the value of the transform property.
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link TransformType }
+ */
+ public List<TransformType> getTransform() {
+ return Collections.unmodifiableList(this.transform);
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/TransformType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/TransformType.java
new file mode 100755
index 0000000..fbadaf0
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/TransformType.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for TransformType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="TransformType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <any/>
+ * <element name="XPath" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * </choice>
+ * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class TransformType {
+
+ protected List<Object> content = new ArrayList<Object>();
+ protected URI algorithm;
+
+ public TransformType(URI algorithm) {
+ this.algorithm = algorithm;
+ }
+
+ public void addTransform(Object obj) {
+ this.content.add(obj);
+ }
+
+ public void removeTransform(Object obj) {
+ this.content.remove(obj);
+ }
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link org.w3c.dom.Element } {@link String } {@link Object }
+ */
+ public List<Object> getContent() {
+ return Collections.unmodifiableList(this.content);
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getAlgorithm() {
+ return algorithm;
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509CertificateType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509CertificateType.java
new file mode 100755
index 0000000..1a524ac
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509CertificateType.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+public class X509CertificateType {
+
+ private byte[] encodedCertificate;
+
+ public byte[] getEncodedCertificate() {
+ return this.encodedCertificate;
+ }
+
+ public void setEncodedCertificate(byte[] encodedCertificate) {
+ this.encodedCertificate = encodedCertificate;
+ }
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509DataType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509DataType.java
new file mode 100755
index 0000000..c2111a9
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509DataType.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for X509DataType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="X509DataType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence maxOccurs="unbounded">
+ * <choice>
+ * <element name="X509IssuerSerial" type="{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType"/>
+ * <element name="X509SKI" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <element name="X509SubjectName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <element name="X509Certificate" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <element name="X509CRL" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <any/>
+ * </choice>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class X509DataType {
+
+ protected List<Object> x509IssuerSerialOrX509SKIOrX509SubjectName = new ArrayList<Object>();
+
+ public void add(Object obj) {
+ this.x509IssuerSerialOrX509SKIOrX509SubjectName.add(obj);
+ }
+
+ public void remove(Object obj) {
+ this.x509IssuerSerialOrX509SKIOrX509SubjectName.remove(obj);
+ }
+
+ /**
+ * Gets the value of the x509IssuerSerialOrX509SKIOrX509SubjectName property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link org.w3c.dom.Element } {@link Object }
+ */
+ public List<Object> getDataObjects() {
+ return Collections.unmodifiableList(this.x509IssuerSerialOrX509SKIOrX509SubjectName);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509IssuerSerialType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509IssuerSerialType.java
new file mode 100755
index 0000000..34b2ab1
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmldsig/X509IssuerSerialType.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmldsig;
+
+import java.math.BigInteger;
+
+/**
+ * <p>
+ * Java class for X509IssuerSerialType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="X509IssuerSerialType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="X509IssuerName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * <element name="X509SerialNumber" type="{http://www.w3.org/2001/XMLSchema}integer"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class X509IssuerSerialType {
+
+ protected String x509IssuerName;
+ protected BigInteger x509SerialNumber;
+
+ /**
+ * Gets the value of the x509IssuerName property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getX509IssuerName() {
+ return x509IssuerName;
+ }
+
+ /**
+ * Sets the value of the x509IssuerName property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setX509IssuerName(String value) {
+ this.x509IssuerName = value;
+ }
+
+ /**
+ * Gets the value of the x509SerialNumber property.
+ *
+ * @return possible object is {@link BigInteger }
+ */
+ public BigInteger getX509SerialNumber() {
+ return x509SerialNumber;
+ }
+
+ /**
+ * Sets the value of the x509SerialNumber property.
+ *
+ * @param value allowed object is {@link BigInteger }
+ */
+ public void setX509SerialNumber(BigInteger value) {
+ this.x509SerialNumber = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/AgreementMethodType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/AgreementMethodType.java
new file mode 100755
index 0000000..57a3461
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/AgreementMethodType.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import org.keycloak.dom.xmlsec.w3.xmldsig.KeyInfoType;
+
+/**
+ * <p>
+ * Java class for AgreementMethodType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="AgreementMethodType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="KA-Nonce" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * <any/>
+ * <element name="OriginatorKeyInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType" minOccurs="0"/>
+ * <element name="RecipientKeyInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class AgreementMethodType {
+
+ protected String algorithm;
+
+ public static class AggrementMethod {
+
+ protected byte[] kANonce;
+ protected KeyInfoType originatorKeyInfo;
+ protected KeyInfoType recipientKeyInfo;
+
+ public AggrementMethod(byte[] kANonce, KeyInfoType originatorKeyInfo, KeyInfoType recipientKeyInfo) {
+ this.kANonce = kANonce;
+ this.originatorKeyInfo = originatorKeyInfo;
+ this.recipientKeyInfo = recipientKeyInfo;
+ }
+
+ public byte[] getkANonce() {
+ return kANonce;
+ }
+
+ public KeyInfoType getOriginatorKeyInfo() {
+ return originatorKeyInfo;
+ }
+
+ public KeyInfoType getRecipientKeyInfo() {
+ return recipientKeyInfo;
+ }
+ }
+
+ public AgreementMethodType(String algo) {
+ this.algorithm = algo;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/CipherDataType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/CipherDataType.java
new file mode 100755
index 0000000..639222f
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/CipherDataType.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+/**
+ * <p>
+ * Java class for CipherDataType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CipherDataType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <element name="CipherValue" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * <element ref="{http://www.w3.org/2001/04/xmlenc#}CipherReference"/>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class CipherDataType {
+
+ protected byte[] cipherValue;
+ protected CipherReferenceType cipherReference;
+
+ /**
+ * Gets the value of the cipherValue property.
+ *
+ * @return possible object is byte[]
+ */
+ public byte[] getCipherValue() {
+ return cipherValue;
+ }
+
+ /**
+ * Sets the value of the cipherValue property.
+ *
+ * @param value allowed object is byte[]
+ */
+ public void setCipherValue(byte[] value) {
+ this.cipherValue = ((byte[]) value);
+ }
+
+ /**
+ * Gets the value of the cipherReference property.
+ *
+ * @return possible object is {@link CipherReferenceType }
+ */
+ public CipherReferenceType getCipherReference() {
+ return cipherReference;
+ }
+
+ /**
+ * Sets the value of the cipherReference property.
+ *
+ * @param value allowed object is {@link CipherReferenceType }
+ */
+ public void setCipherReference(CipherReferenceType value) {
+ this.cipherReference = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/CipherReferenceType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/CipherReferenceType.java
new file mode 100755
index 0000000..5f6f0ca
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/CipherReferenceType.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for CipherReferenceType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CipherReferenceType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <element name="Transforms" type="{http://www.w3.org/2001/04/xmlenc#}TransformsType" minOccurs="0"/>
+ * </choice>
+ * <attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class CipherReferenceType {
+
+ protected TransformsType transforms;
+ protected URI uri;
+
+ public CipherReferenceType(URI uri) {
+
+ }
+
+ /**
+ * Gets the value of the transforms property.
+ *
+ * @return possible object is {@link TransformsType }
+ */
+ public TransformsType getTransforms() {
+ return transforms;
+ }
+
+ /**
+ * Sets the value of the transforms property.
+ *
+ * @param value allowed object is {@link TransformsType }
+ */
+ public void setTransforms(TransformsType value) {
+ this.transforms = value;
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return possible object is {@link String }
+ */
+ public URI getURI() {
+ return uri;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedDataType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedDataType.java
new file mode 100755
index 0000000..7a8fd1b
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedDataType.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+/**
+ * <p>
+ * Java class for EncryptedDataType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="EncryptedDataType">
+ * <complexContent>
+ * <extension base="{http://www.w3.org/2001/04/xmlenc#}EncryptedType">
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class EncryptedDataType extends EncryptedType {
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedKeyType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedKeyType.java
new file mode 100755
index 0000000..c2d80c6
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedKeyType.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+/**
+ * <p>
+ * Java class for EncryptedKeyType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="EncryptedKeyType">
+ * <complexContent>
+ * <extension base="{http://www.w3.org/2001/04/xmlenc#}EncryptedType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2001/04/xmlenc#}ReferenceList" minOccurs="0"/>
+ * <element name="CarriedKeyName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Recipient" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class EncryptedKeyType extends EncryptedType {
+
+ protected ReferenceList referenceList;
+ protected String carriedKeyName;
+ protected String recipient;
+
+ /**
+ * Gets the value of the referenceList property.
+ *
+ * @return possible object is {@link ReferenceList }
+ */
+ public ReferenceList getReferenceList() {
+ return referenceList;
+ }
+
+ /**
+ * Sets the value of the referenceList property.
+ *
+ * @param value allowed object is {@link ReferenceList }
+ */
+ public void setReferenceList(ReferenceList value) {
+ this.referenceList = value;
+ }
+
+ /**
+ * Gets the value of the carriedKeyName property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getCarriedKeyName() {
+ return carriedKeyName;
+ }
+
+ /**
+ * Sets the value of the carriedKeyName property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setCarriedKeyName(String value) {
+ this.carriedKeyName = value;
+ }
+
+ /**
+ * Gets the value of the recipient property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getRecipient() {
+ return recipient;
+ }
+
+ /**
+ * Sets the value of the recipient property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setRecipient(String value) {
+ this.recipient = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedType.java
new file mode 100755
index 0000000..92b18f8
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptedType.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import org.keycloak.dom.xmlsec.w3.xmldsig.KeyInfoType;
+
+/**
+ * <p>
+ * Java class for EncryptedType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="EncryptedType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="EncryptionMethod" type="{http://www.w3.org/2001/04/xmlenc#}EncryptionMethodType"
+ * minOccurs="0"/>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyInfo" minOccurs="0"/>
+ * <element ref="{http://www.w3.org/2001/04/xmlenc#}CipherData"/>
+ * <element ref="{http://www.w3.org/2001/04/xmlenc#}EncryptionProperties" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="MimeType" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * <attribute name="Encoding" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public abstract class EncryptedType {
+
+ protected EncryptionMethodType encryptionMethod;
+ protected KeyInfoType keyInfo;
+ protected CipherDataType cipherData;
+ protected EncryptionPropertiesType encryptionProperties;
+ protected String id;
+ protected String type;
+ protected String mimeType;
+ protected String encoding;
+
+ /**
+ * Gets the value of the encryptionMethod property.
+ *
+ * @return possible object is {@link EncryptionMethodType }
+ */
+ public EncryptionMethodType getEncryptionMethod() {
+ return encryptionMethod;
+ }
+
+ /**
+ * Sets the value of the encryptionMethod property.
+ *
+ * @param value allowed object is {@link EncryptionMethodType }
+ */
+ public void setEncryptionMethod(EncryptionMethodType value) {
+ this.encryptionMethod = value;
+ }
+
+ /**
+ * Gets the value of the keyInfo property.
+ *
+ * @return possible object is {@link KeyInfoType }
+ */
+ public KeyInfoType getKeyInfo() {
+ return keyInfo;
+ }
+
+ /**
+ * Sets the value of the keyInfo property.
+ *
+ * @param value allowed object is {@link KeyInfoType }
+ */
+ public void setKeyInfo(KeyInfoType value) {
+ this.keyInfo = value;
+ }
+
+ /**
+ * Gets the value of the cipherData property.
+ *
+ * @return possible object is {@link CipherDataType }
+ */
+ public CipherDataType getCipherData() {
+ return cipherData;
+ }
+
+ /**
+ * Sets the value of the cipherData property.
+ *
+ * @param value allowed object is {@link CipherDataType }
+ */
+ public void setCipherData(CipherDataType value) {
+ this.cipherData = value;
+ }
+
+ /**
+ * Gets the value of the encryptionProperties property.
+ *
+ * @return possible object is {@link EncryptionPropertiesType }
+ */
+ public EncryptionPropertiesType getEncryptionProperties() {
+ return encryptionProperties;
+ }
+
+ /**
+ * Sets the value of the encryptionProperties property.
+ *
+ * @param value allowed object is {@link EncryptionPropertiesType }
+ */
+ public void setEncryptionProperties(EncryptionPropertiesType value) {
+ this.encryptionProperties = value;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+ /**
+ * Gets the value of the mimeType property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /**
+ * Sets the value of the mimeType property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setMimeType(String value) {
+ this.mimeType = value;
+ }
+
+ /**
+ * Gets the value of the encoding property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getEncoding() {
+ return encoding;
+ }
+
+ /**
+ * Sets the value of the encoding property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setEncoding(String value) {
+ this.encoding = value;
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionMethodType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionMethodType.java
new file mode 100755
index 0000000..a88273d
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionMethodType.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import java.math.BigInteger;
+
+/**
+ * <p>
+ * Java class for EncryptionMethodType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="EncryptionMethodType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="KeySize" type="{http://www.w3.org/2001/04/xmlenc#}KeySizeType" minOccurs="0"/>
+ * <element name="OAEPparams" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * <any/>
+ * </sequence>
+ * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class EncryptionMethodType {
+
+ protected String algorithm;
+
+ protected EncryptionMethod encryptionMethod;
+
+ public static class EncryptionMethod {
+
+ protected BigInteger keySize;
+ protected byte[] OAEPparams;
+
+ public EncryptionMethod(BigInteger bigInteger, byte[] oAEPparams) {
+ this.keySize = bigInteger;
+ OAEPparams = oAEPparams;
+ }
+
+ public BigInteger getKeySize() {
+ return keySize;
+ }
+
+ public byte[] getOAEPparams() {
+ return OAEPparams;
+ }
+ }
+
+ public EncryptionMethodType(String algo) {
+ this.algorithm = algo;
+ }
+
+ public EncryptionMethod getEncryptionMethod() {
+ return encryptionMethod;
+ }
+
+ public void setEncryptionMethod(EncryptionMethod encryptionMethod) {
+ this.encryptionMethod = encryptionMethod;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertiesType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertiesType.java
new file mode 100755
index 0000000..aad85e8
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertiesType.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for EncryptionPropertiesType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="EncryptionPropertiesType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2001/04/xmlenc#}EncryptionProperty" maxOccurs="unbounded"/>
+ * </sequence>
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class EncryptionPropertiesType {
+
+ protected List<EncryptionPropertyType> encryptionProperty = new ArrayList<EncryptionPropertyType>();
+ protected String id;
+
+ public void addEncryptionProperty(EncryptionPropertyType enc) {
+ this.encryptionProperty.add(enc);
+ }
+
+ public void removeEncryptionProperty(EncryptionPropertyType enc) {
+ this.encryptionProperty.remove(enc);
+ }
+
+ /**
+ * Gets the value of the encryptionProperty property.
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link EncryptionPropertyType }
+ */
+ public List<EncryptionPropertyType> getEncryptionProperty() {
+ return Collections.unmodifiableList(this.encryptionProperty);
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertyType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertyType.java
new file mode 100755
index 0000000..874634d
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/EncryptionPropertyType.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import javax.xml.namespace.QName;
+import java.net.URI;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * Java class for EncryptionPropertyType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="EncryptionPropertyType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded">
+ * <any/>
+ * </choice>
+ * <attribute name="Target" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class EncryptionPropertyType {
+
+ protected URI target;
+ protected String id;
+ private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+ /**
+ * Gets the value of the target property.
+ *
+ * @return possible object is {@link URI }
+ */
+ public URI getTarget() {
+ return target;
+ }
+
+ /**
+ * Sets the value of the target property.
+ *
+ * @param value allowed object is {@link URI }
+ */
+ public void setTarget(URI value) {
+ this.target = value;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return possible object is {@link String }
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value allowed object is {@link String }
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ public void addOtherAttribute(QName key, String val) {
+ this.otherAttributes.put(key, val);
+ }
+
+ public void addOtherAttributes(Map<QName, String> otherMap) {
+ this.otherAttributes.putAll(otherMap);
+ }
+
+ public void removeOtherAttribute(QName key) {
+ this.otherAttributes.remove(key);
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ * @return always non-null
+ */
+ public Map<QName, String> getOtherAttributes() {
+ return Collections.unmodifiableMap(otherAttributes);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/package-info.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/package-info.java
new file mode 100755
index 0000000..535eca8
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/package-info.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/ReferenceList.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/ReferenceList.java
new file mode 100755
index 0000000..857a004
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/ReferenceList.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for anonymous complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded">
+ * <element name="DataReference" type="{http://www.w3.org/2001/04/xmlenc#}ReferenceType"/>
+ * <element name="KeyReference" type="{http://www.w3.org/2001/04/xmlenc#}ReferenceType"/>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ReferenceList {
+
+ public static class References {
+
+ private ReferenceType dataReference;
+ private ReferenceType keyReference;
+
+ public References(ReferenceType dataReference, ReferenceType keyReference) {
+ this.dataReference = dataReference;
+ this.keyReference = keyReference;
+ }
+
+ public ReferenceType getDataReference() {
+ return dataReference;
+ }
+
+ public ReferenceType getKeyReference() {
+ return keyReference;
+ }
+ }
+
+ private List<References> referencesList = new ArrayList<References>();
+
+ public void add(References ref) {
+ this.referencesList.add(ref);
+ }
+
+ public void addAll(List<References> refs) {
+ this.referencesList.addAll(refs);
+ }
+
+ public void remove(References ref) {
+ this.referencesList.remove(ref);
+ }
+
+ public List<References> getReferences() {
+ return Collections.unmodifiableList(referencesList);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/ReferenceType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/ReferenceType.java
new file mode 100755
index 0000000..715fc5c
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/ReferenceType.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import java.net.URI;
+
+/**
+ * <p>
+ * Java class for ReferenceType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="ReferenceType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any/>
+ * </sequence>
+ * <attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class ReferenceType {
+
+ protected URI uri;
+
+ public Object reference;
+
+ public ReferenceType(URI uri) {
+ this.uri = uri;
+ }
+
+ public Object getReference() {
+ return reference;
+ }
+
+ public void setReference(Object reference) {
+ this.reference = reference;
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return possible object is {@link URI }
+ */
+ public URI getURI() {
+ return uri;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/TransformsType.java b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/TransformsType.java
new file mode 100755
index 0000000..58875cd
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/dom/xmlsec/w3/xmlenc/TransformsType.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.dom.xmlsec.w3.xmlenc;
+
+import org.keycloak.dom.xmlsec.w3.xmldsig.TransformType;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <p>
+ * Java class for TransformsType complex type.
+ *
+ * <p>
+ * The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="TransformsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transform" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ */
+public class TransformsType {
+
+ protected List<TransformType> transform = new ArrayList<TransformType>();
+
+ public void add(TransformType tt) {
+ this.transform.add(tt);
+ }
+
+ public void addAll(List<TransformType> ttlist) {
+ this.transform.addAll(ttlist);
+ }
+
+ public void remove(TransformType tt) {
+ this.transform.remove(tt);
+ }
+
+ /**
+ * Gets the value of the transform property.
+ * <p>
+ * Objects of the following type(s) are allowed in the list {@link TransformType }
+ */
+ public List<TransformType> getTransform() {
+ return Collections.unmodifiableList(this.transform);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/constants/GeneralConstants.java b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/GeneralConstants.java
new file mode 100755
index 0000000..e38d36f
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/GeneralConstants.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.constants;
+
+
+/**
+ * Constants
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Oct 8, 2009
+ */
+public interface GeneralConstants {
+ String ASSERTIONS_VALIDITY = "ASSERTIONS_VALIDITY";
+ String CLOCK_SKEW = "CLOCK_SKEW";
+
+ String ASSERTION_ID = "ASSERTION_ID";
+
+ String ASSERTION = "ASSERTION";
+
+ String ATTRIBUTES = "ATTRIBUTES";
+
+ String ATTRIBUTE_KEYS = "ATTRIBUTE_KEYS";
+
+ String ATTRIBUTE_CHOOSE_FRIENDLY_NAME = "ATTRIBUTE_CHOOSE_FRIENDLY_NAME";
+
+ String ATTIBUTE_MANAGER = "ATTRIBUTE_MANAGER";
+
+ String AUDIT_ENABLE = "picketlink.audit.enable";
+
+ String AUDIT_HELPER = "AUDIT_HELPER";
+
+ String AUDIT_SECURITY_DOMAIN = "picketlink.audit.securitydomain";
+
+ String CONFIGURATION = "CONFIGURATION";
+
+ String CONFIG_FILE_LOCATION = "/WEB-INF/picketlink.xml";
+
+ String CONFIG_PROVIDER = "CONFIG_PROVIDER";
+
+ String CONTEXT_PATH = "CONTEXT_PATH";
+
+ String DEPRECATED_CONFIG_FILE_LOCATION = "/WEB-INF/picketlink-idfed.xml";
+
+ String LOCAL_LOGOUT = "LLO";
+
+ String GLOBAL_LOGOUT = "GLO";
+
+ String HANDLER_CONFIG_FILE_LOCATION = "/WEB-INF/picketlink-handlers.xml";
+
+ String IDENTITY_SERVER = "IDENTITY_SERVER";
+
+ String IDENTITY_PARTICIPANT_STACK = "IDENTITY_PARTICIPANT_STACK";
+
+ String IGNORE_SIGNATURES = "IGNORE_SIGNATURES";
+
+ String KEYPAIR = "KEYPAIR";
+
+ String LOGIN_TYPE = "LOGIN_TYPE";
+
+ String LOGOUT_PAGE = "LOGOUT_PAGE";
+
+ String LOGOUT_PAGE_NAME = "/logout.jsp";
+
+ String NAMEID_FORMAT = "NAMEID_FORMAT";
+
+ String PRINCIPAL_ID = "picketlink.principal";
+
+ String RELAY_STATE = "RelayState";
+
+ String ROLES = "ROLES";
+
+ String ROLES_ID = "picketlink.roles";
+
+ String ROLE_GENERATOR = "ROLE_GENERATOR";
+
+ String ROLE_VALIDATOR = "ROLE_VALIDATOR";
+
+ String ROLE_VALIDATOR_IGNORE = "ROLE_VALIDATOR_IGNORE";
+
+ String SAML_REQUEST_KEY = "SAMLRequest";
+
+ String SAML_RESPONSE_KEY = "SAMLResponse";
+
+ String SAML_SIG_ALG_REQUEST_KEY = "SigAlg";
+
+ String SAML_SIGNATURE_REQUEST_KEY = "Signature";
+
+ String SAML_IDP_STRICT_POST_BINDING = "SAML_IDP_STRICT_POST_BINDING";
+
+ // Should JAXP Factory operations cache the TCCL and revert after operation?
+ String TCCL_JAXP = "picketlink.jaxp.tccl";
+
+ String TIMEZONE = "picketlink.timezone";
+
+ String TIMEZONE_DEFAULT = "TIMEZONE_DEFAULT";
+
+ String DECRYPTING_KEY = "DECRYPTING_KEY";
+
+ String SP_SSO_METADATA_DESCRIPTOR = "SP_SSO_METADATA_DESCRIPTOR";
+
+ String IDP_SSO_METADATA_DESCRIPTOR = "IDP_SSO_METADATA_DESCRIPTOR";
+
+ String SSO_METADATA_DESCRIPTOR = "SSO_METADATA_DESCRIPTOR";
+
+ String SENDER_PUBLIC_KEY = "SENDER_PUBLIC_KEY";
+
+ String SIGN_OUTGOING_MESSAGES = "SIGN_OUTGOING_MESSAGES";
+
+ String SUPPORTS_SIGNATURES = "SUPPORTS_SIGNATURES";
+
+ String SESSION_ATTRIBUTE_MAP = "SESSION_ATTRIBUTE_MAP";
+
+ String USERNAME_FIELD = "JBID_USERNAME";
+
+ String PASS_FIELD = "JBID_PASSWORD";
+
+ String AUTH_REQUEST_ID = "AUTH_REQUEST_ID";
+ String ERROR_PAGE_NAME = "/error.jsp";
+ String SAML_ENC_KEY_SIZE = "SAML_ENC_KEY_SIZE";
+ String SAML_ENC_ALGORITHM = "SAML_ENC_ALGORITHM";
+
+ String ASSERTION_SESSION_ATTRIBUTE_NAME = "ASSERTION_SESSION_ATTRIBUTE_NAME";
+
+ String X509CERTIFICATE = "X509CERTIFICATE";
+
+ String AUTHN_CONTEXT_CLASSES = "AUTHN_CONTEXT_CLASSES";
+ String REQUESTED_AUTHN_CONTEXT_COMPARISON = "REQUESTED_AUTHN_CONTEXT_COMPARISON";
+
+ String BASE64_ENCODE_WSTRUST_SECRET_KEY = "picketlink.wstrust.base64_encode_wstrust_secret_key";
+
+ String HTTP_HEADER_X_REQUESTED_WITH = "X-Requested-With";
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLConstants.java b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLConstants.java
new file mode 100755
index 0000000..c6c56ac
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLConstants.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.constants;
+
+/**
+ * SAML Constants
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Dec 10, 2008
+ */
+public enum JBossSAMLConstants {
+ ADDRESS("Address"), ADDITIONAL_METADATA_LOCATION("AdditionalMetadataLocation"), AFFILIATION_DESCRIPTOR(
+ "AffiliationDescriptor"), ALLOW_CREATE("AllowCreate"), ARTIFACT("Artifact"), ARTIFACT_RESOLVE("ArtifactResolve"), ARTIFACT_RESPONSE(
+ "ArtifactResponse"), ARTIFACT_RESOLUTION_SERVICE("ArtifactResolutionService"), ASSERTION("Assertion"), ASSERTION_CONSUMER_SERVICE(
+ "AssertionConsumerService"), ASSERTION_CONSUMER_SERVICE_URL("AssertionConsumerServiceURL"), ASSERTION_CONSUMER_SERVICE_INDEX(
+ "AssertionConsumerServiceIndex"), ASSERTION_ID_REQUEST_SERVICE("AssertionIDRequestService"), ATTRIBUTE("Attribute"), ATTRIBUTE_QUERY(
+ "AttributeQuery"), ATTRIBUTE_AUTHORITY_DESCRIPTOR("AttributeAuthorityDescriptor"), ATTRIBUTE_CONSUMING_SERVICE(
+ "AttributeConsumingService"), ATTRIBUTE_CONSUMING_SERVICE_INDEX("AttributeConsumingServiceIndex"), ATTRIBUTE_SERVICE(
+ "AttributeService"), ATTRIBUTE_STATEMENT("AttributeStatement"), ATTRIBUTE_VALUE("AttributeValue"), AUDIENCE(
+ "Audience"), AUDIENCE_RESTRICTION("AudienceRestriction"), AUTHN_CONTEXT("AuthnContext"), AUTHENTICATING_AUTHORITY(
+ "AuthenticatingAuthority"), AUTHN_AUTHORITY_DESCRIPTOR("AuthnAuthorityDescriptor"), AUTHN_CONTEXT_CLASS_REF(
+ "AuthnContextClassRef"), AUTHN_CONTEXT_DECLARATION("AuthnContextDecl"), AUTHN_CONTEXT_DECLARATION_REF(
+ "AuthnContextDeclRef"), AUTHN_INSTANT("AuthnInstant"), AUTHN_REQUEST("AuthnRequest"), AUTHN_STATEMENT(
+ "AuthnStatement"), AUTHN_REQUESTS_SIGNED("AuthnRequestsSigned"), BASEID("BaseID"), BINDING("Binding"), CACHE_DURATION(
+ "cacheDuration"), COMPANY("Company"), CONDITIONS("Conditions"), COMPARISON("Comparison"), CONSENT("Consent"), CONTACT_PERSON("ContactPerson"), CONTACT_TYPE(
+ "contactType"), DESTINATION("Destination"), DNS_NAME("DNSName"), EMAIL_ADDRESS("EmailAddress"), ENCODING("Encoding"), ENCRYPTED_ASSERTION(
+ "EncryptedAssertion"), ENCRYPTED_ID("EncryptedID"), ENTITY_ID("entityID"), ENTITY_DESCRIPTOR("EntityDescriptor"), ENTITIES_DESCRIPTOR(
+ "EntitiesDescriptor"), EXTENSIONS("Extensions"), FORMAT("Format"), FRIENDLY_NAME("FriendlyName"), FORCE_AUTHN(
+ "ForceAuthn"), GIVEN_NAME("GivenName"), ID("ID"), IDP_SSO_DESCRIPTOR("IDPSSODescriptor"), INDEX("index"), INPUT_CONTEXT_ONLY(
+ "InputContextOnly"), IN_RESPONSE_TO("InResponseTo"), ISDEFAULT("isDefault"), IS_REQUIRED("isRequired"), IS_PASSIVE(
+ "IsPassive"), ISSUE_INSTANT("IssueInstant"), ISSUER("Issuer"), KEY_DESCRIPTOR("KeyDescriptor"), KEY_INFO("KeyInfo"), ENCRYPTION_METHOD("EncryptionMethod"), LANG(
+ "lang"), LANG_EN("en"), LOCATION("Location"), LOGOUT_REQUEST("LogoutRequest"), LOGOUT_RESPONSE("LogoutResponse"), MANAGE_NAMEID_SERVICE(
+ "ManageNameIDService"), METADATA_MIME("application/samlmetadata+xml"), METHOD("Method"), NAME("Name"), NAME_FORMAT(
+ "NameFormat"), NAMEID("NameID"), NAMEID_FORMAT("NameIDFormat"), NAMEID_MAPPING_SERVICE("NameIDMappingService"), NAMEID_POLICY(
+ "NameIDPolicy"), NAME_QUALIFIER("NameQualifier"), NOT_BEFORE("NotBefore"), NOT_ON_OR_AFTER("NotOnOrAfter"), ORGANIZATION(
+ "Organization"), ORGANIZATION_NAME("OrganizationName"), ORGANIZATION_DISPLAY_NAME("OrganizationDisplayName"), ORGANIZATION_URL(
+ "OrganizationURL"), PDP_DESCRIPTOR("PDPDescriptor"), PROTOCOL_BINDING("ProtocolBinding"), PROTOCOL_SUPPORT_ENUMERATION(
+ "protocolSupportEnumeration"), PROVIDER_NAME("ProviderName"), REQUESTED_AUTHN_CONTEXT("RequestedAuthnContext"), REASON(
+ "Reason"), RECIPIENT("Recipient"), REQUEST("Request"), REQUESTED_ATTRIBUTE("RequestedAttribute"), REQUEST_ABSTRACT(
+ "RequestAbstract"), RESPONSE("Response"), RESPONSE_LOCATION("ResponseLocation"), RETURN_CONTEXT("ReturnContext"), SESSION_INDEX(
+ "SessionIndex"), SERVICE_NAME("ServiceName"), SERVICE_DESCRIPTION("ServiceDescription"), SP_PROVIDED_ID(
+ "SPProvidedID"), SP_NAME_QUALIFIER("SPNameQualifier"), SP_SSO_DESCRIPTOR("SPSSODescriptor"), SIGNATURE("Signature"), SIGNATURE_SHA1_WITH_DSA(
+ "http://www.w3.org/2000/09/xmldsig#dsa-sha1"), SIGNATURE_SHA1_WITH_RSA("http://www.w3.org/2000/09/xmldsig#rsa-sha1"), SINGLE_SIGNON_SERVICE(
+ "SingleSignOnService"), SINGLE_LOGOUT_SERVICE("SingleLogoutService"), STATEMENT("Statement"), STATUS("Status"), STATUS_CODE(
+ "StatusCode"), STATUS_DETAIL("StatusDetail"), STATUS_MESSAGE("StatusMessage"), STATUS_RESPONSE_TYPE(
+ "StatusResponseType"), SUBJECT("Subject"), SUBJECT_CONFIRMATION("SubjectConfirmation"), SUBJECT_CONFIRMATION_DATA(
+ "SubjectConfirmationData"), SUBJECT_LOCALITY("SubjectLocality"), SURNAME("SurName"), TELEPHONE_NUMBER(
+ "TelephoneNumber"), TYPE("type"), USE("use"), VALUE("Value"), VALID_UNTIL("validUntil"), VERSION("Version"), VERSION_2_0(
+ "2.0"), WANT_AUTHN_REQUESTS_SIGNED("WantAuthnRequestsSigned"), WANT_ASSERTIONS_SIGNED("WantAssertionsSigned"), XACML_AUTHZ_DECISION_QUERY(
+ "XACMLAuthzDecisionQuery"), XACML_AUTHZ_DECISION_QUERY_TYPE("XACMLAuthzDecisionQueryType"), XACML_AUTHZ_DECISION_STATEMENT_TYPE(
+ "XACMLAuthzDecisionStatementType"), HTTP_POST_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"), ONE_TIME_USE ("OneTimeUse"),
+ UNSOLICITED_RESPONSE_TARGET("TARGET"), UNSOLICITED_RESPONSE_SAML_VERSION("SAML_VERSION"), UNSOLICITED_RESPONSE_SAML_BINDING("SAML_BINDING"),
+ ROLE_DESCRIPTOR("RoleDescriptor"),
+ REQUEST_AUTHENTICATED("RequestAuthenticated");
+
+ private String name;
+
+ private JBossSAMLConstants(String val) {
+ this.name = val;
+ }
+
+ public String get() {
+ return this.name;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLURIConstants.java b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLURIConstants.java
new file mode 100755
index 0000000..cf3b782
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/JBossSAMLURIConstants.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.constants;
+
+/**
+ * Define the constants based on URI
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Dec 10, 2008
+ */
+public enum JBossSAMLURIConstants {
+ AC_PASSWORD_PROTECTED_TRANSPORT("urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"), AC_PASSWORD(
+ "urn:oasis:names:tc:SAML:2.0:ac:classes:Password"), AC_TLS_CLIENT(
+ "urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient"), AC_PREVIOUS_SESSION(
+ "urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession"), AC_UNSPECIFIED(
+ "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified"), AC_IP(
+ "urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol"),
+
+ ASSERTION_NSURI("urn:oasis:names:tc:SAML:2.0:assertion"), ATTRIBUTE_FORMAT_BASIC(
+ "urn:oasis:names:tc:SAML:2.0:attrname-format:basic"), ATTRIBUTE_FORMAT_URI(
+ "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"),
+
+ BEARER("urn:oasis:names:tc:SAML:2.0:cm:bearer"),
+
+ CLAIMS_EMAIL_ADDRESS_2005("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), CLAIMS_EMAIL_ADDRESS(
+ "http://schemas.xmlsoap.org/claims/EmailAddress"), CLAIMS_GIVEN_NAME(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"), CLAIMS_NAME(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"), CLAIMS_USER_PRINCIPAL_NAME_2005(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), CLAIMS_USER_PRINCIPAL_NAME(
+ "http://schemas.xmlsoap.org/claims/UPN"), CLAIMS_COMMON_NAME("http://schemas.xmlsoap.org/claims/CommonName"), CLAIMS_GROUP(
+ "http://schemas.xmlsoap.org/claims/Group"), CLAIMS_ROLE(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), CLAIMS_SURNAME(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"), CLAIMS_PRIVATE_ID(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier"), CLAIMS_NAME_IDENTIFIER(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"), CLAIMS_AUTHENTICATION_METHOD(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod"), CLAIMS_DENY_ONLY_GROUP_SID(
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid"), CLAIMS_DENY_ONLY_PRIMARY_SID(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid"), CLAIMS_DENY_ONLY_PRIMARY_GROUP_SID(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid"), CLAIMS_GROUP_SID(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"), CLAIMS_PRIMARY_GROUP_SID(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid"), CLAIMS_PRIMARY_SID(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"), CLAIMS_WINDOWS_ACCOUNT_NAME(
+ "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"), CLAIMS_PUID(
+ "http://schemas.xmlsoap.org/claims/PUID"),
+
+ HOLDER_OF_KEY("urn:oasis:names:tc:SAML:2.0:cm:holder-of-key"),
+
+ METADATA_NSURI("urn:oasis:names:tc:SAML:2.0:metadata"), METADATA_HTTP_REDIRECT_BINDING(
+ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"),
+
+ NAMEID_FORMAT_TRANSIENT("urn:oasis:names:tc:SAML:2.0:nameid-format:transient"), NAMEID_FORMAT_PERSISTENT(
+ "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"), NAMEID_FORMAT_UNSPECIFIED(
+ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"), NAMEID_FORMAT_EMAIL(
+ "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"), NAMEID_FORMAT_X509SUBJECTNAME(
+ "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"), NAMEID_FORMAT_WINDOWS_DOMAIN_NAME(
+ "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName"), NAMEID_FORMAT_KERBEROS(
+ "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos"), NAMEID_FORMAT_ENTITY(
+ "urn:oasis:names:tc:SAML:2.0:nameid-format:entity"),
+
+ PROTOCOL_NSURI("urn:oasis:names:tc:SAML:2.0:protocol"),
+ ECP_PROFILE("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp"),
+ PAOS_BINDING("urn:liberty:paos:2003-08"),
+
+ SIGNATURE_DSA_SHA1("http://www.w3.org/2000/09/xmldsig#dsa-sha1"), SIGNATURE_RSA_SHA1(
+ "http://www.w3.org/2000/09/xmldsig#rsa-sha1"),
+
+ SAML_HTTP_POST_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"),
+ SAML_HTTP_SOAP_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:SOAP"),
+ SAML_HTTP_REDIRECT_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"),
+
+ SAML_11_NS("urn:oasis:names:tc:SAML:1.0:assertion"),
+
+ SUBJECT_CONFIRMATION_BEARER("urn:oasis:names:tc:SAML:2.0:cm:bearer"),
+
+ STATUS_AUTHNFAILED("urn:oasis:names:tc:SAML:2.0:status:AuthnFailed"), STATUS_INVALID_ATTRNAMEVAL(
+ "urn:oasis:names:tc:SAML:2.0:status:InvalidAttrnameOrValue"), STATUS_INVALID_NAMEIDPOLICY(
+ "urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy"), STATUS_NOAUTHN_CTX(
+ "urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext"), STATUS_NO_AVAILABLE_IDP(
+ "urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP"), STATUS_NO_PASSIVE(
+ "urn:oasis:names:tc:SAML:2.0:status:NoPassive"), STATUS_NO_SUPPORTED_IDP(
+ "urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP"), STATUS_PARTIAL_LOGOUT(
+ "urn:oasis:names:tc:SAML:2.0:status:PartialLogout"), STATUS_PROXYCOUNT_EXCEEDED(
+ "urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded"), STATUS_REQUEST_DENIED(
+ "urn:oasis:names:tc:SAML:2.0:status:RequestDenied"), STATUS_REQUEST_UNSUPPORTED(
+ "urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported"), STATUS_REQUEST_VERSION_DEPRECATED(
+ "urn:oasis:names:tc:SAML:2.0:status:RequestVersionDeprecated"), STATUS_REQUEST_VERSION_2HIGH(
+ "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh"), STATUS_REQUEST_VERSION_2LOW(
+ "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow"), STATUS_RESOURCE_NOT_RECOGNIZED(
+ "urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized"), STATUS_2MANY_RESPONSES(
+ "urn:oasis:names:tc:SAML:2.0:status:TooManyResponses"), STATUS_UNKNOWN_ATTR_PROFILE(
+ "urn:oasis:names:tc:SAML:2.0:status:UnknownAttributeProfile"), STATUS_UNKNOWN_PRINCIPAL(
+ "urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal"), STATUS_UNSUPPORTED_BINDING(
+ "urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding"),
+
+ STATUS_REQUESTOR("urn:oasis:names:tc:SAML:2.0:status:Requestor"), STATUS_RESPONDER(
+ "urn:oasis:names:tc:SAML:2.0:status:Responder"), STATUS_SUCCESS("urn:oasis:names:tc:SAML:2.0:status:Success"), STATUS_VERSION_MISMATCH(
+ "urn:oasis:names:tc:SAML:2.0:status:VersionMismatch"),
+
+ TRANSFORM_ENVELOPED_SIGNATURE("http://www.w3.org/2000/09/xmldsig#enveloped-signature"), TRANSFORM_C14N_EXCL_OMIT_COMMENTS(
+ "http://www.w3.org/2001/10/xml-exc-c14n#WithComments"),
+
+ XSI_PREFIX("xsi"), X500_PREFIX("x500"), X500_NSURI("urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"), XACML_NSURI(
+ "urn:oasis:names:tc:xacml:2.0:context:schema:os"), XACML_SAML_NSURI("urn:oasis:xacml:2.0:saml:assertion:schema:os"), XACML_SAML_PROTO_NSURI(
+ "urn:oasis:xacml:2.0:saml:protocol:schema:os"), XML("http://www.w3.org/XML/1998/namespace"), XMLSCHEMA_NSURI(
+ "http://www.w3.org/2001/XMLSchema"), XMLDSIG_NSURI("http://www.w3.org/2000/09/xmldsig#"), XMLENC_NSURI(
+ "http://www.w3.org/2001/04/xmlenc#"), XSI_NSURI("http://www.w3.org/2001/XMLSchema-instance");
+
+ private String uri = null;
+
+ private JBossSAMLURIConstants(String uristr) {
+ this.uri = uristr;
+ }
+
+ public String get() {
+ return this.uri;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/constants/WSTrustConstants.java b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/WSTrustConstants.java
new file mode 100755
index 0000000..8eff09a
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/constants/WSTrustConstants.java
@@ -0,0 +1,241 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.constants;
+
+import javax.xml.namespace.QName;
+
+/**
+ * <p> This class defines the constants used throughout the WS-Trust implementation code. </p>
+ *
+ * @author <a href="mailto:sguilhen@redhat.com">Stefan Guilhen</a>
+ * @author <a href="mailto:asaldhan@redhat.com">Anil Saldhana</a>
+ */
+public interface WSTrustConstants {
+
+ String BASE_NAMESPACE = "http://docs.oasis-open.org/ws-sx/ws-trust/200512";
+
+ String PREFIX = "wst";
+
+ // WS-Trust request types
+ String BATCH_ISSUE_REQUEST = BASE_NAMESPACE + "/BatchIssue";
+
+ String ISSUE_REQUEST = BASE_NAMESPACE + "/Issue";
+
+ String RENEW_REQUEST = BASE_NAMESPACE + "/Renew";
+
+ String CANCEL_REQUEST = BASE_NAMESPACE + "/Cancel";
+
+ String VALIDATE_REQUEST = BASE_NAMESPACE + "/Validate";
+
+ String BATCH_VALIDATE_REQUEST = BASE_NAMESPACE + "/BatchValidate";
+
+ // WS-Trust validation constants.
+ String STATUS_TYPE = BASE_NAMESPACE + "/RSTR/Status";
+
+ String STATUS_CODE_VALID = BASE_NAMESPACE + "/status/valid";
+
+ String STATUS_CODE_INVALID = BASE_NAMESPACE + "/status/invalid";
+
+ // WS-Trust key types.
+ String KEY_TYPE_BEARER = BASE_NAMESPACE + "/Bearer";
+
+ String KEY_TYPE_SYMMETRIC = BASE_NAMESPACE + "/SymmetricKey";
+
+ String KEY_TYPE_PUBLIC = BASE_NAMESPACE + "/PublicKey";
+
+ // WS-Trust binary secret types.
+ String BS_TYPE_ASYMMETRIC = BASE_NAMESPACE + "/AsymmetricKey";
+
+ String BS_TYPE_SYMMETRIC = BASE_NAMESPACE + "/SymmetricKey";
+
+ String BS_TYPE_NONCE = BASE_NAMESPACE + "/Nonce";
+
+ // WS-Trust computed key types.
+ String CK_PSHA1 = BASE_NAMESPACE + "/CK/PSHA1";
+
+ // WSS namespaces values.
+ String WSA_NS = "http://www.w3.org/2005/08/addressing";
+
+ String WSP_NS = "http://schemas.xmlsoap.org/ws/2004/09/policy";
+
+ String WSP_15_NS = "http://www.w3.org/ns/ws-policy";
+
+ String WSU_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
+
+ String WSSE_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
+
+ String WSSE11_NS = "http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd";
+
+ String XENC_NS = "http://www.w3.org/2001/04/xmlenc#";
+
+ String DSIG_NS = "http://www.w3.org/2000/09/xmldsig#";
+
+ String SAML2_ASSERTION_NS = "urn:oasis:names:tc:SAML:2.0:assertion";
+
+ // WSS Fault codes
+ QName SECURITY_TOKEN_UNAVAILABLE = new QName(WSSE_NS, "SecurityTokenUnavailable");
+
+ QName INVALID_SECURITY_TOKEN = new QName(WSSE_NS, "InvalidSecurityToken");
+
+ QName INVALID_SECURITY = new QName(WSSE_NS, "InvalidSecurity");
+
+ QName FAILED_AUTHENTICATION = new QName(WSSE_NS, "FailedAuthentication");
+
+ // Token Types
+ String RSTR_STATUS_TOKEN_TYPE = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTR/Status";
+
+ // Element Names
+ String BINARY_SECRET = "BinarySecret";
+
+ String CREATED = "Created";
+
+ String COMPUTED_KEY_ALGORITHM = "ComputedKeyAlgorithm";
+
+ String ENTROPY = "Entropy";
+
+ String EXPIRES = "Expires";
+
+ String ISSUER = "Issuer";
+
+ String ON_BEHALF_OF = "OnBehalfOf";
+
+ String COMPUTED_KEY = "ComputedKey";
+
+ String KEY_SIZE = "KeySize";
+
+ String KEY_TYPE = "KeyType";
+
+ String LIFETIME = "Lifetime";
+
+ String RENEWING = "Renewing";
+
+ String RST = "RequestSecurityToken";
+
+ String RSTR = "RequestSecurityTokenResponse";
+
+ String RST_COLLECTION = "RequestSecurityTokenCollection";
+
+ String RSTR_COLLECTION = "RequestSecurityTokenResponseCollection";
+
+ String REQUESTED_TOKEN = "RequestedSecurityToken";
+
+ String REQUESTED_TOKEN_CANCELLED = "RequestedTokenCancelled";
+
+ String REQUESTED_PROOF_TOKEN = "RequestedProofToken";
+
+ String REQUESTED_ATTACHED_REFERENCE = "RequestedAttachedReference";
+
+ String REQUESTED_UNATTACHED_REFERENCE = "RequestedUnattachedReference";
+
+ String REQUEST_TYPE = "RequestType";
+
+ String TOKEN_TYPE = "TokenType";
+
+ String CANCEL_TARGET = "CancelTarget";
+
+ String RENEW_TARGET = "RenewTarget";
+
+ String SECONDARY_PARAMETERS = "SecondaryParameters";
+
+ String VALIDATE_TARGET = "ValidateTarget";
+
+ String USE_KEY = "UseKey";
+
+ String STATUS = "Status";
+
+ String CODE = "Code";
+
+ String REASON = "Reason";
+
+ // Attribute Names
+ String ALLOW = "Allow";
+
+ String OK = "OK";
+
+ String RST_CONTEXT = "Context";
+
+ String TYPE = "Type";
+
+ String VALUE_TYPE = "ValueType";
+
+ public interface XMLDSig {
+
+ String DSIG_NS = "http://www.w3.org/2000/09/xmldsig#";
+
+ String EXPONENT = "Exponent";
+
+ String KEYINFO = "KeyInfo";
+
+ String KEYVALUE = "KeyValue";
+
+ String MODULUS = "Modulus";
+
+ String DSIG_PREFIX = "ds";
+
+ String RSA_KEYVALUE = "RSAKeyValue";
+
+ String DSA_KEYVALUE = "DSAKeyValue";
+
+ String X509DATA = "X509Data";
+
+ String X509CERT = "X509Certificate";
+
+ String P = "P";
+ String Q = "Q";
+ String G = "G";
+ String Y = "Y";
+ String SEED = "Seed";
+ String PGEN_COUNTER = "PgenCounter";
+ }
+
+ public interface XMLEnc {
+
+ String XMLENC_NS = "http://www.w3.org/2001/04/xmlenc#";
+
+ String ENCRYPTED_KEY = "EncryptedKey";
+ }
+
+ public interface WSSE {
+
+ String ID = "Id";
+
+ String KEY_IDENTIFIER = "KeyIdentifier";
+
+ String KEY_IDENTIFIER_VALUETYPE_SAML = "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID";
+
+ String REFERENCE = "Reference";
+
+ String PREFIX = "wsse";
+
+ String PREFIX_11 = "wsse11";
+
+ // http://www.ws-i.org/Profiles/KerberosTokenProfile-1.0.html#Kerberos_Security_Token_URI
+ String KERBEROS = "http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ";
+
+ String SECURITY_TOKEN_REFERENCE = "SecurityTokenReference";
+
+ String BINARY_SECURITY_TOKEN = "BinarySecurityToken";
+
+ String USERNAME_TOKEN = "UsernameToken";
+
+ String URI = "URI";
+
+ String VALUE_TYPE = "ValueType";
+
+ String ENCODING_TYPE = "EncodingType";
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ConfigurationException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ConfigurationException.java
new file mode 100755
index 0000000..539d931
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ConfigurationException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * Exception indicating an issue with the configuration
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since May 22, 2009
+ */
+public class ConfigurationException extends GeneralSecurityException {
+
+ public ConfigurationException() {
+ super();
+ }
+
+ public ConfigurationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ConfigurationException(String message) {
+ super(message);
+ }
+
+ public ConfigurationException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/AssertionExpiredException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/AssertionExpiredException.java
new file mode 100755
index 0000000..ab9ff5d
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/AssertionExpiredException.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions.fed;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * Security Exception indicating expiration of SAML2 assertion
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Dec 12, 2008
+ */
+public class AssertionExpiredException extends GeneralSecurityException {
+
+ protected String id;
+
+ public AssertionExpiredException() {
+ }
+
+ public AssertionExpiredException(String message, Throwable cause) {
+ }
+
+ public AssertionExpiredException(String msg) {
+ super(msg);
+ }
+
+ public AssertionExpiredException(Throwable cause) {
+ super(cause);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssueInstantMissingException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssueInstantMissingException.java
new file mode 100755
index 0000000..3248f18
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssueInstantMissingException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions.fed;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * Exception indicating that the IssueInstant is missing
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Jun 3, 2009
+ */
+public class IssueInstantMissingException extends GeneralSecurityException {
+
+ public IssueInstantMissingException() {
+ super();
+ }
+
+ public IssueInstantMissingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public IssueInstantMissingException(String msg) {
+ super(msg);
+ }
+
+ public IssueInstantMissingException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssuerNotTrustedException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssuerNotTrustedException.java
new file mode 100755
index 0000000..d1012c7
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/IssuerNotTrustedException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions.fed;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * Exception indicating that the issuer is not trusted
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Jan 26, 2009
+ */
+public class IssuerNotTrustedException extends GeneralSecurityException {
+
+ public IssuerNotTrustedException() {
+ super();
+ }
+
+ public IssuerNotTrustedException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public IssuerNotTrustedException(String msg) {
+ super(msg);
+ }
+
+ public IssuerNotTrustedException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/SignatureValidationException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/SignatureValidationException.java
new file mode 100755
index 0000000..79a313d
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/SignatureValidationException.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions.fed;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * Indicates the failure of signature validation
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since Jul 28, 2011
+ */
+public class SignatureValidationException extends GeneralSecurityException {
+
+ public SignatureValidationException() {
+ }
+
+ public SignatureValidationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public SignatureValidationException(String msg) {
+ super(msg);
+ }
+
+ public SignatureValidationException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/WSTrustException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/WSTrustException.java
new file mode 100755
index 0000000..91192e5
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/fed/WSTrustException.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions.fed;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * <p>
+ * Exception used to convey that an error has happened when handling a WS-Trust request message.
+ * </p>
+ *
+ * @author <a href="mailto:sguilhen@redhat.com">Stefan Guilhen</a>
+ */
+public class WSTrustException extends GeneralSecurityException {
+
+ /**
+ * <p>
+ * Creates an instance of {@code WSTrustException} using the specified error message.
+ * </p>
+ *
+ * @param message the error message.
+ */
+ public WSTrustException(String message) {
+ super(message);
+ }
+
+ /**
+ * <p>
+ * Creates an instance of {@code WSTrustException} using the specified error message and cause.
+ * </p>
+ *
+ * @param message the error message.
+ * @param cause a {@code Throwable} representing the cause of the error.
+ */
+ public WSTrustException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * <p>
+ * Creates an instance of {@code WSTrustException} using the specified {@link Throwable}.
+ * </p>
+ *
+ * @param message the error message.
+ */
+ public WSTrustException(Throwable t) {
+ super(t);
+ }
+
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/NotImplementedException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/NotImplementedException.java
new file mode 100755
index 0000000..26aad97
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/NotImplementedException.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+/**
+ * <p>An exception that indicates that something is not ready for use. Usually, this exception is thrown from methods not
+ * fully implemented or tested but available for invocation.</p>
+ *
+ * @author Pedro Igor
+ */
+public class NotImplementedException extends PicketLinkException {
+
+ public NotImplementedException(String message) {
+ super(message);
+ }
+
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ParsingException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ParsingException.java
new file mode 100755
index 0000000..1799e35
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ParsingException.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+import java.security.GeneralSecurityException;
+
+/**
+ * General Exception indicating parsing exception
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since May 22, 2009
+ */
+public class ParsingException extends GeneralSecurityException {
+
+ private Location location;
+
+ public ParsingException() {
+ super();
+ }
+
+ public ParsingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ParsingException(String message) {
+ super(message);
+ }
+
+ public ParsingException(Throwable cause) {
+ super(cause);
+ }
+
+ public ParsingException(XMLStreamException xmle) {
+ super(xmle);
+ location = xmle.getLocation();
+ }
+
+ public Location getLocation() {
+ return location;
+ }
+
+ @Override
+ public String toString() {
+ return "ParsingException [location=" + location + "]" + super.toString();
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/PicketLinkException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/PicketLinkException.java
new file mode 100755
index 0000000..28f9c28
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/PicketLinkException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+/**
+ * <p>Any exception that is raised by the security module extends from this runtime exception class, making it easy for
+ * other modules and extensions to catch all security-related exceptions in a single catch block, if need be.
+ * </p>
+ *
+ * <p>This class is used as the root instead of {@link SecurityException} to avoid confusion and potential conflicts. Eg.: many other
+ * frameworks and products (eg.: JEE containers) relies on the {@link SecurityException} to perform some special handling.</p>
+ */
+public class PicketLinkException extends RuntimeException {
+
+ public PicketLinkException() {
+ super();
+ }
+
+ public PicketLinkException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public PicketLinkException(String message) {
+ super(message);
+ }
+
+ public PicketLinkException(Throwable cause) {
+ super(cause);
+ }
+}
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ProcessingException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ProcessingException.java
new file mode 100755
index 0000000..23e243d
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/ProcessingException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * Exception to indicate a server processing error
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since May 22, 2009
+ */
+public class ProcessingException extends GeneralSecurityException {
+
+ public ProcessingException() {
+ super();
+ }
+
+ public ProcessingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ProcessingException(String message) {
+ super(message);
+ }
+
+ public ProcessingException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyConfigurationException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyConfigurationException.java
new file mode 100755
index 0000000..f564b17
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyConfigurationException.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+/**
+ * ConfigurationException in the TrustKeyManager
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since May 22, 2009
+ */
+public class TrustKeyConfigurationException extends ConfigurationException {
+
+ public TrustKeyConfigurationException() {
+ super();
+ }
+
+ public TrustKeyConfigurationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TrustKeyConfigurationException(String message) {
+ super(message);
+ }
+
+ public TrustKeyConfigurationException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
diff --git a/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyProcessingException.java b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyProcessingException.java
new file mode 100755
index 0000000..91f6626
--- /dev/null
+++ b/saml-core-api/src/main/java/org/keycloak/saml/common/exceptions/TrustKeyProcessingException.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2016 Red Hat, Inc. and/or its affiliates
+ * and other contributors as indicated by the @author tags.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.keycloak.saml.common.exceptions;
+
+/**
+ * Processing Exception in the trust key manager
+ *
+ * @author Anil.Saldhana@redhat.com
+ * @since May 22, 2009
+ */
+public class TrustKeyProcessingException extends ProcessingException {
+
+ public TrustKeyProcessingException() {
+ super();
+ }
+
+ public TrustKeyProcessingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TrustKeyProcessingException(String message) {
+ super(message);
+ }
+
+ public TrustKeyProcessingException(Throwable cause) {
+ super(cause);
+ }
+}
\ No newline at end of file
services/pom.xml 5(+5 -0)
diff --git a/services/pom.xml b/services/pom.xml
index 5620253..0f8879c 100755
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -129,6 +129,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-core-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-core</artifactId>
<scope>provided</scope>
</dependency>
diff --git a/services/src/main/java/org/keycloak/protocol/saml/EntityDescriptorDescriptionConverter.java b/services/src/main/java/org/keycloak/protocol/saml/EntityDescriptorDescriptionConverter.java
index 4ccf350..802f587 100755
--- a/services/src/main/java/org/keycloak/protocol/saml/EntityDescriptorDescriptionConverter.java
+++ b/services/src/main/java/org/keycloak/protocol/saml/EntityDescriptorDescriptionConverter.java
@@ -18,7 +18,12 @@
package org.keycloak.protocol.saml;
import org.keycloak.Config;
-import org.keycloak.dom.saml.v2.metadata.*;
+import org.keycloak.dom.saml.v2.metadata.EndpointType;
+import org.keycloak.dom.saml.v2.metadata.EntitiesDescriptorType;
+import org.keycloak.dom.saml.v2.metadata.EntityDescriptorType;
+import org.keycloak.dom.saml.v2.metadata.KeyDescriptorType;
+import org.keycloak.dom.saml.v2.metadata.KeyTypes;
+import org.keycloak.dom.saml.v2.metadata.SPSSODescriptorType;
import org.keycloak.exportimport.ClientDescriptionConverter;
import org.keycloak.exportimport.ClientDescriptionConverterFactory;
import org.keycloak.models.KeycloakSession;
diff --git a/services/src/main/java/org/keycloak/protocol/saml/profile/ecp/util/Soap.java b/services/src/main/java/org/keycloak/protocol/saml/profile/ecp/util/Soap.java
old mode 100644
new mode 100755
index 27a1aeb..41fa94f
--- a/services/src/main/java/org/keycloak/protocol/saml/profile/ecp/util/Soap.java
+++ b/services/src/main/java/org/keycloak/protocol/saml/profile/ecp/util/Soap.java
@@ -17,7 +17,6 @@
package org.keycloak.protocol.saml.profile.ecp.util;
-import org.keycloak.saml.common.constants.JBossSAMLConstants;
import org.keycloak.saml.processing.core.saml.v2.util.DocumentUtil;
import org.keycloak.saml.processing.web.util.PostBindingUtil;
import org.w3c.dom.Document;
@@ -35,7 +34,6 @@ import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
-import java.util.Locale;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
diff --git a/services/src/main/java/org/keycloak/protocol/saml/SamlService.java b/services/src/main/java/org/keycloak/protocol/saml/SamlService.java
index 35c9659..89cadb8 100755
--- a/services/src/main/java/org/keycloak/protocol/saml/SamlService.java
+++ b/services/src/main/java/org/keycloak/protocol/saml/SamlService.java
@@ -53,7 +53,6 @@ import org.keycloak.models.ClientModel;
import org.keycloak.models.ClientSessionModel;
import org.keycloak.models.RealmModel;
import org.keycloak.models.UserSessionModel;
-import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.protocol.AuthorizationEndpointBase;
import org.keycloak.protocol.oidc.utils.RedirectUtils;
import org.keycloak.protocol.saml.profile.ecp.SamlEcpProfileService;
@@ -65,7 +64,6 @@ import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
import org.keycloak.saml.processing.core.saml.v2.common.SAMLDocumentHolder;
import org.keycloak.services.ErrorPage;
import org.keycloak.services.managers.AuthenticationManager;
-import org.keycloak.services.managers.ClientSessionCode;
import org.keycloak.services.messages.Messages;
import org.keycloak.services.resources.RealmsResource;
import org.keycloak.services.util.CacheControlUtil;
testsuite/integration/pom.xml 5(+5 -0)
diff --git a/testsuite/integration/pom.xml b/testsuite/integration/pom.xml
index 06e0d0f..ada9e9a 100755
--- a/testsuite/integration/pom.xml
+++ b/testsuite/integration/pom.xml
@@ -127,6 +127,11 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/keycloaksaml/SamlAdapterTestStrategy.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/keycloaksaml/SamlAdapterTestStrategy.java
index a9e95bb..f45255f 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/keycloaksaml/SamlAdapterTestStrategy.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/keycloaksaml/SamlAdapterTestStrategy.java
@@ -20,7 +20,6 @@ package org.keycloak.testsuite.keycloaksaml;
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.rules.ExternalResource;
-import org.keycloak.OAuth2Constants;
import org.keycloak.adapters.saml.SamlAuthenticationError;
import org.keycloak.adapters.saml.SamlPrincipal;
import org.keycloak.admin.client.Keycloak;
@@ -30,7 +29,6 @@ import org.keycloak.models.Constants;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.ProtocolMapperModel;
import org.keycloak.models.RealmModel;
-import org.keycloak.protocol.oidc.OIDCLoginProtocolService;
import org.keycloak.protocol.saml.mappers.AttributeStatementHelper;
import org.keycloak.protocol.saml.mappers.GroupMembershipMapper;
import org.keycloak.protocol.saml.mappers.HardcodedAttributeMapper;
@@ -46,7 +44,6 @@ import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
import org.keycloak.saml.processing.core.saml.v2.constants.X500SAMLProfileConstants;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.testsuite.KeycloakServer;
-import org.keycloak.testsuite.adapter.*;
import org.keycloak.testsuite.pages.LoginPage;
import org.keycloak.testsuite.rule.AbstractKeycloakRule;
import org.keycloak.testsuite.rule.ErrorServlet;
@@ -61,7 +58,6 @@ import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
import java.io.IOException;
import java.net.URI;
import java.util.HashSet;
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
old mode 100644
new mode 100755
index 35059eb..ae0fa92
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -735,6 +735,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-adapter-spi-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
testsuite/stress/pom.xml 4(+4 -0)
diff --git a/testsuite/stress/pom.xml b/testsuite/stress/pom.xml
index d9bd27c..b297e59 100755
--- a/testsuite/stress/pom.xml
+++ b/testsuite/stress/pom.xml
@@ -128,6 +128,10 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
+ <artifactId>keycloak-saml-adapter-api-public</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.keycloak</groupId>
<artifactId>keycloak-saml-adapter-core</artifactId>
</dependency>
<dependency>