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

  • 相关阅读:
    Flask 请求源码分析
    Flask 上下文管理
    flask-基础知识
    分布式爬虫
    数据结构
    webpack安装和入门
    vue相关
    vue入门
    修改npm全局安装模式的路径
    Vue2+VueRouter2+Webpack+Axios
  • 原文地址:https://www.cnblogs.com/wq3435/p/6275779.html
Copyright © 2011-2022 走看看