zoukankan      html  css  js  c++  java
  • 关于记住我的设置

    @Configuration
    public class ShiroConfig {
        @Autowired
        private MyRealm myRealm;
        @Bean
        public DefaultWebSecurityManager securityManager() {
            DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
            HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
            hashedCredentialsMatcher.setHashAlgorithmName("md5");
            hashedCredentialsMatcher.setHashIterations(2);
            myRealm.setCredentialsMatcher(hashedCredentialsMatcher);
            manager.setRealm(myRealm);
            manager.setRememberMeManager(rememberMeManager());
            return manager;
        }
        /**
         * cookie 属性设置
         */
        public SimpleCookie rememberMeCookie()
        {
            SimpleCookie cookie = new SimpleCookie("rememberMe");
    //        cookie.setDomain(domain);
            cookie.setPath("/");
            cookie.setHttpOnly(true);
            cookie.setMaxAge(30 * 24 * 60 * 60);
            return cookie;
        }
    
        /**
         * 记住我
         */
        public CookieRememberMeManager rememberMeManager()
        {
            CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
            cookieRememberMeManager.setCookie(rememberMeCookie());
            cookieRememberMeManager.setCipherKey(Base64.decode("MTIzNDU2NzgxMjM0NTY3OA=="));
            return cookieRememberMeManager;
        }
        @Bean
        public ShiroFilterChainDefinition shiroFilterChainDefinition() {
            DefaultShiroFilterChainDefinition definition = new DefaultShiroFilterChainDefinition();
            definition.addPathDefinition("/doLogin", "anon");
            definition.addPathDefinition("/logout", "logout");
            definition.addPathDefinition("/**", "user");
            return definition;
        }
    
        @Bean
        public ShiroDialect shiroDialect() {
            return new ShiroDialect();
        }
    }
    

      

    修改控制doLogin方法,在UsernamePasswordToken中添加第三个参数。表示是否启用remember me功能。

    此功能应该在页面中添加一个复选框,代码中直接假设用户勾选了复选框

    @RequestMapping("/doLogin")
    public String showLogin(User user){
        Subject subject = SecurityUtils.getSubject();
        try {
            //添加第三个参数,表示是否启用rememberme功能
            subject.login(new UsernamePasswordToken(user.getUsername(),user.getPassword(),true));
            return "redirect:/showIndex";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redirect:/showLogin";
    }
    

      

  • 相关阅读:
    【C#学习笔记】 IDisposable 接口
    【C#学习笔记】 List.AddRange 方法
    Request a certificate from a certificate vendor
    How to install your SSL Certificate to your Windows Server
    How to generate a CSR in Microsoft IIS 7
    我爱你 肖厦
    OAuth2.0协议之新浪微博接口演示
    重写mouseEvent 事件 怎么实现自定义的无边框窗口移动
    原文地址:Qt数据库总结 作者:ImmenseeT
    QT+MySQL图片插入数据库并显示 2013-03-12 13:58:52
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14356086.html
Copyright © 2011-2022 走看看