SpringSecurity(2)---记住我功能实现】的更多相关文章

SpringSecurity(2)---记住我功能实现 上一篇博客实现了认证+授权的基本功能,这里在这个基础上,添加一个 记住我的功能. 上一篇博客地址:SpringSecurity(1)---认证+授权代码实现 说明:上一遍博客的 用户数据 和 用户关联角色 的信息是在代码里写死的,这篇将从mysql数据库中读取. 一.数据库建表 这里建了三种表 一般权限表有四张或者五张,这里有关 角色关联资源表 没有创建,角色和资源的关系依旧在代码里写死. 建表sql /*创建用户表*/ CREATE TA…
Spring security记住我基本原理: 登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeService,会生成一个token,将token写入到浏览器cookie,同时RememberMeService里边还有个TokenRepository,将token和用户信息写入到数据库中.这样当用户再次访问系统,访问某一个接口时,会经过一个RememberMeAuthenticationFilt…
⒈表单添加 <form action="/authentication/form" method="post"> <table> <tr> <td>用户名:</td> <td><input id="username" type="text" name="username"></td> </tr> &l…
记住我功能的基本原理 当用户登录发起认证请求时,会通过UsernamePasswordAuthenticationFilter进行用户认证,认证成功之后,SpringSecurity 调用前期配置好的记住我功能,实际是调用了RememberMeService接口,其接口的实现类会将用户的信息生成Token并将它写入 response 的Cookie中,在写入的同时,内部的TokenRepositoryTokenRepository会将这份Token再存入数据库一份. 当用户再次访问服务器资源的时…
系列博文 项目已上传至guthub 传送门 JavaWeb-SpringSecurity初认识 传送门 JavaWeb-SpringSecurity在数据库中查询登陆用户 传送门 JavaWeb-SpringSecurity自定义登陆页面 传送门 JavaWeb-SpringSecurity实现需求-判断请求是否以html结尾 传送门 JavaWeb-SpringSecurity自定义登陆配置 传送门 JavaWeb-SpringSecurity图片验证ImageCode 传送门 JavaWeb…
<br> <input type="text" id="userName" name="userName" value="${username }" placeholder="用户名"> <br> <input type="password" id="pwd" name="pwd" maxLength=&q…
通过sharedpreferences实现记住密码功能…
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下.   复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready(function() { if ($.cookie("rmbUser") == "true") { $("#rmbUser").attr("checked", true); $("#user").val($.c…
很多门户网站都提供了记住密码功能,虽然现在的浏览器都已经提供了相应的记住密码功能 效果就是你每次进入登录页面后就不需要再进行用户名和密码的输入: 记住密码功能基本都是使用cookie来进行实现的,因此我也不例外,我进行了cookie的封装 package xidian.sl.netcredit.util; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import org.apach…
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse response Cookie username = new Cookie("username ","cookievalue"); Cookie password = new Cookie("password ","cookievalue&quo…
既然是实现记住密码的功能,那么我们就不需要从头去写了,因为在上一章中的最佳实 践部分已经编写过一个登录界面了,有可以重用的代码为什么不用呢?那就首先打开 BroadcastBestPractice 项目,来编辑一下登录界面的布局.修改 login.xml 中的代码,如下 所示: <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="mat…
登录页面的记住我功能   不能用session的原因:sessionID是以cookie的形式存在浏览器端的内存中  如果用户把浏览器关闭 则sessionID就消失     但是服务器端的session在过期时间内还是存在的 等到浏览器在 默认的过期时间内(20分钟)不在向服务器发送请求 则过了20分钟 session销毁! 前端简单模拟: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&q…
 一.谷歌浏览的残留问题 现在很多的网站都有一个需求是记住密码这个功能,为的是避免用户下次登录的时候繁琐的输入过程. 像是一些主流的浏览器(比如Chrome)都有了这个功能,而且如果你登录了Chrome账号,会永久的保存在你的账号中,在任意设备中只要你登录你的Chrome账号,都会有你保存的账号密码信息. 但是Chrome浏览器有一个bug(其实也不是bug,只是人家当初就这么设计的),如果你选择了保存密码,在你下次登录的时候,你的登录表单会变成黄色,就像这样: 原因是Chrome浏览器在给表单…
js中记住密码功能(在前端实现) 直接上例子(如果你也要实现的话注意改一些变量名称,jsp代码不包含样式) Jsp代码: <form class="am-form tpl-form-line-form" id="loginForm" action="<c:url value='/user_login.action'/>" method="post"> <div class="am-for…
在登录界面添加记住密码功能,代码如下: //设置cookie var passKey = '4c05c54d952b11e691d76c0b843ea7f9'; function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.…
之前在一次面试过程中,被问到前后端如何实现记住密码功能,所以自己也试着做,这是纯js做的. 一.实现思路 1.前端页面,自己简单写了一个页面,如下图,不喜勿喷 2.主要有三个函数 setCookie(设置cookie) getCookie((取cookie) delCookie(删除cookie) 3.用户在页面第一次填写用户名和密码之后,点击提交,提交的时候,判断记住密码复选框是否被选中,如果是选中,则调用setCookie设置cookie,否则就调用delCookie清楚cookie. 用户…
1.登录过程中的记住我功能如图: 2.这样在登录认证的时候,客户端会传递两个cookie:remember_token和Tsession 3.即使客户端不传递cookie中的Tsession,只传递remember_token的值,也能认证成功 4.当然只传递Tsession也会认证成功 5.如果登录的时候没有选择““记住我””就不会有remeber_token参数…
// 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username"); var password = document.getElementById("password"); var date=new Date(); var expiresDays=1000; //过期时间. date.setTime(date.getTime()+expiresDa…
用js实现记住密码功能,但是前端记住密码不安全,最好还是不要用.我感觉这个记住密码应该是通过与后台建立一个会话来实现. 这个效果的测试地址在:http://ofoyou.com/blog/rePassword.html <!DOCTYPE HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>j…
场景 很多登录都有记住我这个功能,在用户登陆一次以后,系统会记住用户一段时间,在这段时间,用户不用反复登陆就可以使用我们的系统.记住用户功能的基本原理如下图: 用户登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeService,会生成一个token,将token写入到浏览器cookie,同时RememberMeService里边还有个TokenRepository,将token和用户信息写入到数…
本文是Spring Security系列中的一篇.在上一篇文章中,我们通过实现UserDetailsService和UserDetails接口,实现了动态的从数据库加载用户.角色.权限相关信息,从而实现了登录及授权相关的功能.这一节就在此基础上新增,登录过程中经常使用的"记住我"功能,也就是我们经常会在各种网站登陆时见到的"两周内免登录","三天内免登录"的功能.该功能的作用就是:当我们登录成功之后,一定的周期内当我们再次访问该网站,不需要重新登…
一.解决ssh经常自动断开问题 修改 /etc/ssh/sshd_config 其中对应项为 ClientAliveInterval 30 ClientAliveCountMax 3 表示每30秒发一次心跳测试请求,如果失败3次则断开连接(数值可酌情修改) vim  ~/.ssh/config Host * ServerAliveInterval 二.ssh记住密码功能 1. 生成一个新的sshkey(如果没有的话,已存在则可直接执行第二步) 可以使用如下命令 -C "your_email@ex…
  //登录        private void btn_Login_Click(object sender, EventArgs e)        {            //记住密码            if (cb_remember.Checked == true)            { //把用户名和密码写入到程序运行目录的xtflz.dll文件中                WriteIni("My Section", this.tb_UserName.Tex…
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能. 用户名和口令 首先,我们先来说说用户名和口令的事.这并不是本站第一次谈论这个事了.如何管理自己的口令让你知道怎么管理自己的口令,破解你的口令让你知道在现代这样速度的计算速度下,用穷举法破解你的口令可能会是一件很…
Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下: 1.首先在登录页面选中RememberMe然后登录成功:如果是浏览器登录,一般会把RememberMe的Cookie写到客户端并保存下来: 2.关闭浏览器再重新打开:会发现浏览器还是记住你的: 3.访问一般的网页服务器端还是知道你是谁,且能正常访问: 4.但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,此时还是需要再进行…
在很多网站都有在登录的时候,比如说记住我 几天之内  只要再此打开这个网站,都不需要再登录的情况: 1.前台JSP增加 单选框:记住我 如 2.在处理登录的 Controller 代码中增加接收这个参数的变量如下图 默认情况下是 0    只有前台页面选中的时候,传过来  1 当 Controller 判断 isRememberMe  为 1 的时候,用户进行了记住我的动作,那么需要增加  token.setRememberMe(true); 操作 3.在shiro的配置文件中增加如下cooki…
SharedPreferences接口非常适合用来存储零散的数据.这里我们用来实现记录用户名和密码的功能.在前面我用过IO流来实现记住密码的功能.那么用SharedPreferences接口会比用IO流更加方便,代码更加简洁.也更高效. 原理:SharedPreferences接口会在xxxx路径下生成xml文件.我们根据xml文件中的key和valu来使用所存储的值. 下面我们看看运行效果 然后是布局文件 <LinearLayout xmlns:android="http://schem…
在web网页中经常可以看到记住我这样的功能,其实现原理是登陆时候在response中写入cookie,发送请求时,取出cookie判断,如果有则说明已经登陆 写cookie Cookie cookie = "); cookie.setMaxAge(**); response.addCookie(cookie); 读cookie Cookie[] cookies = request.getCookies(); boolean flag = false; if(cookies != null) {…
第一步,添加“记住我”复选框,rememberMe要设置参数 第二步,配置shiro的主配置文件 注意 rememberMeCookie对应的bean中要声明 <constructor-arg value="rememberMe"> 第三步,在用户登录的时候把UsernameAndPasswordToken的对象的rememberMe属性设置成true 第四步,用户的对象要实现序列化的接口 User对象实现序列化接口 第五步,在shiroFilter 过滤器中 原先我们在f…
一.先写一个存取 cookie的方法. function getCookie(cookiename) { var result; var mycookie = document.cookie; var start2 = mycookie.indexOf(cookiename + "="); if (start2 > -1) { start = mycookie.indexOf("=", start2) + 1; var end = mycookie.index…