问题描述
||
我正在使用Spring Security 3.1.0,并且有两个http块。一个用于REST Web服务层,我只想调用我的userManager身份验证提供程序,而不是两个身份验证提供程序。有什么方法可以将http块定向到一个特定的身份验证提供程序?
<http pattern=\"/services/**\" create-session=\"stateless\">
<intercept-url pattern=\"/**\" access=\"ROLE_USER\" />
<http-basic />
</http>
<http access-denied-page=\"/auth/denied.html\">
<form-login
login-processing-url=\"/j_spring_security_check.html\"
login-page=\"/auth/login.html\"
default-target-url=\"/registered/home.html\"
authentication-failure-url=\"/auth/login.html\" />
<logout invalidate-session=\"true\"
logout-url=\"/auth/logout.html\"
success-handler-ref=\"DClogoutSuccessHandler\"/>
<anonymous username=\"guest\" granted-authority=\"ROLE_ANONYMOUS\"/>
<custom-filter after=\"FORM_LOGIN_FILTER\" ref=\"xmlAuthenticationFilter\" />
</http>
<authentication-manager alias=\"am\">
<authentication-provider user-service-ref=\"userManager\">
<password-encoder ref=\"passwordEncoder\" />
</authentication-provider>
<authentication-provider ref=\"xmlAuthenticationProvider\" />
</authentication-manager>
解决方法
请参阅配置spring-security-3-x具有多个入口点。您必须创建一个单独的令牌并覆盖身份验证提供程序的“ 1”方法,以便提供程序仅处理该令牌。