[java-identity-provider COMMIT] in /trunk: idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguratio...

noreply at shibboleth.net noreply at shibboleth.net
Tue Jun 16 11:25:52 EDT 2015


Author: serac
Date: Tue Jun 16 11:25:52 2015
New Revision: 7565

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7565&view=rev
Log:
IDP-742 Add intercept subflow support to CAS login flow.

Modified:
    trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java
    trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/BuildAttributeContextAction.java
    trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/ExtractAttributesAction.java
    trunk/idp-conf/src/main/resources/system/flows/cas/abstractValidate/abstractValidate-beans.xml
    trunk/idp-conf/src/main/resources/system/flows/cas/abstractValidate/abstractValidate-flow.xml
    trunk/idp-conf/src/main/resources/system/flows/cas/login/login-beans.xml
    trunk/idp-conf/src/main/resources/system/flows/cas/login/login-flow.xml
    trunk/idp-conf/src/test/java/net/shibboleth/idp/test/flows/cas/LoginFlowTest.java
    trunk/idp-conf/src/test/resources/logback-test.xml

Modified: trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java?rev=7565&r1=7564&r2=7565&view=diff
==============================================================================
--- trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java	(original)
+++ trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/config/LoginConfiguration.java	Tue Jun 16 11:25:52 2015
@@ -76,6 +76,9 @@
     @Nonnull
     @NonnullElements
     private List<String> nameIDFormatPrecedence = Collections.emptyList();
+
+    /** Flag to indicate whether attributes should be resolved at login. */
+    private boolean resolveAttributes = true;
 
 
     /** Creates a new instance. */
@@ -165,7 +168,22 @@
 
         nameIDFormatPrecedence = new ArrayList<>(Collections2.filter(formats, Predicates.notNull()));
     }
-    
+
+    /** @return True if attribute resolution enabled for login flow, false otherwise. */
+    public boolean isResolveAttributes() {
+        return resolveAttributes;
+    }
+
+    /**
+     * Enables or disables attribute resolution. Note that disabling attribute resolution also disables invocation of
+     * post-authentication interceptors since all out-of-box interceptors rely on attributes.
+     *
+     * @param resolveAttributes True to enable attribute resolution (default), false otherwise.
+     */
+    public void setResolveAttributes(boolean resolveAttributes) {
+        this.resolveAttributes = resolveAttributes;
+    }
+
     @Override
     @Nonnull
     protected String getDefaultTicketPrefix() {

Modified: trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/ExtractAttributesAction.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/ExtractAttributesAction.java?rev=7565&r1=7564&r2=7565&view=diff
==============================================================================
--- trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/ExtractAttributesAction.java	(original)
+++ trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/ExtractAttributesAction.java	Tue Jun 16 11:25:52 2015
@@ -22,14 +22,14 @@
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.context.AttributeContext;
-import net.shibboleth.idp.authn.context.SubjectContext;
 import net.shibboleth.idp.cas.protocol.ProtocolError;
 import net.shibboleth.idp.cas.protocol.TicketValidationRequest;
 import net.shibboleth.idp.cas.protocol.TicketValidationResponse;
 import net.shibboleth.idp.profile.context.RelyingPartyContext;
+import net.shibboleth.idp.session.context.SessionContext;
+import net.shibboleth.idp.session.context.navigate.SessionContextPrincipalLookupFunction;
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.opensaml.profile.context.ProfileRequestContext;
-import org.opensaml.saml.saml1.core.Subject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.webflow.execution.Event;
@@ -55,6 +55,12 @@
                     new ChildContextLookup<>(AttributeContext.class),
                     new ChildContextLookup<ProfileRequestContext, RelyingPartyContext>(RelyingPartyContext.class));
 
+    /** Function used to retrieve subject principal. */
+    private Function<ProfileRequestContext,String> principalLookupFunction =
+            Functions.compose(
+                    new SessionContextPrincipalLookupFunction(),
+                    new ChildContextLookup<ProfileRequestContext, SessionContext>(SessionContext.class));
+
 
     @Nonnull
     @Override
@@ -68,14 +74,14 @@
             return ProtocolError.IllegalState.event(this);
         }
 
-        final SubjectContext sc = profileRequestContext.getSubcontext(SubjectContext.class, false);
-        if (sc == null) {

[... 274 lines stripped ...]


More information about the commits mailing list