shiroWeb项目-记住我(自动登陆实现)(十五)

用户登陆选择“自动登陆”本次登陆成功会向cookie写身份信息,下次登陆从cookie中取出身份信息实现自动登陆。

用户身份实现java.io.Serializable接口便于反序列化

package cn.qlq.springmvc.pojo;

import java.util.Iterator;
import java.util.List;

import com.sun.org.apache.bcel.internal.generic.NEW;

/**
 * 用户身份信息,存入session 由于tomcat将session会序列化在本地硬盘上,所以使用Serializable接口
 *
 *
 */
public class ActiveUser implements java.io.Serializable {
    private String userid;//用户id(主键)
    private String usercode;// 用户账号
    private String username;// 用户名称

    private List<SysPermission> menus;// 菜单
    private List<SysPermission> permissions;// 权限

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUsercode() {
        return usercode;
    }

    public void setUsercode(String usercode) {
        this.usercode = usercode;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public List<SysPermission> getMenus() {
        return menus;
    }

    public void setMenus(List<SysPermission> menus) {
        this.menus = menus;
    }

    public List<SysPermission> getPermissions() {
        return permissions;
    }

    public void setPermissions(List<SysPermission> permissions) {
        this.permissions = permissions;
    }

}

配置rememeberMeManager

注入到securityManager

登录页面被添加记住我checkbox

测试(自动登陆后查看是否有cookie)

使用UserFilter设置记住我可以访问的资源

如果设置记住我,下次访问某些url时可以不用登陆。将记住我即可访问的地址配置让UserFilter拦截。

时间: 2024-10-22 05:32:51

shiroWeb项目-记住我(自动登陆实现)(十五)的相关文章

危险,不要随意让网站记住密码自动登陆!

为了方便用户登录,几乎所有的网站都实现了"记住密码"."自动登陆"这样似乎人性化的功能. 我也很喜欢这个功能,因为我自己的脑子实在是讨厌记东西. 为了安全起见,我的密码都设置的很复杂,满足"数字+特殊符号+英文字母大小写". 但密码一复杂,我就总记不住,就想让网站替我记住. 但殊不知,这背后隐藏着巨大的风险. 我先劝大家一声:"危险,不要随意让网站记住密码自动登陆!" 要了解事情的真相,请随我来看一看如何利用cookie实现记

学习进度条(十五周)

本周主要是对于团队开发项目的修改完善.   第十五周 所花时间(包括上课) 上课2小时,课后10小时 代码量(行) 200+ 博客量 2 了解到的知识点 服务器连接GET方法

shell实现SSH自动登陆

前言 公司开发使用docker,每次登陆自己开发机总要输入 ssh [email protected]_string,然后再确认输入password,手快了还经常会输错.作为一个懒人,肯定要找一个取巧的方式,查看了下ssh命令,由于它要进行一次跟服务器的加密交互,所以没有直接附带密码登陆的选项,只好作罢. 前些天在同事进行技术分享时,看到他竟然只输入了一行命令./test.sh就成功登陆了开发机,甚是惊异,于是回来搜索研究了一下,遂成此文. shell脚本基础 在编写ssh自动登陆脚本之前,先说

使用ssh公钥密钥自动登陆linux服务器

作为一名 linux 管理员,在多台 Linux 服务器上登陆进行远程操作是每天工作的一部分.但随着服务器的增多,每次登陆,系统都会提示输入用户名和密码,频繁的输入用户名和密码是一件让人很烦的事情.也许有人说可以用一些客户端工具,比如:SecureCRT 等,的确使用这些软件会方便很多,但是这些软件不是价格昂贵的商业软件就是依附于特定平台才能安装使用,所以我今天介绍的是使用 ssh 自带的功能实现使用客户端工具所能带来的便利,那就是使用 ssh 的公钥密钥实现自动登陆. 测试环境:操作系统:Re

教你用Java安全有效的实现两星期内自动登陆功能-Session

现在很多网站都有为用户保存登陆信息(即保存Cookie)的功能,当用户下一次进入网站时,可以帮助用户自动登陆,使网站显得更加友好.笔者通过研究ACEGI项目的自动登陆源码,编写了一个安全有效的实现两星期自动登陆功能的JAVA工具类,.下面是具体的实现流程和实现代码. 先说一下流程: 1.保存用户信息阶段: 当用户登陆网站时,在登陆页面填写完用户名和密码后,如果用户在提交时还选择了"两星期内自动登陆"复选框,那么在后台程序中验证用户名和密码全都正确后,还要为用户保存这些信息,以便用户下一

winform中Load事件和shown事件以及自动登陆的实现

winform中load事件是窗体加载的时候执行的时间.在执行的时候,窗体还没显示出来.而Shown事件窗体已经显示出来,控件加载完成,需要注意的是:如果控件设置了背景图片,那么控件的背景颜色是不显示的.如果做自动登陆,需要窗体显示完成显示几秒.可以用Timer控件.而不是在shown中暂停线程. #region 窗体加载时如果记住密码,加载密码.用户名:如果自动登录,窗体加载成功后,2s执行自动登录 /// <summary> /// 窗体加载时如果记住密码,加载密码.用户名:如果自动登录,

CentOS自动登陆

项目需要去掉CentOS登陆框直接进入系统,简单的配置即可解决. 修改文件: vim /etc/gdm/custom.conf 加入内容: [daemon] AutomaticLogin=自动登陆的用户名 AutomaticLoginEnable=True

Android记住密码自动登录的实现

我采用的是SharedPreferences来存取数据的,所以先简单的介绍一下SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置参数,它是采用xml文件存放数据的,文件存放在"/data/data<package name>/shared_prefs"目录下. 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法

cookie实现自动登陆原理

现在很多网站都有为用户保存登陆信息(即保存Cookie)的功能,当用户下一次进入网站时,可以帮助用户自动登陆,使网站显得更加友好. 笔者通过研究ACEGI项目的自动登陆源码,编写了一个安全有效的实现两星期自动登陆功能的JAVA工具类. 下面是具体的实现流程和实现代码: 先说一下流程: 1. 保存用户信息阶段: 当 用户登陆网站时,在登陆页面填写完用户名和密码后,如果用户在提交时还选择了“两星期内自动登陆”复选框,那么在后台程序中验证用户名和密码全都正确后, 还要为用户保存这些信息,以便用户下一次