鉴权和认证服务器

目前登录凭证的方式无非两种:

一个是通过服务器端的session,一个是通过浏览器的cookie.

简而言之:session和cookie

常规的是通过session

步骤:

1,用户在浏览器登录

2,后台鉴权,若登录成功,则把用户信息写入session,servlet自动生成JSESSIONID 返回浏览器;

3,浏览器把JSESSIONID 写入cookie

说明:cookie是浏览器的存储文件,存储的只是JSESSIONID,而不是用户信息;

JSESSIONID 只是一个钩子,用户信息其实存储在服务器端.

比如我在浏览器登录之后,重新打开一个标签页,输入相同的地址,仍然是登录状态,因为标签页共享cookie.

也就是说我只要获取到JSESSIONID ,就可以获取用户隐私信息,比如除用户名以外的其他信息(密码,姓名,年龄等).也可以做一些敏感操作,比如修改密码

浏览器发送请求时会带上cookie

这样服务器端才知道是否登录过:

例如,我获取到JSESSIONID 之后,使用HTTP模拟发送请求:

服务器端是如何判断是否登录

Java代码

/***

* 判断是否已登录

*

* @param user2

* @return

*/

publicstaticbooleanisLogined(GenericUser user2, String loginFlag) {

if(ValueWidget.isNullOrEmpty(user2) || ValueWidget.isNullOrEmpty(user2.getUsername())

|| (!Constant2.FLAG_LOGIN_SUCCESS.equalsIgnoreCase(loginFlag))) {

returnfalse;

}else{

returntrue;

}

}

/***

* 判断是否已登录

*

* @param session

* @return

*/

publicstaticbooleanisLogined(HttpSession session) {

String loginFlag = (String) session

.getAttribute(Constant2.SESSION_KEY_LOGINED_FLAG);

GenericUser user2 = (GenericUser) session.getAttribute(Constant2.SESSION_KEY_LOGINED_USER);

returnisLogined(user2, loginFlag);

}

如果通过cookie呢?

详细流程,逻辑

(1)登录前,浏览器先向认证服务器请求一个OTP,认证服务器返回OTP,同时返回一个cookie给浏览器;

(2)认证服务器把OTP 和CCC(cookie) 挂钩;

(3)登录时连同带上OTP

(4)若登录成功,则认证服务器返回登录凭证(access token)给应用服务器;

(5)认证服务器把CCC 和登录凭证挂钩;

(6)通过CCC 可以判断用户是否有权限.

所以,

(a)可以通过CCC 获取登录凭证

(b)也可以通过OTP 获取登录凭证

根本原因:服务器把OTP 和CCC(cookie) 挂钩

那么CCC记在什么地方?

浏览器

参考:http://blog.csdn.net/hw1287789687/article/details/48373209

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,440评论 6 152
  • 转自 :http://blog.csdn.net/taoff/articles/1921009.aspx 一、术语...
    stone_yao阅读 6,266评论 0 31
  • 前言:最近发现自己在网络相关这一块基础很是欠缺,所以准备花时间了解一下,本文主要是讲http协议的一些基础,和一些...
    justCode_阅读 2,111评论 0 23
  • 注:本文转载自前端大全 背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称...
    楠小忎阅读 687评论 0 0
  • 唐恩是个16岁的可爱少年,可惜由于家境贫寒而面临辍学风险。一天,母亲收到了舅公马里奥的一封信,信中说,自己年迈,行...
    晴空月阅读 1,086评论 3 1