【问题标题】:Multiple <http> tags with same authentication manager in Spring Security 3.1Spring Security 3.1 中具有相同身份验证管理器的多个 <http> 标签
【发布时间】:2013-04-03 16:54:11
【问题描述】:

我正在使用 Spring Security 3.1.2 此版本允许多个“http”标签。

我有一个应用程序,它有两个单独的登录页面,一个用于用户,另一个用于管理员。它们都将使用相同的身份验证管理器。

我已经按照以下方式构建了我的 spring-security.xml

<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>

但我收到此错误“通用匹配模式 ('/**') 在过滤器链中的其他模式之前定义,导致它们被忽略。请检查您的命名空间或 FilterChainProxy bean 配置中的排序”

如果我省略任何一个标签,它可以正常工作。

【问题讨论】:

标签: spring spring-security


【解决方案1】:

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

我自己犯了这个错误,因为我认为它只考虑了“intercept-url”元素,而我的intercept-url 元素都没有定义通用匹配模式。

确保所有 http 元素都定义了模式属性。

【讨论】:

    【解决方案2】:

    http 标签创建安全过滤器链,默认为 /**,因为您有两个具有相同默认模式的,因此错误,有意义,spring 将如何构建过滤器链。它的副本。

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      相关资源
      最近更新 更多