public class SLOProfileHandler extends AbstractSAML2ProfileHandler
| Modifier and Type | Class and Description |
|---|---|
class |
SLOProfileHandler.SLORequestContext
Represents the internal state of a Logout Request while it's being processed by the IdP.
|
AbstractSAML2ProfileHandler.SAML2AuditLogEntry| Modifier and Type | Field and Description |
|---|---|
static String |
HTTP_LOGOUT_BINDING_ATTRIBUTE
Name of attribute for tracking logged out session.
|
static String |
HTTP_LOGOUT_REQUEST_CONTEXT_ATTRIBUTE
Name of attribute for accessing the SLORequestContext.
|
static String |
LOCAL_LOGOUT_BINDING
Binding identifier representing "local" logout.
|
private org.slf4j.Logger |
log
Class logger.
|
private SAMLObjectBuilder<LogoutResponse> |
responseBuilder
Builder of LogoutResponse objects.
|
private SAMLObjectBuilder<SingleLogoutService> |
sloServiceBuilder
Builder of SingleLogoutService objects.
|
private String |
soapFaultResponseMessage
Canned SOAP fault.
|
private String |
templatePath
Path to Velocity or JSP template for logout response to user.
|
private org.apache.velocity.app.VelocityEngine |
velocity
Velocity engine to use to render logout response to user.
|
SAML_VERSION| Constructor and Description |
|---|
SLOProfileHandler(String newPath)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected LogoutResponse |
buildLogoutResponse(SLOProfileHandler.SLORequestContext requestContext,
Status status)
Builds LogoutResponse.
|
protected void |
decodeRequest(SLOProfileHandler.SLORequestContext requestContext,
HTTPInTransport inTransport,
HTTPOutTransport outTransport)
Decodes an incoming request and populates a created request context with the resultant information.
|
protected void |
destroySession(Session session)
Destroy a session.
|
String |
getProfileId() |
org.apache.velocity.app.VelocityEngine |
getVelocityEngine()
Gets the VelocityEngine to use.
|
protected void |
localLogout(Session indirect,
HTTPInTransport inTransport,
HTTPOutTransport outTransport,
SLOProfileHandler.SLORequestContext requestContext)
Handles clearing the active session, possibly an additional "indirect" session,
and presenting a logout response to the client using a Velocity template.
|
protected void |
populateAssertingPartyInformation(BaseSAMLProfileRequestContext requestContext)
Populates the request context with information about the asserting party.
|
protected void |
populateProfileInformation(BaseSAMLProfileRequestContext requestContext)
Populates the request context with the information about the profile.
|
protected void |
populateRelyingPartyInformation(BaseSAMLProfileRequestContext requestContext)
Populates the request context with information about the relying party.
|
protected void |
populateSAMLMessageInformation(BaseSAMLProfileRequestContext requestContext)
Populates the request context with information from the inbound SAML message.
|
protected void |
processLogoutRequest(HTTPInTransport inTransport,
HTTPOutTransport outTransport)
Process and respond to a SAML LogoutRequest message.
|
void |
processRequest(HTTPInTransport inTransport,
HTTPOutTransport outTransport) |
protected Endpoint |
selectEndpoint(BaseSAMLProfileRequestContext requestContext)
Selects the appropriate endpoint for the relying party and stores it in the request context.
|
void |
setVelocityEngine(org.apache.velocity.app.VelocityEngine newVelocity)
Sets the VelocityEngine to use.
|
buildAssertion, buildAttributeStatement, buildConditions, buildEntityIssuer, buildErrorResponse, buildNameId, buildResponse, buildStatus, buildSubject, buildSubjectConfirmation, checkSamlVersion, getEncrypter, getKeyEncryptionCredential, getSessionIndexFromNameID, isEncryptAssertion, isEncryptNameID, isRequestRequiresEncryptNameID, isSignAssertion, populateRequestContext, populateStatusResponse, populateUserInformation, postProcessAssertion, postProcessResponse, resolveAttributes, resolvePrincipal, signAssertion, writeAuditLogEntryencodeResponse, filterNameIDAttributesByFormats, filterNameIDAttributesByProtocol, getAduitLog, getAuditLog, getEntitySupportedFormats, getIdGenerator, getInboundBinding, getInboundMessageDecoder, getMessageDecoders, getMessageEncoders, getMetadataCredentialResolver, getMetadataProvider, getOutboundMessageEncoder, getRelyingPartyConfiguration, getRequiredNameIDFormat, getSecurityPolicyResolver, getSupportedNameFormats, getSupportedOutboundBindings, getUserSession, getUserSession, isSignResponse, selectNameIDAttributeAndEncoder, selectNameIDAttributeAndEncoder, setIdGenerator, setInboundBinding, setMessageDecoders, setMessageEncoders, setSecurityPolicyResolver, setSupportedOutboundBindingsgetBuilderFactory, getParserPool, getProfileConfiguration, getRelyingPartyConfigurationManager, getSessionManager, getStorageService, setParserPool, setRelyingPartyConfigurationManager, setSessionManager, setStorageServicegetRequestPaths, setRequestPathspublic static final String LOCAL_LOGOUT_BINDING
public static final String HTTP_LOGOUT_BINDING_ATTRIBUTE
public static final String HTTP_LOGOUT_REQUEST_CONTEXT_ATTRIBUTE
private final String soapFaultResponseMessage
private final org.slf4j.Logger log
private final SAMLObjectBuilder<SingleLogoutService> sloServiceBuilder
private final SAMLObjectBuilder<LogoutResponse> responseBuilder
private org.apache.velocity.app.VelocityEngine velocity
private String templatePath
public SLOProfileHandler(String newPath)
newPath - path to JSP or Velocity templatepublic org.apache.velocity.app.VelocityEngine getVelocityEngine()
public void setVelocityEngine(org.apache.velocity.app.VelocityEngine newVelocity)
newVelocity - the VelocityEngine to usepublic String getProfileId()
getProfileId in class AbstractShibbolethProfileHandler<SAMLMDRelyingPartyConfigurationManager,Session>public void processRequest(HTTPInTransport inTransport, HTTPOutTransport outTransport) throws ProfileException
ProfileExceptionprotected void localLogout(Session indirect, HTTPInTransport inTransport, HTTPOutTransport outTransport, SLOProfileHandler.SLORequestContext requestContext) throws ProfileException
indirect - additional session to clear during logoutinTransport - incoming transport objectoutTransport - outgoing transport objectProfileException - if an error occurs during profile executionprotected void processLogoutRequest(HTTPInTransport inTransport, HTTPOutTransport outTransport) throws ProfileException
inTransport - incoming transport objectoutTransport - outgoing transport objectProfileException - if an error occurs during profile executionprotected LogoutResponse buildLogoutResponse(SLOProfileHandler.SLORequestContext requestContext, Status status) throws ProfileException
requestContext - context information for the current requeststatus - a Status to add to the responseProfileException - if an error occurs during profile executionprotected void destroySession(Session session)
session - session to destroyprotected void populateSAMLMessageInformation(BaseSAMLProfileRequestContext requestContext) throws ProfileException
AbstractSAMLProfileHandler.populateRequestContext(BaseSAMLProfileRequestContext) has already invoked
AbstractSAMLProfileHandler.populateRelyingPartyInformation(BaseSAMLProfileRequestContext),and
AbstractSAMLProfileHandler.populateAssertingPartyInformation(BaseSAMLProfileRequestContext) have already been invoked and the
properties they provide are available in the request context.populateSAMLMessageInformation in class AbstractSAMLProfileHandlerrequestContext - current request contextProfileException - thrown if there is a problem populating the request context with informationprotected void populateRelyingPartyInformation(BaseSAMLProfileRequestContext requestContext) throws ProfileException
populateRelyingPartyInformation in class AbstractSAMLProfileHandlerrequestContext - current request contextProfileException - thrown if there is a problem looking up the relying party's metadataprotected void populateAssertingPartyInformation(BaseSAMLProfileRequestContext requestContext) throws ProfileException
AbstractSAMLProfileHandler.populateRequestContext(BaseSAMLProfileRequestContext) has already invoked
AbstractSAMLProfileHandler.populateRelyingPartyInformation(BaseSAMLProfileRequestContext) has already been invoked and the
properties it provides are available in the request context.
This method requires the the following request context properties to be populated: metadata provider, relying
party configuration
This methods populates the following request context properties: local entity ID, outbound message issuer, local
entity metadatapopulateAssertingPartyInformation in class AbstractSAMLProfileHandlerrequestContext - current request contextProfileException - thrown if there is a problem looking up the asserting party's metadataprotected Endpoint selectEndpoint(BaseSAMLProfileRequestContext requestContext) throws ProfileException
selectEndpoint in class AbstractSAMLProfileHandlerrequestContext - current request contextProfileException - thrown if there is a problem selecting a response endpointprotected void populateProfileInformation(BaseSAMLProfileRequestContext requestContext) throws ProfileException
AbstractSAMLProfileHandler.populateRequestContext(BaseSAMLProfileRequestContext) has already invoked
AbstractSAMLProfileHandler.populateRelyingPartyInformation(BaseSAMLProfileRequestContext),
AbstractSAMLProfileHandler.populateAssertingPartyInformation(BaseSAMLProfileRequestContext), and
AbstractSAMLProfileHandler.populateSAMLMessageInformation(BaseSAMLProfileRequestContext) have already been invoked and the
properties they provide are available in the request context.
This method requires the the following request context properties to be populated: relying party configuration
This methods populates the following request context properties: communication profile ID, profile configuration,
outbound message artifact type, peer entity endpointpopulateProfileInformation in class AbstractSAMLProfileHandlerrequestContext - current request contextProfileException - thrown if there is a problem populating the profile informationprotected void decodeRequest(SLOProfileHandler.SLORequestContext requestContext, HTTPInTransport inTransport, HTTPOutTransport outTransport) throws ProfileException
requestContext - request context to which decoded information should be addedinTransport - inbound message transportoutTransport - outbound message transportProfileException - if there is a problem decoding the requestCopyright © 1999-2014. All Rights Reserved.