spring security3 自定义登录页面,无论输入什么,直接被拦截跳到错误页面

spring security 3,做数据库验证,启动没有问题,但每次点登录按钮的时候,不论输入正确或错误的用户名密码,都直接跳到错误页面,debug跟踪后发现,在InvocationSecurityMetadataSourceService中的getAttributes(Object object)方法传入的object的url值就是验证失败页面的url,感觉就是没有权限,被拦截了,请教各位,我的配置有什么问题吗?下面是代码
login.jsp
[code="jsp"]








用户名
密码


[/code]
security.xml
[code="xml"]






<!-- pattern="/**" access="ROLE_USER" /> -->
authentication-failure-url="/jsp/error.jsp" default-target-url="/jsp/index.jsp" />


error-if-maximum-exceeded="true" />
    <custom-filter ref="pawnFilter" before="FILTER_SECURITY_INTERCEPTOR" />
</http>
<beans:bean id="pawnFilter"
    class="com.sywzsh.security.PawnFilterSecurityInterceptor">
    <beans:property name="authenticationManager" ref="authenticationManager" />
    <beans:property name="accessDecisionManager" ref="pawnAccessDecisionManagerService" />
    <beans:property name="securityMetadataSource" ref="pawnSecurityDataSourceService" />
</beans:bean>

<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="userDetailsService">
    </authentication-provider>

</authentication-manager>
<!-- 查询用户信息 -->
<beans:bean id="userDetailsService" class="com.sywzsh.security.PawnUsersDetailsService" />
<!-- 决策访问器,判断是否有权限访问某个资源 -->
<beans:bean id="pawnAccessDecisionManagerService"
    class="com.sywzsh.security.PawnAccessDecisionManagerService" />
<!-- 资源数据定义,资源与角色相关联,一个资源可被哪些角色访问 -->
<beans:bean id="pawnSecurityDataSourceService" init-method="loadResourceDefine"
    class="com.sywzsh.security.PawnInvocationSecurityMetadataSourceService">

</beans:bean>

[/code]

过滤器等代码与网上教程一致,如http://andy-ghg.iteye.com/blog/1081622http://blog.csdn.net/remote_roamer/archive/2010/07/05/5713777.aspx 代码大同小异,不知道有哪位兄台遇到过这种情况。

3个回答

spring secureity3默认是有自己的权限什么表的,不知道你自己加了什么东西,应该要符合它的标准,不然应该会有问题吧,你那个获得权限的dao是自己的写的还是改的它的源码?

感觉你把角色user和admin的配置注释掉的原因吧?

不好意思,最近有点忙,不知道你debug到什么程度,我觉得有可能就是后台都验证错误了,估计是和格式有关,比如不符合它的验证什么的。。。仔细查下吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!