in src/main/java/org/apache/sling/auth/saml2/impl/AuthenticationHandlerSAML2Impl.java [231:255]
private AuthenticationInfo processAssertionConsumerService(final HttpServletRequest httpServletRequest){
doClassloading();
MessageContext messageContext = decodeHttpPostSamlResp(httpServletRequest);
Assertion assertion = null;
boolean relayStateIsOk = validateRelayState(httpServletRequest, messageContext);
// If relay state from request == relay state from session))
if (relayStateIsOk) {
Response response = (Response) messageContext.getMessage();
if (this.getSaml2SPEncryptAndSign()) {
EncryptedAssertion encryptedAssertion = response.getEncryptedAssertions().get(0);
assertion = decryptAssertion(encryptedAssertion);
verifyAssertionSignature(assertion);
} else {
// Not using encryption
assertion = response.getAssertions().get(0);
}
if (validateSaml2Conditions(httpServletRequest, assertion)) {
logger.debug("Decrypted Assertion: ");
User extUser = doUserManagement(assertion);
return this.buildAuthInfo(extUser);
}
logger.error("Validation of SubjectConfirmation failed");
}
return null;
}