[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