5.springboot整合Shiro:RememberMe功能

记住我功能,使用的是cookie实现的
接之前的案例修改:
1.ShiroConfig.java中添加rememberMeManager的配置.

为了可读性,就不把所有代码堆到ShiroConfig这个类里
建一个配置类

>public class RememberMeConfig {

    /**
     * cookie设置
     * */
    public SimpleCookie rememberMeCookie(){
        //这个参数是cookie的名称,对应前端的checkbox的name = rememberMe
        SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
        //cookie生效时间30天,单位秒;
        simpleCookie.setMaxAge(2592000);
        return simpleCookie;
    }

    /**
     * cookie管理对象;记住我功能
     * @return
     */
    public CookieRememberMeManager rememberMeManager(){
        CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
        cookieRememberMeManager.setCookie(rememberMeCookie());
        // cookieRememberMeManager.setCipherKey用来设置加密的Key,参数类型byte[],字节数组长度要求16
        // cookieRememberMeManager.setCipherKey(Base64.decode("3AvVhmFLUs0KTA3Kprsdag=="));
        cookieRememberMeManager.setCipherKey("ZHANGXIAOHEI_CAT".getBytes());
        return cookieRememberMeManager;
    }

}

2注入到SecurityManager,在ShiroConfig配置bean

@Bean
DefaultWebSecurityManager securityManager() {
    DefaultWebSecurityManager manager = new DefaultWebSecurityManager ( );
    //自定义的Realm交给manager
    manager.setRealm (myRealm ( ));
    // 自定义缓存实现 使用redis
    //   manager.setCacheManager(cacheManager());
    // 自定义session管理 使用redis
  //  manager.setSessionManager(SessionManager());
    // 使用记住我,注入配置
   manager.setRememberMeManager(new RememberMeConfig ().rememberMeManager ());
    return manager;
}

3.修改login.html

<form method="post" action="/tologin">
    用户名:<input type="text" name="name"/> <br/>
    密码:<input type="password" name="password"><br/>
    <!--记住我功能-->
    <input type="checkbox" name="rememberMe">记住我<br>
    <input type="submit" value="登陆">
</form>

4.测试,使用wang5 123456登陆并选择记住我
结语:欢迎批评指正,交流~

发布了5 篇原创文章 · 获赞 3 · 访问量 56

猜你喜欢

转载自blog.csdn.net/qq_45394274/article/details/104548370
今日推荐