mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
SAML2LoginAPIAuthenticatorCmd: store nameid and session index in user's session
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
230e970569
commit
b1946e8c13
@ -124,7 +124,6 @@ public class SAML2LoginAPIAuthenticatorCmd extends BaseCmd implements APIAuthent
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String buildAuthnRequestUrl(String idpUrl) {
|
public String buildAuthnRequestUrl(String idpUrl) {
|
||||||
String randomSecureId = new BigInteger(130, new SecureRandom()).toString(32);
|
|
||||||
String spId = _samlAuthManager.getServiceProviderId();
|
String spId = _samlAuthManager.getServiceProviderId();
|
||||||
String consumerUrl = _samlAuthManager.getSpSingleSignOnUrl();
|
String consumerUrl = _samlAuthManager.getSpSingleSignOnUrl();
|
||||||
String identityProviderUrl = _samlAuthManager.getIdpSingleSignOnUrl();
|
String identityProviderUrl = _samlAuthManager.getIdpSingleSignOnUrl();
|
||||||
@ -136,7 +135,7 @@ public class SAML2LoginAPIAuthenticatorCmd extends BaseCmd implements APIAuthent
|
|||||||
String redirectUrl = "";
|
String redirectUrl = "";
|
||||||
try {
|
try {
|
||||||
DefaultBootstrap.bootstrap();
|
DefaultBootstrap.bootstrap();
|
||||||
AuthnRequest authnRequest = SAMLUtils.buildAuthnRequestObject(randomSecureId, spId, identityProviderUrl, consumerUrl);
|
AuthnRequest authnRequest = SAMLUtils.buildAuthnRequestObject(spId, identityProviderUrl, consumerUrl);
|
||||||
redirectUrl = identityProviderUrl + "?SAMLRequest=" + SAMLUtils.encodeSAMLRequest(authnRequest);
|
redirectUrl = identityProviderUrl + "?SAMLRequest=" + SAMLUtils.encodeSAMLRequest(authnRequest);
|
||||||
} catch (ConfigurationException | FactoryConfigurationError | MarshallingException | IOException e) {
|
} catch (ConfigurationException | FactoryConfigurationError | MarshallingException | IOException e) {
|
||||||
s_logger.error("SAML AuthnRequest message building error: " + e.getMessage());
|
s_logger.error("SAML AuthnRequest message building error: " + e.getMessage());
|
||||||
@ -220,6 +219,9 @@ public class SAML2LoginAPIAuthenticatorCmd extends BaseCmd implements APIAuthent
|
|||||||
|
|
||||||
Assertion assertion = processedSAMLResponse.getAssertions().get(0);
|
Assertion assertion = processedSAMLResponse.getAssertions().get(0);
|
||||||
NameID nameId = assertion.getSubject().getNameID();
|
NameID nameId = assertion.getSubject().getNameID();
|
||||||
|
String sessionIndex = assertion.getAuthnStatements().get(0).getSessionIndex();
|
||||||
|
session.setAttribute(SAMLUtils.SAML_NAMEID, nameId);
|
||||||
|
session.setAttribute(SAMLUtils.SAML_SESSION, sessionIndex);
|
||||||
|
|
||||||
if (nameId.getFormat().equals(NameIDType.PERSISTENT) || nameId.getFormat().equals(NameIDType.EMAIL)) {
|
if (nameId.getFormat().equals(NameIDType.PERSISTENT) || nameId.getFormat().equals(NameIDType.EMAIL)) {
|
||||||
username = nameId.getValue();
|
username = nameId.getValue();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user