[java-idp-testbed] branch master updated: Add a hook for specifying AuthnContextClassRef in requests.

Scott Cantor cantor.2 at osu.edu
Wed May 25 14:46:32 EDT 2016


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-idp-testbed.

The following commit(s) were added to refs/heads/master by this push:
       new  cc1f928   Add a hook for specifying AuthnContextClassRef in requests.
cc1f928 is described below

commit cc1f928de2b94211f0d170493e7c0d4cf0bf713b
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed May 25 14:46:23 2016 -0400

    Add a hook for specifying AuthnContextClassRef in requests.
---
 src/main/java/sp/SAML2Controller.java | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/main/java/sp/SAML2Controller.java b/src/main/java/sp/SAML2Controller.java
index 6419eca..a716887 100644
--- a/src/main/java/sp/SAML2Controller.java
+++ b/src/main/java/sp/SAML2Controller.java
@@ -22,6 +22,7 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2aslo.Asynchronous;
 import org.opensaml.saml.saml2.binding.encoding.impl.HTTPPostEncoder;
 import org.opensaml.saml.saml2.binding.encoding.impl.HTTPRedirectDeflateEncoder;
+import org.opensaml.saml.saml2.core.AuthnContextClassRef;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 import org.opensaml.saml.saml2.core.Extensions;
 import org.opensaml.saml.saml2.core.Issuer;
@@ -29,6 +30,7 @@ import org.opensaml.saml.saml2.core.LogoutRequest;
 import org.opensaml.saml.saml2.core.LogoutResponse;
 import org.opensaml.saml.saml2.core.NameID;
 import org.opensaml.saml.saml2.core.NameIDPolicy;
+import org.opensaml.saml.saml2.core.RequestedAuthnContext;
 import org.opensaml.saml.saml2.core.Response;
 import org.opensaml.saml.saml2.core.Status;
 import org.opensaml.saml.saml2.core.StatusCode;
@@ -330,14 +332,26 @@ public class SAML2Controller extends BaseSAMLController {
 		authnRequest.setAssertionConsumerServiceURL(getAcsUrl(servletRequest));
 		authnRequest.setProtocolBinding(SAMLConstants.SAML2_POST_BINDING_URI);
 		
-		final Issuer issuer = (Issuer) builderFactory.getBuilder(Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
+		final Issuer issuer = (Issuer) builderFactory.getBuilder(
+		        Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
 		issuer.setValue(getSpEntityId(servletRequest));
 		authnRequest.setIssuer(issuer);
 		
-		final NameIDPolicy nameIDPolicy = (NameIDPolicy) builderFactory.getBuilder(NameIDPolicy.DEFAULT_ELEMENT_NAME).buildObject(NameIDPolicy.DEFAULT_ELEMENT_NAME);
+		final NameIDPolicy nameIDPolicy = (NameIDPolicy) builderFactory.getBuilder(
+		        NameIDPolicy.DEFAULT_ELEMENT_NAME).buildObject(NameIDPolicy.DEFAULT_ELEMENT_NAME);
 		nameIDPolicy.setAllowCreate(true);
 		authnRequest.setNameIDPolicy(nameIDPolicy);
 		
+		if (servletRequest.getParameter("classRef") != null) {
+            final AuthnContextClassRef ref = (AuthnContextClassRef) builderFactory.getBuilder(
+                    AuthnContextClassRef.DEFAULT_ELEMENT_NAME).buildObject(AuthnContextClassRef.DEFAULT_ELEMENT_NAME);
+            ref.setAuthnContextClassRef(servletRequest.getParameter("classRef"));
+	        final RequestedAuthnContext rac = (RequestedAuthnContext) builderFactory.getBuilder(
+	                RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
+	        rac.getAuthnContextClassRefs().add(ref);
+	        authnRequest.setRequestedAuthnContext(rac);
+		}
+		
 		return authnRequest;
 	}
 
@@ -348,7 +362,8 @@ public class SAML2Controller extends BaseSAMLController {
         logoutRequest.setID(idGenerator.generateIdentifier());
         logoutRequest.setIssueInstant(new DateTime());
         
-        final Issuer issuer = (Issuer) builderFactory.getBuilder(Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
+        final Issuer issuer = (Issuer) builderFactory.getBuilder(
+                Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
         issuer.setValue(getSpEntityId(servletRequest));
         logoutRequest.setIssuer(issuer);
         

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list