我在使用 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>
关于为什么会这样发生的任何想法?请帮忙 ...