【Shiro】Shiro自动登陆
本文最后更新于 1420 天前,其中的信息可能已经有所发展或是发生改变。

Shiro自动登陆就是在cookis保存信息,这样子在设置的过期时间前把凭证保存到了浏览器客户端,再次访问就无需要再登陆。
这里只给了实现的部分的代码。

1.在Shiro配置文件里面配置。

@Bean(name="securityManager")
    public DefaultWebSecurityManager securityManager(@Qualifier("sessionManager")CustomSessionManager sessionManager, @Qualifier("cookieRememberMeManager")CookieRememberMeManager rememberMeManager) {
        DefaultWebSecurityManager manager=new DefaultWebSecurityManager();
        //配置自定义Realm
        manager.setRealm(customRealm);
        //配置自定义sessionManager
        manager.setSessionManager(sessionManager);
        //配置自定义cacheManager
        manager.setCacheManager(redisCacheManager);
        //配置自定义cookieManager,就是加多了这里
        manager.setRememberMeManager(rememberMeManager);
        HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(); //创建加密对象
        matcher.setHashAlgorithmName("md5"); //加密的算法
        matcher.setHashIterations(1);//加密次数
        customRealm.setCredentialsMatcher(matcher); //放入自定义Realm
        return manager;
    }

    //配置coookie
    @Bean(name="cookieRememberMeManager")
    public CookieRememberMeManager cookieRememberMeManager(){
        CookieRememberMeManager manager = new CookieRememberMeManager();
        SimpleCookie simpleCookie = new SimpleCookie();
        //设置过期时间,秒为单位
        simpleCookie.setName("rememberMe");
        simpleCookie.setMaxAge(86400);
        manager.setCookie(simpleCookie);
        return manager;
    }

2.使用。

在Controller里面的登陆方法里面使用一个方法setRememberMe。
值为flase或者为true

System.out.println(user.isRememberMe());
token.setRememberMe(user.isRememberMe());

3.前台传值。

可以在表单里面加多这两个就行,记得在实体类加多这一个属性让后台拿到值。

<input type="checkbox" name="rememberMe" value="true"/> 记住我 </br>
<input name="public" type="hidden" value="false">

4.测试。
在浏览器F12查看下Cookie就可以看到我们设置的rememberMe。
注意过期时间要配置下我们时区为东八区。

效果图:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇