Package com.onelogin.saml2.logout
Class LogoutResponse
java.lang.Object
com.onelogin.saml2.logout.LogoutResponse
LogoutResponse class of OneLogin's Java Toolkit.
A class that implements SAML 2 Logout Response builder/parser/validator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringURL of the current host + current viewprivate StringSAML LogoutResponse ID.private CalendarTime when the Logout Request was createdprivate static final org.slf4j.LoggerPrivate property to construct a logger for this class.private DocumentA DOMDocument object loaded from the SAML Response.private StringSAML LogoutResponse stringprivate final HttpRequestHttpRequest object to be processed (Contains GET and POST parameters, request URL, ...).private final Saml2SettingsSettings data.private ExceptionAfter validation, if it fails this property has the cause of the problem -
Constructor Summary
ConstructorsConstructorDescriptionLogoutResponse(Saml2Settings settings, HttpRequest request) Constructs the LogoutResponse object when a received response should be extracted from the HTTP request and parsed.LogoutResponse(Saml2Settings settings, LogoutResponseParams params) Constructs the LogoutResponse object when a new response should be generated and sent. -
Method Summary
Modifier and TypeMethodDescriptionvoidbuild()Deprecated.voidDeprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)voidbuild(String inResponseTo, SamlResponseStatus responseStatus) Deprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)voidDeprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)private org.apache.commons.lang3.text.StrSubstitutorgenerateSubstitutor(LogoutResponseParams params, Saml2Settings settings) Substitutes LogoutResponse variables within a string by values.getEncodedLogoutResponse(Boolean deflated) getError()After execute a validation process, if fails this method returns the causegetId()Returns the issue instant of this message.Gets the Issuer from Logout Response.private static StringBuilderGets the Status of the Logout Response.Gets the Status of the Logout Response.After execute a validation process, if fails this method returns the Exception objectisValid()Determines if the SAML LogoutResponse is validprotected StringpostProcessXml(String logoutResponseXml, LogoutResponseParams params, Saml2Settings settings) Allows for an extension class to post-process the LogoutResponse XML generated for this response, in order to customize the result.protected NodeListExtracts nodes that match the query from the DOMDocument (Logout Response Menssage)protected voidsetValidationException(Exception validationException) Sets the validation exception that thisLogoutResponseshould return when a validation error occurs.
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGERPrivate property to construct a logger for this class. -
logoutResponseString
SAML LogoutResponse string -
logoutResponseDocument
A DOMDocument object loaded from the SAML Response. -
id
SAML LogoutResponse ID. -
settings
Settings data. -
request
HttpRequest object to be processed (Contains GET and POST parameters, request URL, ...). -
currentUrl
URL of the current host + current view -
issueInstant
Time when the Logout Request was created -
validationException
After validation, if it fails this property has the cause of the problem
-
-
Constructor Details
-
LogoutResponse
Constructs the LogoutResponse object when a received response should be extracted from the HTTP request and parsed.- Parameters:
settings- OneLogin_Saml2_Settingsrequest- the HttpRequest object to be processed (Contains GET and POST parameters, request URL, ...); may benullwhen building an outgoing logout response
-
LogoutResponse
Constructs the LogoutResponse object when a new response should be generated and sent.- Parameters:
settings- OneLogin_Saml2_Settingsparams- a set of logout response input parameters that shape the request to create
-
-
Method Details
-
getEncodedLogoutResponse
- Parameters:
deflated- If deflated or not the encoded Logout Response- Returns:
- the base64 encoded unsigned Logout Response (deflated or not)
- Throws:
IOException
-
getEncodedLogoutResponse
- Returns:
- the base64 encoded, unsigned Logout Response (deflated or not)
- Throws:
IOException
-
getLogoutResponseXml
- Returns:
- the plain XML Logout Response
-
getId
- Returns:
- the ID of the Response
-
isValid
Determines if the SAML LogoutResponse is valid- Parameters:
requestId- The ID of the LogoutRequest sent by this SP to the IdP- Returns:
- if the SAML LogoutResponse is or not valid
-
isValid
-
getIssuer
Gets the Issuer from Logout Response.- Returns:
- the issuer of the logout response
- Throws:
XPathExpressionException
-
getStatus
Gets the Status of the Logout Response.- Returns:
- the Status
- Throws:
XPathExpressionException
-
getSamlResponseStatus
Gets the Status of the Logout Response.- Returns:
- SamlResponseStatus
- Throws:
ValidationError
-
query
Extracts nodes that match the query from the DOMDocument (Logout Response Menssage)- Parameters:
query- Xpath Expression- Returns:
- DOMNodeList The queried nodes
- Throws:
XPathExpressionException
-
build
Deprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)Generates a Logout Response XML string.- Parameters:
inResponseTo- InResponseTo attribute value to bet set at the Logout Response.responseStatus- SamlResponseStatus response status to be set on the LogoutResponse
-
build
Deprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)Generates a Logout Response XML string.- Parameters:
inResponseTo- InResponseTo attribute value to bet set at the Logout Response.statusCode- String StatusCode to be set on the LogoutResponse
-
build
Deprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)Generates a Logout Response XML string.- Parameters:
inResponseTo- InResponseTo attribute value to bet set at the Logout Response.
-
build
Deprecated.useLogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)Generates a Logout Response XML string. -
postProcessXml
protected String postProcessXml(String logoutResponseXml, LogoutResponseParams params, Saml2Settings settings) Allows for an extension class to post-process the LogoutResponse XML generated for this response, in order to customize the result.This method is invoked by
build(String, String)(and all of its overloadings) and hence only in the logout response sending scenario. Its default implementation simply returns the input XML as-is, with no change.- Parameters:
logoutResponseXml- the XML produced for this LogoutResponse by the standard implementation provided byLogoutResponseparams- the logout request input parameterssettings- the settings- Returns:
- the post-processed XML for this LogoutResponse, which will then be
returned by any call to
getLogoutResponseXml()
-
generateSubstitutor
private org.apache.commons.lang3.text.StrSubstitutor generateSubstitutor(LogoutResponseParams params, Saml2Settings settings) Substitutes LogoutResponse variables within a string by values.- Parameters:
params- the logout response input parameterssettings- Saml2Settings object. Setting data- Returns:
- the StrSubstitutor object of the LogoutResponse
-
getLogoutResponseTemplate
- Returns:
- the LogoutResponse's template
-
getError
After execute a validation process, if fails this method returns the cause- Returns:
- the cause of the validation error
-
getValidationException
After execute a validation process, if fails this method returns the Exception object- Returns:
- the cause of the validation error
-
setValidationException
Sets the validation exception that thisLogoutResponseshould return when a validation error occurs.- Parameters:
validationException- the validation exception to set
-
getIssueInstant
Returns the issue instant of this message.- Returns:
- a new
Calendarinstance carrying the issue instant of this message - Throws:
ValidationError- if this logout response was received and parsed and the found IssueInstant attribute is not in the expected UTC form of ISO-8601 format
-
LogoutResponse(Saml2Settings, LogoutResponseParams)instead, in which case this method becomes completely useless; indeed, invoking this method in an outgoing logout response scenario will cause the response parameters specified at construction time (inResponseToandresponseStatus) to be overwritten, as well as its generated id and issue instant; on the other hand invoking this method in a received logout response scenario does not make sense at all (and in that caseLogoutResponse(Saml2Settings, HttpRequest)should be used instead)