[java-identity-provider COMMIT] in /trunk: idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/AttributeSubc...

noreply at shibboleth.net noreply at shibboleth.net
Tue Sep 13 13:11:00 BST 2011


Author: lajoie
Date: Tue Sep 13 13:10:59 2011
New Revision: 4061

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4061&view=rev
Log:
Add attribute subcontext that carries attributes through actions like resolution, filtering, consent, etc.

Added:
    trunk/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/AttributeSubcontext.java   (with props)
Modified:
    trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java
    trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java

Modified: trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java?rev=4061&r1=4060&r2=4061&view=diff
==============================================================================
--- trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java (original)
+++ trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/FilterAttributes.java Tue Sep 13 13:10:59 2011
@@ -20,10 +20,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import net.shibboleth.idp.attribute.AttributeSubcontext;
 import net.shibboleth.idp.attribute.filtering.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filtering.AttributeFilteringEngine;
 import net.shibboleth.idp.attribute.filtering.AttributeFilteringException;
-import net.shibboleth.idp.attribute.resolver.AttributeResolutionContext;
 import net.shibboleth.idp.profile.AbstractIdentityProviderAction;
 import net.shibboleth.idp.profile.ActionSupport;
 import net.shibboleth.idp.profile.ProfileRequestContext;
@@ -45,8 +45,10 @@
     /** {@inheritDoc} */
     public Event doExecute(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse,
             final RequestContext springRequestContext, final ProfileRequestContext profileRequestContext) {
+        
+        final AttributeSubcontext attributeCtx = profileRequestContext.getSubcontext(AttributeSubcontext.class, false);
 
-        // Get the resolution context from the profile request
+        // Get the filer context from the profile request
         // this may already exist but if not, auto-create it
         final AttributeFilterContext filterContext =
                 profileRequestContext.getSubcontext(AttributeFilterContext.class, true);
@@ -54,18 +56,19 @@
         // If the filter context doesn't have a set of attributes to filter already
         // then look for them in the profile request context
         if (filterContext.getPrefilteredAttributes().isEmpty()) {
-            final AttributeResolutionContext resolutionContext =
-                    profileRequestContext.getSubcontext(AttributeResolutionContext.class, false);
-            if (resolutionContext == null) {
+            if (attributeCtx == null) {
                 // TODO error
                 return ActionSupport.buildEvent(this, ActionSupport.ERROR_EVENT_ID, null);
             }
 
-            filterContext.setPrefilteredAttributes(resolutionContext.getResolvedAttributes().values());
+            filterContext.setPrefilteredAttributes(attributeCtx.getAttributes().values());
         }
 
         try {
             filterEngine.filterAttributes(filterContext);
+            // TODO remove filter context from profile request context?
+
+            attributeCtx.setAttributes(filterContext.getFilteredAttributes().values());
         } catch (AttributeFilteringException e) {
             // TODO error
             return ActionSupport.buildEvent(this, ActionSupport.ERROR_EVENT_ID, null);

Modified: trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java?rev=4061&r1=4060&r2=4061&view=diff
==============================================================================
--- trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java (original)
+++ trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/impl/ResolveAttributes.java Tue Sep 13 13:10:59 2011
@@ -20,6 +20,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import net.shibboleth.idp.attribute.AttributeSubcontext;
 import net.shibboleth.idp.attribute.resolver.AttributeResolutionContext;
 import net.shibboleth.idp.attribute.resolver.AttributeResolutionException;
 import net.shibboleth.idp.attribute.resolver.AttributeResolver;
@@ -52,6 +53,10 @@
 
         try {
             attributeResolver.resolveAttributes(resolutionContext);
+            //TODO remove resolution context from request?
+            
+            final AttributeSubcontext attributeCtx = profileRequestContext.getSubcontext(AttributeSubcontext.class, true);

[... 5 lines stripped ...]


More information about the commits mailing list