1

我在使用 spring security 登录用户时遇到问题。我正在使用弹簧安全 3.1。我想为访问模式“/brand/**”的用户使用单独的身份验证管理器。所以我在“http”标签中指定了模式和 authentication-manager-ref。我编写了一个自定义用户详细信息服务。

下面是我的 spring-security.xml 配置。如果我删除 pattern="/brand/**" 登录表单提交将带入我的自定义用户详细信息服务。但是,当我在“http”标签中保留 pattern="/brand/**" 时,它不起作用。

   <http auto-config="true" pattern="/brand/**" use-expressions="true" authentication-manager-ref="brandAuthenticationManager">
    <intercept-url pattern="/brandLogin" access="permitAll" />
    <intercept-url pattern="/brand/activity/**" access="hasRole('BRAND_USER')" />
    <form-login login-page="/brandLogin" authentication-failure-url="/brand/login/failure"
        default-target-url="/" />

    <access-denied-handler error-page="/brand/denied" />

    <logout invalidate-session="true" logout-success-url="/brand/logout/success"
        logout-url="/brand/logout" />
</http>


   <authentication-manager alias="brandAuthenticationManager">
    <authentication-provider user-service-ref="customBrandUserDetailsService">
        <password-encoder ref="passEncoder">
            <salt-source user-property="salt" />
        </password-encoder>

    </authentication-provider>
</authentication-manager>

<beans:bean id="customBrandUserDetailsService" class="com.myproj.service.CustomBrandUserDetailsService"></beans:bean>

关于为什么会这样发生的任何想法?请帮忙 ...

4

0 回答 0