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

  • 相关阅读:
    Vue项目入门实例
    批量生成删除表数据的SQL语句
    收集的一个可多选日期的日期插件,带日历、农历
    .net core EF,多个dbcontext时,迁移数据方法
    【NET】雪花算法
    URL地址中使用中文作为的参数【转】
    C# 继承 base
    SQL Like
    SecureCRT 8.5 配置自动记录日志
    CentOS 7下Samba服务器的安装与配置
  • 原文地址:https://www.cnblogs.com/wq3435/p/6275779.html
Copyright © 2011-2022 走看看