为什么是shiro?
和spring security 相比来说更见简单易懂, 能够快速的实现要求;
不和任何框架或者容器绑定, 可独立运行;
权限控制过滤器:
anon为游客可访问, authc为需要登录之后才可以访问, 其他过滤器根据情况自行选择;
配置内容:
-
securityManager 中需要包含自定义的SessionManager(不同环境shiro提供不同的session管理器), 自定义的Realm(s) , 自定义缓存器等;
-
sessionManager 需要配置需要使用的会话管理器, web相关的管理器为DefaultWebSessionManager;
-
自定义的realm(s);
-
自定义的缓存器(cacheManager);
-
自定义的权限配置 ShiroFilterFactoryBean, 包括接口可访问情况和自定义过滤器等相关信息;
登录操作Shiro执行流程图:
接口调用前shiro生效流程:
判断是否拥有访问接口权限的配置方式大体有三种:
-
通过url控制(推荐), 这种方式动态的配置各个接口的权限信息; 缺点: 需要额外的配置文件或者jdbc数据保存;
-
通过AOP的方式控制权限; 优点: 在接口上直接配置权限信息简单, 简化了配置文件或jdbc的操作; 缺点: 接口权限信息无法动态变动, 如果需要修改权限信息需要修改代码;
-
通过代码的方式控制; 优点: 除了简单的权限之外可以添加其他复杂的权限控制方式; 缺点: 同AOP方式;