【发布时间】:2017-06-14 19:48:34
【问题描述】:
我正在开发一个使用 Spring Webflow 和 Spring Security 的应用程序。我是新手,并且处于学习阶段。我的问题是关于如何取消特定的弹簧流量。我有以下 main-flow.xml,其内容是 -
<flow xmlns ... >
<subflow-state id="demoSubflowId" subflow="demo/subflow">
<transition to="search" />
</subflow-state>
... //There are other subflows configured here
subflow.xml 存在于另一个名为“demo”的目录中。
在 Spring security-config.xml 中,我有这个配置,我假设它可以保护所有 webflows -
<http access-decision-manager-ref="customAccessDecisionManager">
<intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" />
<form-login always-use-default-target="true" default-target-url="/spring/main" login-page="/secureLogin"
authentication-failure-url="/secureLogin" />
<logout success-handler-ref="logoutSuccessHandler" />
<custom-filter position="LAST" ref="requestInspectionFilter" />
</http>
目前应用程序中的所有流程都需要身份验证。但是现在我得到了一项任务,即为不需要身份验证的任务创建一个新的子流。这就是我在上面使用 id=demoSubflowId 创建新子流程的原因,但是每次我尝试从下面的 xhtml 代码中点击此流程时,它都会将我重定向到登录页面。
<a href="#" onclick="document.myForm.submit();" class="btn">Xhtml Unsecured demo</a>
<form name="myForm" action="${pageContext.request.contextPath}/spring/main?moduleId=mySubflowId" method="post"> </form>
谁能帮我解决如何取消特定 Spring Web 流/子流的安全?我用谷歌搜索并找到了如何从 spring-security 中排除 URL。在我当前的应用程序中,我们也有不安全的 servlet URL(如下所示)并在 security-config.xml 中配置,但我不知道如何为 Spring webflow URL 执行此操作。
<http pattern="/secureLogin*" security="none" />
<http pattern="/resetPassword" security="none" />
我们将不胜感激任何有关取消 Spring Webflow 安全的帮助/建议。提前致谢。
【问题讨论】:
标签: java spring spring-security spring-webflow spring-webflow-2