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