zoukankan      html  css  js  c++  java
  • Shiro自动登录

    Shiro RememberMe
    spring.xml
    <bean class="org.apache.shiro.web.mgt.DefaultWebSecurityManager" id="securityManager">
        <property name="realm" ref="realm" />
        <property name="sessionManager" ref="sessionManager" />
        <property name="rememberMeManager" ref="cookieRememberMeManager" />
    </bean>
    
    <bean class="com.imooc.cache.RedisCacheManager" id="cacheManager" />
    <bean class="org.apache.shiro.web.mgt.CookieRememberMeManager" id="cookieRememberMeManager">
        <property name="cookie" ref="cookie" />
    </bean>
    <bean class="org.apache.shiro.web.servlet.SimpleCookie" id="cookie">
        <construtor-arg value="rememberMe" />
        <property name="maxAge" value="20000000" />
    </bean>
    
    login.html
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>登录</title>
        </head>
        <body>
            <form action="subLogin" method="post">
                用户名:<input type="text" name="username" /><br>
                密码:<input type="password" name="password" /><br>
                <input type="checkbox" name="rememberMe" />记住我<br>
                <input type="submit" value="登录">
            </form>
        </body>
    </html>
    
    User.java
    public class User {
        private String username;
        private String password;
        private boolean rememberMe;
        public boolean  isRememberMe() {
            return rememberMe;
        }
        public void setRememberMe(boolean rememberMe) {
            this.rememberMe = rememberMe;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    }
    
    UserController.java
    @Controller
    public class UserController {
        @RequestMapping(value = "/subLogin", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
        @ResponseBody
        public String subLogin(User user) {
            Subject subject = SecurityUtils.getSubject();
            UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword());
            try {
                token.setRememberMe(user.isRememberMe());
                subject.login(token);
            } catch (AuthenticationException e) {
                return e.getMessage();
            }
            if (subject.hasRole("admin")) {
                return "有admin权限";
            }
            return "无admin权限";
        }
    }
    
  • 相关阅读:
    软件工程结对作业02(原创版)
    第六周学习进度条
    软件工程结对作业02(借鉴版)
    软件工程课堂测试06
    第五周学习进度条
    构建之法阅读笔记02
    软件工程个人作业03
    第四周学习进度条
    构建之法阅读笔记01
    CentOS7下解决ifconfig command not found的办法
  • 原文地址:https://www.cnblogs.com/sanjun/p/10008226.html
Copyright © 2011-2022 走看看