error-1:
项目加进spring-security后,项目启动后,任何页面都是空白,404...
Solution:
在spring-security.xml配置中
<security:form-login
login-page="/login.jsp"
login-processing-url="/login.do"
default-target-url="/index.jsp"
authentication-failure-url="/failer.jsp"
authentication-success-forward-url="/main.jsp"
/>
可能是这一段配置的问题
我是添加了 authentication-success-forward-url="/main.jsp" 之后项目登陆页面出现了
error-2:
security.authentication.BadCredentialsException: Bad credentials
Solution:
在spring-security.xml配置文件中配置了对密码的加密方式
<security:password-encoder ref="passwordEncoder"/>
作为一个简单Demo,注释掉这一句就好
error-3:
登陆页面是访问成功了,进入主页面了,但点其他页面 都是 “拒绝访问”
security AccessDeniedException: Access is denied
Solution:
在spring-security.xml文件里,配置了可访问的用户 access="ROLE_USER,ROLE_ADMIN,ROLE_user,ROLE_admin"
<security:intercept-url pattern="/**" access="ROLE_USER,ROLE_ADMIN,ROLE_user,ROLE_admin"/>
我 在userService里边是进行拼接的,
authorities.add(new SimpleGrantedAuthority("ROLE_"+r.getRoleName()));
结果是因为数据库查询出来用户名是小写的,凭借后就变成了ROLE_user,ROLE_admin;
这里可没有windows-mysql的大小写不敏感,所以权限是匹配不上的
根据数据库查询出的结果,相应的添加后边偏红语句即可
<security:intercept-url pattern="/**" access="ROLE_USER,ROLE_ADMIN,ROLE_user,ROLE_admin"/>
下面是配置spring-security的一般步骤 :
-
pom.xml
<