zoukankan      html  css  js  c++  java
  • Shiro-RememberMe

     

     

    概述

      

     认证和记住我

      

    建议

      

     身份验证相关

      

     实现

     如果要自己做RememeberMe,需要在登录之前创建Token:UsernamePasswordToken(用户名,密码,是否记住我),且调用

    UsernamePasswordToken 的 : token.setRememeberMe(true);

    @RequestMapping("/login")
        public String login(@RequestParam("userName") String userName,
                @RequestParam("password") String password) {
    
            Subject currentUser = SecurityUtils.getSubject();
    
            if (!currentUser.isAuthenticated()) {
                UsernamePasswordToken token = new UsernamePasswordToken(userName,
                        password);
                token.setRememberMe(true); 
                try {
                    currentUser.login(token);
                } catch (AuthenticationException e) {
                    System.out.println("登录失败:" + e.getMessage());
                }
            }
            return "redirect:/list.jsp";
    
        }

     RememeberMe 实际上是由 rememeberMeManager进行配置的 rememeberMeManager是SecurityManager的一个属性,

     

    所以可以在 applicationContext的 SecurityManager 中配置 rememeberMeManager

    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
            <property name="cacheManager" ref="cacheManager"/>
            <!-- Single realm app.  If you have multiple realms, use the 'realms' property instead. -->
            <!-- 配置session的管理方式 -->
            <!-- <property name="sessionMode" value="native"/> -->
            <!-- <property name="realm" ref="jdbcRealm"/> -->
            <!-- 配置多个Realm -->
            <property name="authenticator" ref="authenticator"></property>
            
            <property name="realms">
                <list>
                    <ref bean="jdbcRealm"/>
                    <ref bean="secondRealm"/>
                </list>
            </property>
            <!-- 将cookie的作用时间配置为10s -->
            <property name="rememberMeManager.cookie.maxAge" value="10"></property>
        </bean>

    可以看到 cookie的maxAge已被修改为 10s

    当然 rememeberMeManager也可以单独配置

  • 相关阅读:
    MT【48】分式连加形式下求不等式解集的区间长度
    MT【47】求一道分式的最值
    MT【46】不动点,稳定点几何直观
    MT【45】抛物线外一点作抛物线的切线(尺规作图题)
    MT【44】抛物线不常见性质3
    MT【43】抛物线不常见性质2.
    MT【42】抛物线不常见性质1.
    MT【41】利用不等式妙消参数
    MT【40】一道联赛二试题
    MT【39】构造二次函数证明
  • 原文地址:https://www.cnblogs.com/wq3435/p/6275779.html
Copyright © 2011-2022 走看看