2
我有多个<http.../>
元件(为了分别支持通过基本认证REST authetication和用户形式登录)以下配置:Spring Security 3.1.0.RC1:有多个<http.../>元素为什么我只能注册一个认证管理器?
<security:http auto-config="false" pattern="/service/**" create-session="never"
entry-point-ref="basicAuthenticationEntryPoint" >
<security:intercept-url pattern="/service/**" requires-channel="any" access="ROLE_REST_SERVICE" />
<security:custom-filter position="BASIC_AUTH_FILTER" ref="basicAuthenticationFilter" />
</security:http>
<security:http auto-config="false" pattern="/**"
entry-point-ref="loginUrlAuthenticationEntryPoint" >
<security:logout logout-url="/logout" />
<security:anonymous enabled="false"/>
<security:custom-filter position="FORM_LOGIN_FILTER" ref="usernamePasswordAuthenticationFilter" />
<security:custom-filter position="ANONYMOUS_FILTER" ref="anonymousAuthFilter" />
</security:http>
在我的每一个要求认证两个滤波器(FORM_LOGIN_FILTER,和BASIC_AUTH_FILTER)我引用了两个不同的认证管理器
但我得到一个错误,我已经注册了一个身份验证管理器。
当我事先知道每个过滤器需要哪个身份验证提供程序时,为什么我会使用一个身份验证管理器?
我不应该使用身份验证管理器,只需将我的AuthenticationProvider
作为bean启动,并直接将其作为AuthenticationManager
传递给过滤器?
这是在相关SpringSource论坛上您应该询问SpringSecurity开发人员的一类问题。根据我的经验,他们确实回答了这类问题,但答案并不总是您想要听到的。 – 2011-03-18 04:52:20
我现在也这样做了。我发现在春季论坛上的回应是平淡无奇的,至少在春季框架论坛上。也许安全社区更加活跃。 – 2011-03-18 09:26:23