使用Spring Security解除Spring流的安全性

我正在研究一个使用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,这些URL不安全(如下所述)并在security-config.xml中配置,但我不知道如何为Spring Webflow URL执行此操作。

<http pattern="/secureLogin*" security="none" />
<http pattern="/resetPassword" security="none" />

任何帮助/建议unsecuring春季webflow将不胜感激。 提前致谢。


假设你使用/main访问你的流程,这似乎是你的配置情况,你应该能够使用下面的方式“解除它”:

<http pattern="/main" security="none" />

[编辑]

这并不完美,但在主流程中,您可以使用<secured>手动保护其他子流:

<secured attributes="ROLE_USER" />
链接地址: http://www.djcxy.com/p/39167.html

上一篇: Unsecure a Spring flow using Spring Security

下一篇: Upgrade of Spring webflow 1.0 to 2.4.2