Repository: cxf-fediz Updated Branches: refs/heads/master 94cafcf36 -> 6fc7f301d
More spring webflow consolidation Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/44633f3d Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/44633f3d Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/44633f3d Branch: refs/heads/master Commit: 44633f3d6914224b74917a64e68e186731b06850 Parents: 94cafcf Author: Colm O hEigeartaigh <[email protected]> Authored: Wed Dec 14 10:50:40 2016 +0000 Committer: Colm O hEigeartaigh <[email protected]> Committed: Wed Dec 14 10:50:40 2016 +0000 ---------------------------------------------------------------------- .../idp/beans/SigninParametersCacheAction.java | 26 ++++++-------------- .../WEB-INF/flows/federation-signin-request.xml | 9 ++++--- .../flows/federation-validate-request.xml | 5 ++-- .../WEB-INF/flows/saml-signin-request.xml | 12 +++++---- .../WEB-INF/flows/saml-validate-request.xml | 5 ++-- .../webapp/WEB-INF/flows/signin-response.xml | 3 +-- 6 files changed, 27 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/44633f3d/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/SigninParametersCacheAction.java ---------------------------------------------------------------------- diff --git a/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/SigninParametersCacheAction.java b/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/SigninParametersCacheAction.java index 4572bb5..538841d 100644 --- a/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/SigninParametersCacheAction.java +++ b/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/SigninParametersCacheAction.java @@ -50,6 +50,10 @@ public class SigninParametersCacheAction { if (value != null) { signinParams.put(IdpConstants.HOME_REALM, value); } + value = WebUtils.getAttributeFromFlowScope(context, IdpConstants.CONTEXT); + if (value != null) { + signinParams.put(IdpConstants.CONTEXT, value); + } if ("wsfed".equals(protocol)) { value = WebUtils.getAttributeFromFlowScope(context, IdpConstants.RETURN_ADDRESS); @@ -60,16 +64,7 @@ public class SigninParametersCacheAction { if (value != null) { signinParams.put(IdpConstants.REALM, value); } - value = WebUtils.getAttributeFromFlowScope(context, FederationConstants.PARAM_CONTEXT); - if (value != null) { - signinParams.put(FederationConstants.PARAM_CONTEXT, value); - } } else if ("samlsso".equals(protocol)) { - // TODO - value = WebUtils.getAttributeFromFlowScope(context, "RelayState"); - if (value != null) { - signinParams.put("RelayState", value); - } value = WebUtils.getAttributeFromFlowScope(context, IdpConstants.SAML_AUTHN_REQUEST); if (value != null) { signinParams.put(IdpConstants.SAML_AUTHN_REQUEST, value); @@ -112,22 +107,17 @@ public class SigninParametersCacheAction { LOG.info("SignIn parameters restored and " + FederationConstants.PARAM_CONTEXT + "[" + contextKey + "] cleared."); - value = (String)signinParams.get(FederationConstants.PARAM_CONTEXT); - if (value != null) { - WebUtils.putAttributeInFlowScope(context, FederationConstants.PARAM_CONTEXT, value); - } } else if ("samlsso".equals(protocol)) { SAMLAuthnRequest authnRequest = (SAMLAuthnRequest)signinParams.get(IdpConstants.SAML_AUTHN_REQUEST); if (authnRequest != null) { WebUtils.putAttributeInFlowScope(context, IdpConstants.SAML_AUTHN_REQUEST, authnRequest); } + } - // TODO - value = (String)signinParams.get("RelayState"); - if (value != null) { - WebUtils.putAttributeInFlowScope(context, "RelayState", value); - } + value = (String)signinParams.get(IdpConstants.CONTEXT); + if (value != null) { + WebUtils.putAttributeInFlowScope(context, IdpConstants.CONTEXT, value); } } else { http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/44633f3d/services/idp/src/main/webapp/WEB-INF/flows/federation-signin-request.xml ---------------------------------------------------------------------- diff --git a/services/idp/src/main/webapp/WEB-INF/flows/federation-signin-request.xml b/services/idp/src/main/webapp/WEB-INF/flows/federation-signin-request.xml index e202c57..d9e8558 100644 --- a/services/idp/src/main/webapp/WEB-INF/flows/federation-signin-request.xml +++ b/services/idp/src/main/webapp/WEB-INF/flows/federation-signin-request.xml @@ -24,13 +24,12 @@ http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"> <input name="idpConfig" /> - <input name="wctx" /> <input name="wfresh" /> - <input name="wauth" /> <input name="realm" /> <input name="home_realm" /> <input name="protocol" /> <input name="return_address" /> + <input name="request_context" /> <!-- ===== Home Realm Discovery ===== --> @@ -99,7 +98,8 @@ <action-state id="checkRemoteIdpTokenExpiry"> <evaluate expression="idpTokenExpiredAction.isTokenExpired(flowScope.home_realm, flowRequestContext) or - wfreshParser.authenticationRequired(flowScope.wfresh, flowScope.home_realm, flowRequestContext)" /> + protocol.equals('wsfed') and wfreshParser.authenticationRequired(flowScope.wfresh, flowScope.home_realm, flowRequestContext) + or protocol.equals('samlsso') and authnRequestParser.isForceAuthentication(flowRequestContext)" /> <transition on="yes" to="redirectToTrustedIDP" /> <transition on="no" to="validateReturnAddress" > <set name="flowScope.idpToken" value="externalContext.sessionMap[home_realm]" /> @@ -125,7 +125,8 @@ <action-state id="checkLocalIdPTokenExpiry"> <evaluate expression="idpTokenExpiredAction.isTokenExpired(flowScope.home_realm, flowRequestContext) or - wfreshParser.authenticationRequired(flowScope.wfresh, flowScope.home_realm, flowRequestContext)" /> + protocol.equals('wsfed') and wfreshParser.authenticationRequired(flowScope.wfresh, flowScope.home_realm, flowRequestContext) + or protocol.equals('samlsso') and authnRequestParser.isForceAuthentication(flowRequestContext)" /> <transition on="yes" to="redirectToLocalIDP" /> <transition on="no" to="validateReturnAddress"> <set name="flowScope.idpToken" value="externalContext.sessionMap[home_realm]" /> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/44633f3d/services/idp/src/main/webapp/WEB-INF/flows/federation-validate-request.xml ---------------------------------------------------------------------- diff --git a/services/idp/src/main/webapp/WEB-INF/flows/federation-validate-request.xml b/services/idp/src/main/webapp/WEB-INF/flows/federation-validate-request.xml index 81098a9..52b5d04 100644 --- a/services/idp/src/main/webapp/WEB-INF/flows/federation-validate-request.xml +++ b/services/idp/src/main/webapp/WEB-INF/flows/federation-validate-request.xml @@ -100,6 +100,7 @@ <input name="home_realm" value="flowScope.whr" /> <input name="protocol" value="'wsfed'" /> <input name="return_address" value="flowScope.wreply" /> + <input name="request_context" value="flowScope.request_context" /> <output name="home_realm" /> <output name="idpToken" /> @@ -134,13 +135,13 @@ <output name="realm" /> <output name="wreply" /> - <output name="wctx" /> + <output name="request_context" /> <output name="home_realm" /> <output name="idpToken" /> <transition on="requestRpToken" to="requestRpToken"> <set name="flowScope.whr" value="currentEvent.attributes.home_realm" /> - <set name="flowScope.wctx" value="currentEvent.attributes.wctx" /> + <set name="flowScope.wctx" value="currentEvent.attributes.request_context" /> <set name="flowScope.wtrealm" value="currentEvent.attributes.realm" /> <set name="flowScope.wreply" value="currentEvent.attributes.wreply" /> <set name="flowScope.idpToken" value="currentEvent.attributes.idpToken" /> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/44633f3d/services/idp/src/main/webapp/WEB-INF/flows/saml-signin-request.xml ---------------------------------------------------------------------- diff --git a/services/idp/src/main/webapp/WEB-INF/flows/saml-signin-request.xml b/services/idp/src/main/webapp/WEB-INF/flows/saml-signin-request.xml index f79b331..c3f6dbe 100644 --- a/services/idp/src/main/webapp/WEB-INF/flows/saml-signin-request.xml +++ b/services/idp/src/main/webapp/WEB-INF/flows/saml-signin-request.xml @@ -24,12 +24,12 @@ http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"> <input name="idpConfig" /> - <input name="RelayState" /> <input name="saml_authn_request" /> <input name="realm" /> <input name="home_realm" /> <input name="protocol" /> <input name="return_address" /> + <input name="request_context" /> <!-- ===== Home Realm Discovery ===== --> @@ -97,8 +97,9 @@ <action-state id="checkRemoteIdpTokenExpiry"> <evaluate - expression="idpTokenExpiredAction.isTokenExpired(flowScope.home_realm, flowRequestContext) - or authnRequestParser.isForceAuthentication(flowRequestContext)" /> + expression="idpTokenExpiredAction.isTokenExpired(flowScope.home_realm, flowRequestContext) or + protocol.equals('wsfed') and wfreshParser.authenticationRequired(flowScope.wfresh, flowScope.home_realm, flowRequestContext) + or protocol.equals('samlsso') and authnRequestParser.isForceAuthentication(flowRequestContext)" /> <transition on="yes" to="redirectToTrustedIDP" /> <transition on="no" to="validateReturnAddress" > <set name="flowScope.idpToken" value="externalContext.sessionMap[flowScope.home_realm]" /> @@ -123,8 +124,9 @@ <action-state id="checkLocalIdPTokenExpiry"> <evaluate - expression="idpTokenExpiredAction.isTokenExpired(flowScope.home_realm, flowRequestContext) - or authnRequestParser.isForceAuthentication(flowRequestContext)" /> + expression="idpTokenExpiredAction.isTokenExpired(flowScope.home_realm, flowRequestContext) or + protocol.equals('wsfed') and wfreshParser.authenticationRequired(flowScope.wfresh, flowScope.home_realm, flowRequestContext) + or protocol.equals('samlsso') and authnRequestParser.isForceAuthentication(flowRequestContext)" /> <transition on="yes" to="redirectToLocalIDP" /> <transition on="no" to="validateReturnAddress"> <set name="flowScope.idpToken" value="externalContext.sessionMap[flowScope.home_realm]" /> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/44633f3d/services/idp/src/main/webapp/WEB-INF/flows/saml-validate-request.xml ---------------------------------------------------------------------- diff --git a/services/idp/src/main/webapp/WEB-INF/flows/saml-validate-request.xml b/services/idp/src/main/webapp/WEB-INF/flows/saml-validate-request.xml index 2e6cdad..17d6067 100644 --- a/services/idp/src/main/webapp/WEB-INF/flows/saml-validate-request.xml +++ b/services/idp/src/main/webapp/WEB-INF/flows/saml-validate-request.xml @@ -106,6 +106,7 @@ <input name="realm" value="flowScope.realm" /> <input name="home_realm" value="null" /> <input name="return_address" value="flowScope.consumerURL" /> + <input name="request_context" value="flowScope.request_context" /> <output name="home_realm" /> <output name="idpToken" /> @@ -139,13 +140,13 @@ <output name="home_realm" /> <output name="idpToken" /> <output name="saml_authn_request" /> - <output name="RelayState" /> + <output name="request_context" /> <transition on="requestRpToken" to="requestRpToken"> <set name="flowScope.home_realm" value="currentEvent.attributes.home_realm" /> <set name="flowScope.idpToken" value="currentEvent.attributes.idpToken" /> <set name="flowScope.saml_authn_request" value="currentEvent.attributes.saml_authn_request" /> - <set name="flowScope.RelayState" value="currentEvent.attributes.RelayState" /> + <set name="flowScope.RelayState" value="currentEvent.attributes.request_context" /> </transition> <transition on="viewBadRequest" to="viewBadRequest" /> <transition on="scInternalServerError" to="scInternalServerError" /> http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/44633f3d/services/idp/src/main/webapp/WEB-INF/flows/signin-response.xml ---------------------------------------------------------------------- diff --git a/services/idp/src/main/webapp/WEB-INF/flows/signin-response.xml b/services/idp/src/main/webapp/WEB-INF/flows/signin-response.xml index 09a9716..4f63155 100644 --- a/services/idp/src/main/webapp/WEB-INF/flows/signin-response.xml +++ b/services/idp/src/main/webapp/WEB-INF/flows/signin-response.xml @@ -66,12 +66,11 @@ subflow to get a RP token from the STS. <end-state id="requestRpToken"> <output name="home_realm" value="flowScope.home_realm" /> - <output name="wctx" value="flowScope.wctx" /> + <output name="request_context" value="flowScope.request_context" /> <output name="wreply" value="flowScope.wreply" /> <output name="realm" value="flowScope.realm" /> <output name="idpToken" value="flowScope.idpToken" /> <output name="saml_authn_request" value="flowScope.saml_authn_request" /> - <output name="RelayState" value="flowScope.RelayState" /> </end-state> <!-- abnormal exit point : Http 400 Bad Request -->
