今天在用SpringBoot整合Shiro时,发现一个有趣的问题,算是对以前的知识点疏忽的补充吧。
是的,你没看错,我先出SSM整合Shiro里该知识点记录起,因为SSM权限倾向于使用Shiro,而SpringBoot的权限倾向于使用Spring Security。
看看SSM中使用Shiro的知识点:
我们知道在配置SSM整合Shiro时,web.xml中的shiro过滤器的要配置一个代理对象DelegatingFilterProxy,DelegatingFilterProxy 实际上是 Filter 的一个代理对象,Spring 会到 IOC 容器中查找和 对应的 filter bean. 也可以通过 targetBeanName 的初始化参数来配置 filter bean 的 id。当然和web.xml中的targetBeanName里的一致也是可以的。
shiro的xml配置文件的注册的bean ShiroFilterFactoryBean的id 必须和 web.xml 文件中配置的 DelegatingFilterProxy 的 一致,或者和web.xml中的targetBeanName一致
于是乎我看了看源码
DelegatingFilterProxy里这个问题主要看initFilterBean,这个initFilterBean方法是在DelegatingFilterProxy的父类GenericFilterBean中定义的空实现。
说到底,这些都是一些过滤器,过滤器里的三个常见的方法相信大家都知道了
Init、doFilter、destroy这个三个方法,初始化,过滤,销毁。