gpt4 book ai didi

java - 使用 Spring Security 取消 Spring 流的安全

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:53 25 4
gpt4 key购买 nike

我正在开发一个使用 Spring Webflow 和 Spring Security 的应用程序。我对两者都是新手,处于学习阶段。我的问题是如何取消特定 Spring 流的安全。我有下面的 ma​​in-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 中,我有这个配置,我认为它可以保护所有网络流 -

<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 安全的帮助/建议将不胜感激。提前致谢。

最佳答案

假设您使用/main访问您的流程这似乎是您的配置中的情况,您应该能够使用以下命令“取消安全”:

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

[编辑]

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

<secured attributes="ROLE_USER" />

关于java - 使用 Spring Security 取消 Spring 流的安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44490606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com