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也可以单独配置

  • 相关阅读:
    springbatch入门练习(第一篇)
    rabbitmq安装错误集
    动态代理和反射概念剖析
    RPC使用rabbitmq实现
    spring amqp初步了解
    aips初步设想
    静态工厂方法和实例工厂方法及普通的bean
    HDU4403(暴搜)
    CodeForces 446B
    HDU5505
  • 原文地址:https://www.cnblogs.com/wq3435/p/6275779.html
Copyright © 2011-2022 走看看