1.循环验证,一直报AccessDeniedException
先出现了,凡是访问被保护的URL,日志就不断报错:Access is denied。
阅读了网上一篇博文,http://www.iteye.com/problems/41635,并按照修改。
无济于事,仔细检查,发现由于自己保护了"/**"URL,也就是说,如果访问一个受保护的页面,而又无权访问,就会跳转到指定的“/errors/accessDenied.jsp",但该error page 也是属于“/**”的,所以就出现循环验证的结果了,直到请求超时!
2.struts的请求没有经过springsecurity的Filter
发现struts action的请求居然没有被SS过滤。由于之前看了上述博文,立即反应过来,Filter顺序问题
!由于struts的filter先拦截了请求,并做了相应处理,返回请求,所以根本就没有ssFilter的机会了。在web.xml中调整了springsecurity的filter,将它放到struts的前面,成功。
由此也可以猜测该博文的解决方法是有疑问的了,既然springsecurity已经先拦截了请求,并且做出拒绝跳转,那么struts也就没有机会相应请求了,那就跟不存在“struts拦截了spring Security的org.springframework.security.AccessDeniedException异常”的说法了。当然没有去深究此想法!
3.UrlMatcher规则正确,却没有被匹配
自定义FilterInvocationDefinitionSource,仔细检查了匹配规则,但除了“/**”都没被匹配成功,调试发现,虽然有lowerCaseComparisons变量,并且有设值,但在匹配前并没有做toLowerCase()处理。之前一直被日志迷惑,日志显示有转换为小写的处理,但那是FilterChainProxy的内置处理!
4.登录不成功bad Credentials
配置了验证的时候MD5加密,但是数据库的测试数据却还是明文!
总结:1.有错时,不应该急着求助别人或者网上搜索(其实也是求别人吧),应该仔细阅读日志,有些问题看下日志就明白。
2.虽然解决后都觉得是些很小的问题,但是解决了这些问题也就有了相应的经验了,现在遇到总比工作遇到好。再小的问题,不解决也终究是个问题:) 自我安慰吧
!
分享到:
相关推荐
它可以让你更专注于SQL本身,而不必去考虑那些琐碎的 JDBC 代码。 在这个超市订购后台管理系统中,Spring负责管理Bean,提供事务控制;SpringMVC处理用户请求,实现业务逻辑的流转;MyBatis则负责与数据库的交互,...
2.SpringSecurity 3.MyBatis 4.部分接口遵循Restful风格 5.MySQL ## 前端技术栈 前端主要采用了: 1.Vue 2.axios 3.ElementUI 4.vue-echarts 5.mavon-editor 6.vue-router 还有其他一些琐碎的技术我...
使用Spring Security或自定义权限控制实现不同角色的权限分配。 2. **成绩录入**:教师可以通过系统录入学生的各科成绩,可能有批量导入、单个录入等方式,同时系统应能验证数据的有效性,避免输入错误。 3. **...
项目效果图登陆页面文章列表发表文章用户管理栏目管理数据统计技术栈初步技术栈初步主要采用了: 1,SpringBoot 2,SpringSecurity 3,MyBatis 4.部分接口预设Restful风格5,MySQL前端技术栈前端主要采用了: 1.Vue ...
1,SpringBoot 2,SpringSecurity 3,MyBatis 4.部分接口预设Restful风格5,MySQL 前端技术栈 前端主要采用了: 1.Vue 2.axios 3.元素UI 4,vue-echarts 5,编辑6.vue路由器 还有其他一些琐碎的技术我就不在这里...
为了确保系统的安全性,开发者可能会采用多种安全措施,例如使用HTTPS协议保障通信安全,使用Spring Security进行权限控制,防止SQL注入和XSS攻击。同时,定期备份数据库,以防数据丢失,也是系统设计的重要环节。 ...
这个API可能包含了各种编程、操作系统、网络、数据库等技术领域的琐碎但有趣的知识点,用户可以通过调用该API来进行技术知识的问答游戏或者学习。 在Java编程语言的背景下,API(Application Programming Interface...