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 就不会过期

 

 

项目地址:https://github.com/byebai95/febs-shiro-learn

posted @ 2019-10-10 11:37  byebai95  阅读(217)  评论(0编辑  收藏  举报