转至:http://engle1980.blog.163.com/blog/#m=0 为了自己参考,望主人勿怪
现在很多网站都有为用户保存登陆信息(即保存Cookie)的功能,当用户下一次进入网站时,可以帮助用户自动登陆,使网站显得更加友好。笔者通过研究ACEGI项目的自动登陆源码,编写了一个安全有效的实现两星期自动登陆功能的JAVA工具类,。下面是具体的实现流程和实现代码。
先说一下流程:
1. 保存用户信息阶段:
当 用户登陆网站时,在登陆页面填写完用户名和密码后,如果用户在提交时还选择了“两星期内自动登陆”复选框,那么在后台程序中验证用户名和密码全都正确后, 还要为用户保存这些信息,以便用户下一次可以直接进入网站;如果用户没有勾选“两星期内自动登陆”复选框,则不必为用户保存信息,那么用户在下一次登陆网 站时仍需要填写用户名和密码。
在保存用户信息阶段,主要的工作是对用户的信息进行加密并保存到客户端。加密用户的信息是较为繁琐的,大致上可分为以下几个步聚:
① 得到用户名、经MD5加密后的用户密码、cookie有效时间(本文设置的是两星期,可根据自己需要修改)
② 自定义的一个webKey,这个Key是我们为自己的网站定义的一个字符串常量,这个可根据自己需要随意设置
③ 将上两步得到的四个值得新连接成一个新的字符串,再进行MD5加密,这样就得到了一个MD5明文字符串
④ 将用户名、cookie有效时间、MD5明文字符串使用“:”间隔连接起来,再对这个连接后的新字符串进行Base64编码
⑤ 设置一个cookieName,将cookieName和上一步产生的Base64编码写入到客户端。
2. 读取用户信息:
其实弄明白了保存原理,读取及校验原理就很容易做了。读取和检验可以分为下面几个步骤:
① 根据设置的cookieName,得到cookieValue,如果值为空,就不帮用户进行自动登陆;否则执行读取方法
② 将cookieValue进行Base64解码,将取得的字符串以split(“:”)进行拆分,得到一个String数组cookieValues(此操作与保存阶段的第4步正好相反),这一步将得到三个值:
cookieValues[0] ---- 用户名
cookieValues[1] ---- cookie有效时间
cookieValues[2] ---- MD5明文字符串
③ 判断cookieValues的长度是否为3,如果不为3则进行错误处理。
④ 如果长度等于3,取出第二个,即cookieValues[1],此时将会得到有效时间(long型),将有效时间与服务器系统当前时间比较,如果小于当前时间,则说明cookie过期,进行错误处理。
⑤ 如果cookie没有过期,就取cookieValues[0],这样就可以得到用户名了,然后去数据库按用户名查找用户。
⑥ 如果上一步返回为空,进行错误处理。如果不为空,那么将会得到一个已经封装好用户信息的User实例对象user
⑦ 取出实例对象user的用户名、密码、cookie有效时间(即cookieValues[1])、webKey,然后将四个值连接起来,然后进行MD5加密,这样做也会得到一个MD5明文字符串(此操作与保存阶段的第3步类似)
⑧ 将上一步得到MD5明文与cookieValues[2]进行equals比较,如果是false,进行错误处理;如果是true,则将user对象添加到session中,帮助用户完成自动登陆
相关推荐
1.代码是完整的导入到 myEclipse 中就可以使用 2.实现struts cookie 记住两周 自动登录功能 3.访问地址:http://127.0.0.1:8080/cookie/index.jsp 4.系统默认有两个账户 在 UserDao 中可以查到
本文将深入探讨Cookie如何实现自动登录,以及与之相关的源码和工具。 Cookie是Web服务器发送到用户浏览器并存储在本地的一小段数据,用于在后续请求中识别用户。它们是HTTP协议无状态特性的补充,因为HTTP本身不...
下面将详细阐述Cookie实现自动登录的原理、步骤以及相关的安全考虑。 **Cookie的基本概念与工作原理** Cookie由HTTP协议定义,主要用于管理客户端的状态。服务器在响应头中设置Set-Cookie字段,将Cookie信息传递给...
在网站开发中,实现自动登录功能是非常重要的,JAVA 通过 Session 和 Cookie 实现网站自动登录的技术是其中的一种方法。本文将详细介绍如何使用 Session 和 Cookie 实现网站自动登录的技术。 一、什么是 Session 和...
本文将详细探讨Cookie与WebView的结合使用,以及如何在iOS中实现自动登录。 一、Cookie基础 Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,用于存储用户的状态信息,如登录状态、个性化设置等。当...
本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。 如果设置了...
通过以上步骤,我们可以利用Struts2和Cookie实现自动登录功能。这个过程涉及到Web应用的安全性、用户认证以及用户体验等多个方面,因此在实际开发中需要充分考虑各种安全风险并采取相应的防护措施。
### JAVA通过Session和Cookie实现网站自动登录 在现代Web应用开发中,用户认证与授权是极为重要的环节之一。为了提供良好的用户体验,很多网站都提供了自动登录功能,即用户首次登录后,在一定时间内再次访问该网站...
当用户第一次登录某个网站时,用户可以选择用户名及密码保存的有效期时间(一天,一周,一年等等),用户在有效期内再次访问该网站时,不用再次输入用户名及密码,即可自动登录访问网站
本篇文章将深入探讨如何在Struts2框架下利用Cookie技术实现自动登录功能。 自动登录的基本思路是:当用户首次登录成功后,服务器会创建一个包含用户信息的Cookie,并将其发送到客户端浏览器。然后,当用户再次访问...
基于GO语言与chromedp库实现网站自动登录,以长期定时任务,实现三维家网站自动登录获取cookie,并更新到mysql数据库为例。Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门...
在用户下次访问网站时,浏览器会自动发送这些Cookie信息回服务器,从而实现自动填充用户名或密码,简化登录过程。这个例子中,可能使用了`HttpServletResponse.addCookie()`方法来创建和设置Cookie,并通过`...
综上所述,JSP中的Cookie自动登录是通过结合Cookie和服务器端的Session管理实现的,为用户提供便捷的登录体验,但同时也需要考虑安全性问题。在实际开发中,应结合具体业务场景选择合适的身份验证机制。
本文将详细讲解如何使用微信小程序中的cookie维护插件,实现自动设置和获取Cookie的功能,并特别关注增加的Cookie超时处理机制。 首先,理解Cookie的基本概念。Cookie是由服务器端生成,发送到客户端(浏览器)的一...
1. **存储Cookie**:在用户登录或设置偏好后,服务器返回包含用户信息的Cookie。在前端,可以使用JavaScript的`document.cookie`来获取或设置Cookie。 2. **监听事件**:在HTML输入元素上添加`input`或`focus`事件...
使用Cookie实现自动登录是指系统在用户登录成功后,系统将用户的登录信息存储在Cookie中,以便下次用户访问时可以自动登录。Cookie是Web服务器用来存储用户信息的小文本文件。 知识点5:使用Filter实现自动登录 ...
1. **Cookie登录实现**: - 验证用户输入的用户名和密码,如果匹配成功,创建一个新的Cookie。 - 使用`HttpCookie`类创建Cookie,例如: ```csharp HttpCookie authCookie = new HttpCookie("Auth"); ...
在实现自动登录的过程中,WinTest可能首先通过发送POST请求模拟用户登录,获取到SessionID,然后将SessionID保存到一个Cookie中。接着,当再次访问网站时,WinTest会检查Cookie中的SessionID,并将其附带在HTTP请求...
#### 三、实现自动登录的关键步骤 1. **设置Cookie:** 当用户登录时,服务器会在响应头中添加一个或多个Cookie。例如,在代码片段中可以看到: ```java Cookie cookie = new Cookie("SESSION_LOGIN_USERNAME", ...
综上所述,Struts2使用Cookie实现自动登录的核心在于创建和解析Cookie,以及配置过滤器来读取Cookie并恢复上下文。这个过程中涉及到了Web安全、用户认证、过滤器机制等知识点,对于开发安全、高效的Web应用非常重要...