2024-04 Spring知识库集成案例:https://www.yuque.com/luoji-brfvv/rciau9/ltpdg1qlxgb1xolg
最近发时间研究了shiro-core和shiro-spring的代码,整理了spring和shiro的集成思路,然后研究jfinal社区集成shiro的各种方式,各有特点。 集成原则: 1 沿用shiro自身的核心实现、竟可能少的代码去实现逻辑。 2 简单易用和易懂 分析原理: jfinal和shiro都是通过filter实现拦截,且shiro的拦截在jfinal之前。 shiro web通过Listener来加载ini配置到context中,然后filter通过init时通过context获得配置数据;可见在shiro和jfinal集成的时候,该部分不需要改造。 shiro注解:是通过注解到java方法上实现权限判断,与jfinal集成的时候,其实就是在所有的controller类上(注意虽然注解可以使用到其它类的方法上,但是不建议这样使用);jfinal要shiro的在controller的方法上的注解生效,只需要实现jfinal的拦截器Interceptor,而具体实现(shiro-core抽象实现):AnnotationsAuthorizingMethodIntercept