当前位置: 首页 > 知识库问答 >
问题:

Spring Security 3.1中具有相同身份验证管理器的多个标记

皇甫建木
2023-03-14
<sec:http pattern="/loginForm.jsp" security="none"/>
            <sec:http pattern="/loginForm2.jsp" security="none"/>
            <sec:http auto-config="true">
                <sec:intercept-url pattern="/login1*" access="ROLE_USER" />
                <sec:form-login login-page="/loginForm.jsp" default-target-url="/login1"
                    authentication-failure-url="/loginForm.jsp?login_error=1" />
                <sec:logout logout-success-url="/loginForm.jsp" />
            </sec:http>

            <sec:http auto-config="true">
                <sec:intercept-url pattern="/login2*" access="ROLE_ADMIN" />
                <sec:form-login login-page="/loginForm2.jsp" default-target-url="/login2"
                    authentication-failure-url="/loginForm2.jsp?login_error=1" />
                <sec:logout logout-success-url="/loginForm2.jsp" />
            </sec:http>



<sec:authentication-manager>
               <sec:authentication-provider>
                   <sec:user-service>
                         <sec:user name="qwertyui" password="123456" authorities="ROLE_USER" />
                         <sec:user name="asdfghjk" password="123456" authorities="ROLE_USER" />
                   </sec:user-service>
               </sec:authentication-provider>

            </sec:authentication-manager>

共有1个答案

西门奇希
2023-03-14

如果您没有在http元素上设置pattern属性,那么您的http节将默认为/**,这是一个通用匹配模式。

我自己也犯了这个错误,因为我以为这只是在考虑“intercept-url”元素,而我的intercept-url元素中没有一个定义了通用匹配模式。

确保您的所有http元素都定义了一个pattern属性。

 类似资料:
  • 我在调试身份验证问题时遇到了这个代码片段: 我在调试和摆弄用户凭证时注意到,如果第一个身份验证提供者(即< code > userdailsservice )无法对我的用户进行身份验证,那么就会远程调用我的LDAP服务器来尝试对我的用户进行身份验证。但是,如果第一个身份验证提供者成功地对我的用户进行了身份验证,则不会调用第二个身份验证提供者。 我的问题是,列出这些身份验证提供者的工作方式是否使得如

  • Yubikey PIV 管理器 Yubikey PIV 管理器是一个可以管理 PIV 相关内容的图形界面管理工具。它的命令行版本可以使用 Homebrew 来安装【译者注:macOS 平台】: ❯ brew install yubico-piv-tool 命令行版本的工具拥有更加强大的功能(例如 允许覆盖 PIN 和修改默认插槽的触摸策略),但它更容易导致用户误操作。(它很容易会覆盖现有密钥) 完

  • spring-security.xml: 在新泽西行动豆的内部是这样的: 整个应用程序构建良好,jetty服务器启动没有问题(MyAuthenticationManager和org.springframework.security.AuthenticationManager都成功地预安装了),但是当尝试使用autowired authmanager时,我得到了空指针。

  • 问题内容: 使用Passport.js是否可以为同一路由指定多个身份验证提供程序? 例如(在护照指南中),我可以在以下示例路线中使用本地策略以及Facebook和Twitter策略吗? 问题答案: Passport的中间件的构建方式使您可以在一个呼叫中使用多种策略。 但是,它是用OR顺序定义的。也就是说,只有在所有策略均未成功返回的情况下,它才会失败。 这是您将如何使用它: 换句话说,使用它的方法

  • 问题内容: 我有一个主要的领域:,子:,和其他领域,。 现在完成如下操作: login.php 在每个页面上添加: logout.php 但它仅适用于域及其子域,。 我需要以某种方式保存会话和其他域,。 如何最好地进行安全身份验证,如果有解决方案,我真的很困惑,请举例说明。 问题答案: 据我所知,跨子域之间的会话很好,但不会延续到整个新域。为此,您需要某种集中式数据方法或API。 数据库方法: 您

  • 我有一个通过X509验证的API。但是,我需要从身份验证中绕过我的执行器健康检查endpoint,这样我就可以在没有客户端证书的情况下进行健康检查。 我意识到,这可以通过使用不同的端口来实现,用于执行器endpoint将命中的服务器和管理。 我的application.yml配置如下: 我的问题是,即使使用这种配置,管理endpoint也不是我可以访问健康endpoint的地方。http://lo