Shiro-尚硅谷

六 shiro 会话管理

1. 概述:
在这里插入图片描述
2. 会话 相关 API

Session session = SecurityUtils.getSubject().getSession();
String sessionId = session.getId().toString();

在这里插入图片描述
3. 会话监听器
在这里插入图片描述
5. Session Dao
‘ 1)SessionDao 作用:
a:可以把 Session 写到数据库中,可对 Session 进行增删改查操作。
b:介绍:在这里插入图片描述‘ 2)Session Dao 类继承结构:在这里插入图片描述
在这里插入图片描述
要配置 sessionId 生成策略:(getSessionId() )

在这里插入图片描述
‘ 3) 会话验证调度器:(性能不好,用的不多)
在这里插入图片描述


七 shiro 缓存

1. CacheManagerAware 接口
在这里插入图片描述
2. Realm 缓存
在这里插入图片描述
在这里插入图片描述
3. Session 缓存
在这里插入图片描述

八 shiro 认证 和 记住我区别

1.概述
在这里插入图片描述
2. 认证 和 记住我区别(认证 / 记住我 二选一)
在这里插入图片描述
3. 建议(不敏感网页,认证 || 记住我 == true ,即可访问)
在这里插入图片描述
4. 身份验证相关的
在这里插入图片描述
5.配置
1)list.jsp,通过 验证/记住我 登陆,都可进行访问:
在这里插入图片描述
2)设置记住我:
在这里插入图片描述
在这里插入图片描述
3)rememberMeManager

    // 2:创建 安全管理器
    @Bean
    public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier(value = "realm") Realm realm,
                                                               RedisCacheManager redisCacheManager) {
        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
        defaultWebSecurityManager.setRealm(realm);

        //配置 redis缓存管理器,将来换成 redis 缓存管理器
        defaultWebSecurityManager.setCacheManager(redisCacheManager);
        defaultWebSecurityManager.setRememberMeManager(rememberMeManager());

        return defaultWebSecurityManager;
    }

    /**
     * cookie管理对象;记住我功能,rememberMe管理器
     *
     * @return
     */
    public CookieRememberMeManager rememberMeManager() {
        CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
        cookieRememberMeManager.setCookie(rememberMeCookie());
        //rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)
        cookieRememberMeManager.setCipherKey(Base64.decode("4AvVhmFLUs0KTA3Kprsdag=="));
        return cookieRememberMeManager;
    }

    /**
     * cookie对象;会话Cookie模板 ,默认为: JSESSIONID 问题: 与SERVLET容器名冲突,重新定义为sid或rememberMe,自定义
     *
     * @return
     */
    public SimpleCookie rememberMeCookie() {
        //这个参数是cookie的名称,对应前端的checkbox的name = rememberMe
        SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
        //setcookie的httponly属性如果设为true的话,会增加对xss防护的安全系数。它有以下特点:

        //setcookie()的第七个参数
        //设为true后,只能通过http访问,javascript无法访问
        //防止xss读取cookie
        simpleCookie.setHttpOnly(true);
        simpleCookie.setPath("/");
        //<!-- 记住我cookie生效时间30天 ,单位秒;-->
        simpleCookie.setMaxAge(2592000);
        return simpleCookie;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值