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

一个是通过服务器端的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

文件服务器鉴权,鉴权和认证服务器相关推荐

  1. php回源鉴权,鉴权示例

    Python版本 Demo示例如下所示. 说明 如果URL中包含中文,请进行UrlEncode编码. import re import time import hashlib import datet ...

  2. kubernetes集群安全——认证、鉴权、准入控制

    机制说明 Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务.API Server 是集群内部各个组件通信的中介,也是外部控制的入口.所以 Kubernetes 的 ...

  3. 4种常见的鉴权方式及说明

    一.什么是鉴权 鉴权(authentication)是指验证用户是否拥有访问系统的权利.传统的鉴权是通过密码来验证的.这种方式的前提是,每个获得密码的用户都已经被授权.在建立用户时,就为此用户分配一个 ...

  4. 鉴权,开放式授权,单点登陆

    鉴权,开放式授权,单点登陆 鉴权 鉴权(authentication)是指验证用户是否拥有访问系统的权利.传统的鉴权是通过密码来验证的.这种方式的前提是,每个获得密码的用户都已经被授权.在建立用户时, ...

  5. 前端鉴权的10种方式

    鉴权 鉴权(Authentication) 在信息安全领域是指对于一个声明者所声明的身份权利,对其所声明的真实性进行鉴别确认的过程. 在it领域:校验session.cookie.token的合法性和 ...

  6. API接口鉴权及加密

    前言 在为移动端做API接口时,Java服务器端对接口一般需要做两种处理. 1.对请求的接口在interceptor 做authorize鉴权 2.对请求过来的参数进行加密校验,防止参数在传递过程中被 ...

  7. 鉴权及常见的4大鉴权方式

    鉴权 鉴权是指检验用户是否拥有访问某一个系统的权限,传统的方式是通过密码进行验证,但是方法比较繁琐,现在一般不用. 鉴权分类 鉴权现在一般分为两类,一类是网络对用户的鉴定,防止非法用户占用资源,第二类 ...

  8. postman 之接口鉴权

    首先先明确一下接口鉴权的含义:简单来说鉴权就是要确定用户是否有访问系统(这里可以理解成接口)的权限 一般情况下如果发送接口请求的时候返回了 401 错误, 那么一般是接口需要鉴权 鉴权的方式有多种,下 ...

  9. 【接口测试】鉴权初了解

    文章目录 1.1 什么是鉴权? 1.2 常见的鉴权方式 1.HTTP Basic Authentication鉴权方式 HTTP Basic Authentication鉴权方式的认证过程: HTTP ...

最新文章

  1. ISME | 通过长读长宏基因组测序揭示南极土壤未培养细菌的生物合成潜力
  2. 虚假新闻检测挑战赛落幕,探寻获奖团队背后的故事
  3. 哪些情况是友情链接作弊?总结了11种方法!
  4. Tries and Ternary Search Trees in Python and Javascript
  5. 实用的 GitHub 仓库搜索技巧
  6. oracle的标准写法,oracle 表连接特有写法与标准写法
  7. mysql5.5 免编译安装及脚本启动报错深入
  8. 11gR2 Grid Infrastructure Installation prerequisites On Windows
  9. CSDN寄送的礼物,博客评选的阳光普照奖
  10. php 富文本编辑器,曾经用过的十大富文本编辑器
  11. 伺服电机算功率基本公式_伺服电机选型通用计算公式
  12. 《我们终将遇到爱与孤独》
  13. 机器学习--PCA(主成分分析)
  14. BUUCTF:[BJDCTF2020]藏藏藏
  15. 虚拟机:虚拟机三种网络连接
  16. AURIX TC397 CAN MCMCAN
  17. 用速腾16线激光雷达跑gmapping
  18. 网页设计配色应用教程之各种色彩对比分析
  19. python pymysql cursors_怎么Pythonpymysql.cursors从mysql存储过程获取INOUT返回结果
  20. 如何将PDF文件转换成TXT文档

热门文章

  1. 2007年在职攻读硕士学位全国联考答案
  2. Android 使用uInput模拟手柄设备
  3. k-阶特征交叉增强图卷积网络
  4. 驱动开发:内核R3与R0内存映射拷贝
  5. 讯雷下载php链接,[宜配屋]听图阁 - php 网址url转迅雷thunder资源下载地址的方法函数...
  6. 毕设【基于Matlab的钢筋计数】GUI,参考文献,源代码
  7. 基于Java后台(Springboot框架)+前端小程序(MINA框架)+Mysql数据库的旅游景区景点购票小程序系统设计与实现
  8. 1032-左右两边子数组的和相等
  9. 三年海外软件项目的经历
  10. pcb钻孔披锋改善报告_pcb板钻孔时的孔偏如何改善