org.springframework.security.access.AccessDeniedException: Access is denied

最近在做SSM整合框架的企业权限管理的项目(某马教程),碰到spring-security类的错误:Access is denied。
------------------问题是,我点开访问链接,连login.jsp都登录不上
问题描述:login.jsp访问404
解决方法: 检查spring-security.xml配置文件中以下配置:

<security:http pattern="/login.jsp" security=“none”/>
<security:http pattern="/failer.jsp" security=“none”/>
<security:http pattern="/css/" security=“none”/>
<security:http pattern="/img/
" security=“none”/>
<security:http pattern="/plugins/**" security=“none”/>

<!-- 定义跳转的具体的页面 -->
<security:form-login
        login-page="/login.jsp"
        login-processing-url="/login.do"
        default-target-url="/index.jsp"
        authentication-failure-url="/pages/failer.jsp"
        authentication-success-forward-url="/pages/main.jsp"
/>

再看login.jsp页面所在的位置:

在这里插入图片描述
问题就很明白了,路径不对。这里可以修改配置文件,或者把这login.jsp和failer.jsp移动到与pages同级的目录下。

----------------------还有登录不上的问题
问题出在form表单的提交路径:
action="${pageContext.request.contextPath}/login"
配置文件中指明的路径是:
login-processing-url="/login.do"
这两个路径不一样,所以导致这个问题。

-----------------------还有另一个角色对不上的问题,数据库中roleName的值为admin或user。而配置文件中写着:

 <security:intercept-url pattern="/**" access="ROLE_USER,ROLE_ADMIN"/>

这就需要改IUserServiceImpl的(给这个拿到的rolename加个前缀):

authorities.add(new SimpleGrantedAuthority("ROLE_"+role.getRoleName()));
发布了11 篇原创文章 · 获赞 1 · 访问量 1111
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览