spring boot 集成 shiro
简介
spring boot 登录模块使用 shiro 作为权限校验,导入相关依赖
<!-- shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.crazycake</groupId> <artifactId>shiro-redis</artifactId> <version>3.3.1</version> <exclusions> <exclusion> <groupId>com.ibm.icu</groupId> <artifactId>icu4j</artifactId> </exclusion> <exclusion> <groupId>net.sf.saxon</groupId> <artifactId>Saxon-HE</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId> <version>2.0.0</version> </dependency>
shiro 对 thymeleaf 依赖是在 h5 中标签可以使用权限校验,为用户更友好的展示,但如果是恶意请求,最安全的是在接口中进行的权限校验。shiro 需要进行Bean 相关配置,
此处不再进行大量代码复制,所以的配置存储在 github 仓库 (com.bai.common.authentication.ShiroConfig)
h5 中shiro 标签未生效
查看是否注入 ShiroDialect
@Bean
public ShiroDialect shiroDialect(){
return new ShiroDialect();
}
退出登录
在 ShiroConfig 中配置退出登录后的URL ,具体的退出逻辑 shiro 已经实现。实现逻辑待定
Session 超时时间
如果不做 session 配置 ,shiro 默认的 session 失效时间是30 分(shiro采用是毫秒表示)
private long globalSessionTimeout = 1800000L;
1.如何设置 session 永久有效
sessionManager.setGlobalSessionTimeout(-1000L);
session 超时时间即浏览器多久与服务器之间没有会话,如果不停的刷新则 session 就不会过期