[java-identity-provider COMMIT] in /trunk/idp-conf/src/main/resources: conf/error-mappings.xml system/flows/status/st...

noreply at shibboleth.net noreply at shibboleth.net
Mon Jun 9 15:41:21 EDT 2014


Author: scantor
Date: Mon Jun  9 15:41:21 2014
New Revision: 6063

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6063&view=rev
Log:
Update error handling in Status flow, and add a 403 view template.

Added:
    trunk/idp-conf/src/main/resources/views/access-error.vm   (with props)
Modified:
    trunk/idp-conf/src/main/resources/conf/error-mappings.xml
    trunk/idp-conf/src/main/resources/system/flows/status/status-beans.xml
    trunk/idp-conf/src/main/resources/system/flows/status/status-flow.xml
    trunk/idp-conf/src/main/resources/views/status.vm

Modified: trunk/idp-conf/src/main/resources/conf/error-mappings.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/conf/error-mappings.xml?rev=6063&r1=6062&r2=6063&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/conf/error-mappings.xml (original)
+++ trunk/idp-conf/src/main/resources/conf/error-mappings.xml Mon Jun  9 15:41:21 2014
@@ -25,6 +25,7 @@
         <entry key="InvalidProfileConfiguration" value="relying-party-error" />
         <entry key="MessageReplay" value="stale-error" />
         <entry key="MessageExpired" value="stale-error" />
+        <entry key="AccessDenied" value="access-error" />
     </util:map>
 
     <!-- Mappings of error events during requests to SAML status codes and SOAP fault codes. -->

Modified: trunk/idp-conf/src/main/resources/system/flows/status/status-beans.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/system/flows/status/status-beans.xml?rev=6063&r1=6062&r2=6063&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/system/flows/status/status-beans.xml (original)
+++ trunk/idp-conf/src/main/resources/system/flows/status/status-beans.xml Mon Jun  9 15:41:21 2014
@@ -24,6 +24,11 @@
     <bean id="CheckAccess"
         class="org.opensaml.profile.action.impl.CheckClientAddress" scope="prototype"
         p:httpServletRequest-ref="shibboleth.HttpServletRequest"
-        p:allowedRanges="#{ { ${idp.status.allowedAddresses} } }" />
+        p:allowedRanges="#{ { ${idp.status.allowedAddresses:null} } }" />
+
+    <bean id="MapEventToView"
+        class="net.shibboleth.idp.profile.context.navigate.SpringEventToViewLookupFunction"
+        p:defaultView-ref="shibboleth.DefaultErrorView"
+        p:eventMap-ref="shibboleth.EventViewMap" />
 
 </beans>

Modified: trunk/idp-conf/src/main/resources/system/flows/status/status-flow.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/system/flows/status/status-flow.xml?rev=6063&r1=6062&r2=6063&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/system/flows/status/status-flow.xml (original)
+++ trunk/idp-conf/src/main/resources/system/flows/status/status-flow.xml Mon Jun  9 15:41:21 2014
@@ -21,19 +21,30 @@
             <evaluate expression="new org.joda.time.DateTime(flowExecutionContext.getActiveSession().getDefinition().getApplicationContext().getStartupDate())"
                 result="requestScope.startupTime" />
             <evaluate expression="T(org.joda.time.DateTime).now()" result="requestScope.now" />
-            <evaluate expression="flowRequestContext.getExternalContext().getNativeResponse().setContentType('text/plain')" />
+            <evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="requestScope.request" />
+            <evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="requestScope.response" />
         </on-entry>
     </end-state>
 
-    <end-state id="error" view="error">
+    <!-- Populates inputs to error views and dispatches based on the error event. -->
+    <action-state id="HandleErrorWithView">
         <on-entry>
             <evaluate expression="opensamlProfileRequestContext" result="requestScope.profileRequestContext" />
+            <evaluate expression="T(net.shibboleth.utilities.java.support.codec.HTMLEncoder)" result="requestScope.encoder" />
+            <evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="requestScope.request" />
+            <evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="requestScope.response" />
         </on-entry>
-    </end-state>
+        
+        <evaluate expression="currentEvent" />
+        
+        <transition to="error" />
+    </action-state>
+
+    <end-state id="error" view="#{MapEventToView.apply(currentEvent)}" />
 
     <!-- Default is to turn non-proceed events into an error. -->
     <global-transitions>
-        <transition on="#{!'proceed'.equals(currentEvent.id)}" to="error" />
+        <transition on="#{!'proceed'.equals(currentEvent.id)}" to="HandleErrorWithView" />
     </global-transitions>
 

[... 23 lines stripped ...]


More information about the commits mailing list