Package org.keycloak.protocol.saml
Class SamlProtocol
- java.lang.Object
-
- org.keycloak.protocol.saml.SamlProtocol
-
- All Implemented Interfaces:
org.keycloak.protocol.LoginProtocol
,org.keycloak.provider.Provider
- Direct Known Subclasses:
TokenEndpoint.TokenExchangeSamlProtocol
public class SamlProtocol extends Object implements org.keycloak.protocol.LoginProtocol
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SamlProtocol.ProtocolMapperProcessor<T>
-
Field Summary
-
Constructor Summary
Constructors Constructor Description SamlProtocol()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.ws.rs.core.Response
authenticated(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
javax.ws.rs.core.Response
backchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
protected String
buildArtifactAndStoreResponse(org.keycloak.dom.saml.v2.SAML2Object saml2Object, org.keycloak.models.AuthenticatedClientSessionModel clientSessionModel)
protected String
buildArtifactAndStoreResponse(org.keycloak.dom.saml.v2.SAML2Object statusResponseType, org.keycloak.models.UserSessionModel userSession)
protected javax.ws.rs.core.Response
buildArtifactAuthenticatedResponse(org.keycloak.models.AuthenticatedClientSessionModel clientSession, String redirectUri, org.keycloak.dom.saml.v2.SAML2Object samlDocument, JaxrsSAML2BindingBuilder bindingBuilder)
This method, instead of sending the actual response with the token sends the artifact message via post or redirect.protected javax.ws.rs.core.Response
buildAuthenticatedResponse(org.keycloak.models.AuthenticatedClientSessionModel clientSession, String redirectUri, Document samlDocument, JaxrsSAML2BindingBuilder bindingBuilder)
protected javax.ws.rs.core.Response
buildErrorResponse(boolean isPostBinding, String destination, JaxrsSAML2BindingBuilder binding, Document document)
protected javax.ws.rs.core.Response
buildLogoutArtifactResponse(org.keycloak.models.UserSessionModel userSession, String redirectUri, org.keycloak.dom.saml.v2.protocol.StatusResponseType statusResponseType, JaxrsSAML2BindingBuilder bindingBuilder)
This method, instead of sending the actual response with the token, sends the artifact message via post or redirect.protected javax.ws.rs.core.Response
buildLogoutResponse(org.keycloak.models.UserSessionModel userSession, String logoutBindingUri, org.keycloak.saml.SAML2LogoutResponseBuilder builder, JaxrsSAML2BindingBuilder binding)
void
close()
protected org.keycloak.dom.saml.v2.protocol.LogoutRequestType
createLogoutRequest(String logoutUrl, org.keycloak.models.AuthenticatedClientSessionModel clientSession, org.keycloak.models.ClientModel client, org.keycloak.saml.SamlProtocolExtensionsAwareBuilder.NodeGenerator... extensions)
javax.ws.rs.core.Response
finishBrowserLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel logoutSession)
javax.ws.rs.core.Response
frontchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
static String
getLogoutServiceUrl(org.keycloak.models.KeycloakSession session, org.keycloak.models.ClientModel client, String bindingType, boolean backChannelLogout)
protected String
getNameId(String nameIdFormat, org.keycloak.sessions.CommonClientSessionModel clientSession, org.keycloak.models.UserSessionModel userSession)
protected String
getNameIdFormat(SamlClient samlClient, org.keycloak.sessions.AuthenticationSessionModel authSession)
protected String
getPersistentNameId(org.keycloak.sessions.CommonClientSessionModel clientSession, org.keycloak.models.UserSessionModel userSession)
Attempts to retrieve the persistent type NameId as follows: saml.persistent.name.id.for.$clientId user attribute saml.persistent.name.id.for.* user attribute G-$randomUuidprotected String
getResponseIssuer(org.keycloak.models.RealmModel realm)
protected String
getSAMLNameId(List<SamlProtocol.ProtocolMapperProcessor<SAMLNameIdMapper>> samlNameIdMappers, String nameIdFormat, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
protected boolean
isLogoutPostBindingForClient(org.keycloak.models.AuthenticatedClientSessionModel clientSession)
static boolean
isLogoutPostBindingForInitiator(org.keycloak.models.UserSessionModel session)
protected boolean
isPostBinding(org.keycloak.models.AuthenticatedClientSessionModel clientSession)
protected boolean
isPostBinding(org.keycloak.sessions.AuthenticationSessionModel authSession)
org.keycloak.dom.saml.v2.assertion.AttributeStatementType
populateAttributeStatements(List<SamlProtocol.ProtocolMapperProcessor<SAMLAttributeStatementMapper>> attributeStatementMappers, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
void
populateRoles(SamlProtocol.ProtocolMapperProcessor<SAMLRoleListMapper> roleListMapper, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, org.keycloak.dom.saml.v2.assertion.AttributeStatementType existingAttributeStatement)
boolean
requireReauthentication(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession)
javax.ws.rs.core.Response
sendError(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.protocol.LoginProtocol.Error error)
SamlProtocol
setEventBuilder(org.keycloak.events.EventBuilder event)
SamlProtocol
setHttpHeaders(javax.ws.rs.core.HttpHeaders headers)
SamlProtocol
setRealm(org.keycloak.models.RealmModel realm)
SamlProtocol
setSession(org.keycloak.models.KeycloakSession session)
SamlProtocol
setUriInfo(javax.ws.rs.core.UriInfo uriInfo)
org.keycloak.dom.saml.v2.protocol.ResponseType
transformLoginResponse(List<SamlProtocol.ProtocolMapperProcessor<SAMLLoginResponseMapper>> mappers, org.keycloak.dom.saml.v2.protocol.ResponseType response, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
static boolean
useArtifactForLogout(org.keycloak.models.ClientModel client)
-
-
-
Field Detail
-
ATTRIBUTE_TRUE_VALUE
public static final String ATTRIBUTE_TRUE_VALUE
- See Also:
- Constant Field Values
-
ATTRIBUTE_FALSE_VALUE
public static final String ATTRIBUTE_FALSE_VALUE
- See Also:
- Constant Field Values
-
SAML_ASSERTION_CONSUMER_URL_POST_ATTRIBUTE
public static final String SAML_ASSERTION_CONSUMER_URL_POST_ATTRIBUTE
- See Also:
- Constant Field Values
-
SAML_ASSERTION_CONSUMER_URL_REDIRECT_ATTRIBUTE
public static final String SAML_ASSERTION_CONSUMER_URL_REDIRECT_ATTRIBUTE
- See Also:
- Constant Field Values
-
SAML_ASSERTION_CONSUMER_URL_ARTIFACT_ATTRIBUTE
public static final String SAML_ASSERTION_CONSUMER_URL_ARTIFACT_ATTRIBUTE
- See Also:
- Constant Field Values
-
SAML_SINGLE_LOGOUT_SERVICE_URL_POST_ATTRIBUTE
public static final String SAML_SINGLE_LOGOUT_SERVICE_URL_POST_ATTRIBUTE
- See Also:
- Constant Field Values
-
SAML_SINGLE_LOGOUT_SERVICE_URL_ARTIFACT_ATTRIBUTE
public static final String SAML_SINGLE_LOGOUT_SERVICE_URL_ARTIFACT_ATTRIBUTE
- See Also:
- Constant Field Values
-
SAML_SINGLE_LOGOUT_SERVICE_URL_REDIRECT_ATTRIBUTE
public static final String SAML_SINGLE_LOGOUT_SERVICE_URL_REDIRECT_ATTRIBUTE
- See Also:
- Constant Field Values
-
SAML_ARTIFACT_RESOLUTION_SERVICE_URL_ATTRIBUTE
public static final String SAML_ARTIFACT_RESOLUTION_SERVICE_URL_ATTRIBUTE
- See Also:
- Constant Field Values
-
LOGIN_PROTOCOL
public static final String LOGIN_PROTOCOL
- See Also:
- Constant Field Values
-
SAML_BINDING
public static final String SAML_BINDING
- See Also:
- Constant Field Values
-
SAML_IDP_INITIATED_LOGIN
public static final String SAML_IDP_INITIATED_LOGIN
- See Also:
- Constant Field Values
-
SAML_POST_BINDING
public static final String SAML_POST_BINDING
- See Also:
- Constant Field Values
-
SAML_SOAP_BINDING
public static final String SAML_SOAP_BINDING
- See Also:
- Constant Field Values
-
SAML_REDIRECT_BINDING
public static final String SAML_REDIRECT_BINDING
- See Also:
- Constant Field Values
-
SAML_REQUEST_ID
public static final String SAML_REQUEST_ID
- See Also:
- Constant Field Values
-
SAML_REQUEST_ID_BROKER
public static final String SAML_REQUEST_ID_BROKER
- See Also:
- Constant Field Values
-
SAML_LOGOUT_BINDING
public static final String SAML_LOGOUT_BINDING
- See Also:
- Constant Field Values
-
SAML_LOGOUT_ADD_EXTENSIONS_ELEMENT_WITH_KEY_INFO
public static final String SAML_LOGOUT_ADD_EXTENSIONS_ELEMENT_WITH_KEY_INFO
- See Also:
- Constant Field Values
-
SAML_SERVER_SIGNATURE_KEYINFO_KEY_NAME_TRANSFORMER
public static final String SAML_SERVER_SIGNATURE_KEYINFO_KEY_NAME_TRANSFORMER
- See Also:
- Constant Field Values
-
SAML_LOGOUT_REQUEST_ID
public static final String SAML_LOGOUT_REQUEST_ID
- See Also:
- Constant Field Values
-
SAML_LOGOUT_RELAY_STATE
public static final String SAML_LOGOUT_RELAY_STATE
- See Also:
- Constant Field Values
-
SAML_LOGOUT_CANONICALIZATION
public static final String SAML_LOGOUT_CANONICALIZATION
- See Also:
- Constant Field Values
-
SAML_LOGOUT_BINDING_URI
public static final String SAML_LOGOUT_BINDING_URI
- See Also:
- Constant Field Values
-
SAML_LOGOUT_SIGNATURE_ALGORITHM
public static final String SAML_LOGOUT_SIGNATURE_ALGORITHM
- See Also:
- Constant Field Values
-
SAML_NAME_ID
public static final String SAML_NAME_ID
- See Also:
- Constant Field Values
-
SAML_NAME_ID_FORMAT
public static final String SAML_NAME_ID_FORMAT
- See Also:
- Constant Field Values
-
SAML_DEFAULT_NAMEID_FORMAT
public static final String SAML_DEFAULT_NAMEID_FORMAT
-
SAML_PERSISTENT_NAME_ID_FOR
public static final String SAML_PERSISTENT_NAME_ID_FOR
- See Also:
- Constant Field Values
-
SAML_IDP_INITIATED_SSO_RELAY_STATE
public static final String SAML_IDP_INITIATED_SSO_RELAY_STATE
- See Also:
- Constant Field Values
-
SAML_IDP_INITIATED_SSO_URL_NAME
public static final String SAML_IDP_INITIATED_SSO_URL_NAME
- See Also:
- Constant Field Values
-
SAML_LOGIN_REQUEST_FORCEAUTHN
public static final String SAML_LOGIN_REQUEST_FORCEAUTHN
- See Also:
- Constant Field Values
-
SAML_FORCEAUTHN_REQUIREMENT
public static final String SAML_FORCEAUTHN_REQUIREMENT
- See Also:
- Constant Field Values
-
SAML_LOGOUT_INITIATOR_CLIENT_ID
public static final String SAML_LOGOUT_INITIATOR_CLIENT_ID
- See Also:
- Constant Field Values
-
USER_SESSION_ID
public static final String USER_SESSION_ID
- See Also:
- Constant Field Values
-
CLIENT_SESSION_ID
public static final String CLIENT_SESSION_ID
- See Also:
- Constant Field Values
-
logger
protected static final org.jboss.logging.Logger logger
-
session
protected org.keycloak.models.KeycloakSession session
-
realm
protected org.keycloak.models.RealmModel realm
-
uriInfo
protected javax.ws.rs.core.UriInfo uriInfo
-
headers
protected javax.ws.rs.core.HttpHeaders headers
-
event
protected org.keycloak.events.EventBuilder event
-
artifactResolver
protected org.keycloak.protocol.saml.ArtifactResolver artifactResolver
-
singleUseStore
protected org.keycloak.models.SingleUseObjectProvider singleUseStore
-
-
Method Detail
-
setSession
public SamlProtocol setSession(org.keycloak.models.KeycloakSession session)
- Specified by:
setSession
in interfaceorg.keycloak.protocol.LoginProtocol
-
setRealm
public SamlProtocol setRealm(org.keycloak.models.RealmModel realm)
- Specified by:
setRealm
in interfaceorg.keycloak.protocol.LoginProtocol
-
setUriInfo
public SamlProtocol setUriInfo(javax.ws.rs.core.UriInfo uriInfo)
- Specified by:
setUriInfo
in interfaceorg.keycloak.protocol.LoginProtocol
-
setHttpHeaders
public SamlProtocol setHttpHeaders(javax.ws.rs.core.HttpHeaders headers)
- Specified by:
setHttpHeaders
in interfaceorg.keycloak.protocol.LoginProtocol
-
setEventBuilder
public SamlProtocol setEventBuilder(org.keycloak.events.EventBuilder event)
- Specified by:
setEventBuilder
in interfaceorg.keycloak.protocol.LoginProtocol
-
sendError
public javax.ws.rs.core.Response sendError(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.protocol.LoginProtocol.Error error)
- Specified by:
sendError
in interfaceorg.keycloak.protocol.LoginProtocol
-
buildErrorResponse
protected javax.ws.rs.core.Response buildErrorResponse(boolean isPostBinding, String destination, JaxrsSAML2BindingBuilder binding, Document document) throws org.keycloak.saml.common.exceptions.ConfigurationException, org.keycloak.saml.common.exceptions.ProcessingException, IOException
- Throws:
org.keycloak.saml.common.exceptions.ConfigurationException
org.keycloak.saml.common.exceptions.ProcessingException
IOException
-
getResponseIssuer
protected String getResponseIssuer(org.keycloak.models.RealmModel realm)
-
isPostBinding
protected boolean isPostBinding(org.keycloak.sessions.AuthenticationSessionModel authSession)
-
isPostBinding
protected boolean isPostBinding(org.keycloak.models.AuthenticatedClientSessionModel clientSession)
-
isLogoutPostBindingForInitiator
public static boolean isLogoutPostBindingForInitiator(org.keycloak.models.UserSessionModel session)
-
isLogoutPostBindingForClient
protected boolean isLogoutPostBindingForClient(org.keycloak.models.AuthenticatedClientSessionModel clientSession)
-
getNameIdFormat
protected String getNameIdFormat(SamlClient samlClient, org.keycloak.sessions.AuthenticationSessionModel authSession)
-
getNameId
protected String getNameId(String nameIdFormat, org.keycloak.sessions.CommonClientSessionModel clientSession, org.keycloak.models.UserSessionModel userSession)
-
getPersistentNameId
protected String getPersistentNameId(org.keycloak.sessions.CommonClientSessionModel clientSession, org.keycloak.models.UserSessionModel userSession)
Attempts to retrieve the persistent type NameId as follows:- saml.persistent.name.id.for.$clientId user attribute
- saml.persistent.name.id.for.* user attribute
- G-$randomUuid
If a randomUuid is generated, an attribute for the given saml.persistent.name.id.for.$clientId will be generated, otherwise no state change will occur with respect to the user's attributes.
- Returns:
- the user's persistent NameId
-
authenticated
public javax.ws.rs.core.Response authenticated(org.keycloak.sessions.AuthenticationSessionModel authSession, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
- Specified by:
authenticated
in interfaceorg.keycloak.protocol.LoginProtocol
-
buildAuthenticatedResponse
protected javax.ws.rs.core.Response buildAuthenticatedResponse(org.keycloak.models.AuthenticatedClientSessionModel clientSession, String redirectUri, Document samlDocument, JaxrsSAML2BindingBuilder bindingBuilder) throws org.keycloak.saml.common.exceptions.ConfigurationException, org.keycloak.saml.common.exceptions.ProcessingException, IOException
- Throws:
org.keycloak.saml.common.exceptions.ConfigurationException
org.keycloak.saml.common.exceptions.ProcessingException
IOException
-
populateAttributeStatements
public org.keycloak.dom.saml.v2.assertion.AttributeStatementType populateAttributeStatements(List<SamlProtocol.ProtocolMapperProcessor<SAMLAttributeStatementMapper>> attributeStatementMappers, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
-
transformLoginResponse
public org.keycloak.dom.saml.v2.protocol.ResponseType transformLoginResponse(List<SamlProtocol.ProtocolMapperProcessor<SAMLLoginResponseMapper>> mappers, org.keycloak.dom.saml.v2.protocol.ResponseType response, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx)
-
populateRoles
public void populateRoles(SamlProtocol.ProtocolMapperProcessor<SAMLRoleListMapper> roleListMapper, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, org.keycloak.dom.saml.v2.assertion.AttributeStatementType existingAttributeStatement)
-
getSAMLNameId
protected String getSAMLNameId(List<SamlProtocol.ProtocolMapperProcessor<SAMLNameIdMapper>> samlNameIdMappers, String nameIdFormat, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
-
getLogoutServiceUrl
public static String getLogoutServiceUrl(org.keycloak.models.KeycloakSession session, org.keycloak.models.ClientModel client, String bindingType, boolean backChannelLogout)
-
useArtifactForLogout
public static boolean useArtifactForLogout(org.keycloak.models.ClientModel client)
-
frontchannelLogout
public javax.ws.rs.core.Response frontchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
- Specified by:
frontchannelLogout
in interfaceorg.keycloak.protocol.LoginProtocol
-
finishBrowserLogout
public javax.ws.rs.core.Response finishBrowserLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel logoutSession)
- Specified by:
finishBrowserLogout
in interfaceorg.keycloak.protocol.LoginProtocol
-
buildLogoutResponse
protected javax.ws.rs.core.Response buildLogoutResponse(org.keycloak.models.UserSessionModel userSession, String logoutBindingUri, org.keycloak.saml.SAML2LogoutResponseBuilder builder, JaxrsSAML2BindingBuilder binding) throws org.keycloak.saml.common.exceptions.ConfigurationException, org.keycloak.saml.common.exceptions.ProcessingException, IOException
- Throws:
org.keycloak.saml.common.exceptions.ConfigurationException
org.keycloak.saml.common.exceptions.ProcessingException
IOException
-
backchannelLogout
public javax.ws.rs.core.Response backchannelLogout(org.keycloak.models.UserSessionModel userSession, org.keycloak.models.AuthenticatedClientSessionModel clientSession)
- Specified by:
backchannelLogout
in interfaceorg.keycloak.protocol.LoginProtocol
-
createLogoutRequest
protected org.keycloak.dom.saml.v2.protocol.LogoutRequestType createLogoutRequest(String logoutUrl, org.keycloak.models.AuthenticatedClientSessionModel clientSession, org.keycloak.models.ClientModel client, org.keycloak.saml.SamlProtocolExtensionsAwareBuilder.NodeGenerator... extensions) throws org.keycloak.saml.common.exceptions.ConfigurationException
- Throws:
org.keycloak.saml.common.exceptions.ConfigurationException
-
requireReauthentication
public boolean requireReauthentication(org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession)
- Specified by:
requireReauthentication
in interfaceorg.keycloak.protocol.LoginProtocol
-
close
public void close()
- Specified by:
close
in interfaceorg.keycloak.provider.Provider
-
buildArtifactAuthenticatedResponse
protected javax.ws.rs.core.Response buildArtifactAuthenticatedResponse(org.keycloak.models.AuthenticatedClientSessionModel clientSession, String redirectUri, org.keycloak.dom.saml.v2.SAML2Object samlDocument, JaxrsSAML2BindingBuilder bindingBuilder) throws org.keycloak.saml.common.exceptions.ProcessingException, org.keycloak.saml.common.exceptions.ConfigurationException
This method, instead of sending the actual response with the token sends the artifact message via post or redirect.- Parameters:
clientSession
- the current authenticated client sessionredirectUri
- the redirect uri to the clientsamlDocument
- a Document containing the saml ResponsebindingBuilder
- the current JaxrsSAML2BindingBuilder configured with information for signing and encryption- Returns:
- A response (POSTed form or redirect) with a newly generated artifact
- Throws:
org.keycloak.saml.common.exceptions.ConfigurationException
org.keycloak.saml.common.exceptions.ProcessingException
IOException
-
buildLogoutArtifactResponse
protected javax.ws.rs.core.Response buildLogoutArtifactResponse(org.keycloak.models.UserSessionModel userSession, String redirectUri, org.keycloak.dom.saml.v2.protocol.StatusResponseType statusResponseType, JaxrsSAML2BindingBuilder bindingBuilder) throws org.keycloak.saml.common.exceptions.ProcessingException, org.keycloak.saml.common.exceptions.ConfigurationException
This method, instead of sending the actual response with the token, sends the artifact message via post or redirect. This method is only to be used for the final LogoutResponse.- Parameters:
userSession
- The current user session being logged outredirectUri
- the redirect uri to the clientstatusResponseType
- a Document containing the saml ResponsebindingBuilder
- the current JaxrsSAML2BindingBuilder configured with information for signing and encryption- Returns:
- A response (POSTed form or redirect) with a newly generated artifact
- Throws:
org.keycloak.saml.common.exceptions.ProcessingException
IOException
org.keycloak.saml.common.exceptions.ConfigurationException
-
buildArtifactAndStoreResponse
protected String buildArtifactAndStoreResponse(org.keycloak.dom.saml.v2.SAML2Object statusResponseType, org.keycloak.models.UserSessionModel userSession) throws org.keycloak.protocol.saml.ArtifactResolverProcessingException, org.keycloak.saml.common.exceptions.ConfigurationException, org.keycloak.saml.common.exceptions.ProcessingException
- Throws:
org.keycloak.protocol.saml.ArtifactResolverProcessingException
org.keycloak.saml.common.exceptions.ConfigurationException
org.keycloak.saml.common.exceptions.ProcessingException
-
buildArtifactAndStoreResponse
protected String buildArtifactAndStoreResponse(org.keycloak.dom.saml.v2.SAML2Object saml2Object, org.keycloak.models.AuthenticatedClientSessionModel clientSessionModel) throws org.keycloak.protocol.saml.ArtifactResolverProcessingException, org.keycloak.saml.common.exceptions.ProcessingException, org.keycloak.saml.common.exceptions.ConfigurationException
- Throws:
org.keycloak.protocol.saml.ArtifactResolverProcessingException
org.keycloak.saml.common.exceptions.ProcessingException
org.keycloak.saml.common.exceptions.ConfigurationException
-
-