在spring mvc web module中添加使用spring security 模块,需要注入用户验证模块,可是加入配置的验证模块后,其中获取用户验证的部分没有被执行,反而老是执行匿名过滤,想问一下这个到底是什么问题?
配置代码:
<security:http auto-config="true" use-expressions="true" access-denied-page="/auth/denied" >
<security:intercept-url pattern="/services/auth/admin" access="hasRole('ROLE_ADMIN')"/>
<security:intercept-url pattern="/services/auth/userauth" access="hasRole('ROLE_USER')"/>
<security:form-login
login-page="/services/auth/login"
authentication-failure-url="/services/auth/login_error?error=true"
default-target-url="/services/auth/admin"/>
<security:logout
invalidate-session="true"
logout-success-url="/auth/login"
logout-url="/auth/logout"/>
</security:http>
<security:authentication-manager>
<security:authentication-provider user-service-ref="userService">
</security:authentication-provider>
</security:authentication-manager>
<bean id="userService"
class="org.test.spring.mvc.web.impl.UserServiceImpl"/>
其中的userservice类是implement UserDetailsService 接口的
public class UserServiceImpl implements UserDetailsService{
}
按照步骤来说在登录页面,输入username 和password以后,应该会进入此类进行用户判断,但是不知为何,没有进入此类。login 页面的提交是post请求到../services/auth/userauth.
请大家帮忙看一下原因,谢谢。
你要要修改pattern为
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当然可以自定制自己的providerManager 来实现url重新判定,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
评论
全部评论 (0)