最全面试:第十章:单点登录(1),高级java工程师面试题

最后

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

早期单一服务器,用户认证

缺点:单点性能压力,无法扩展

WEB应用集群,session共享模式

解决了单点性能瓶颈。

问题:

  1. 多业务分布式数据独立管理,不适合统一维护一份session数据。

  2. 分布式按业务功能切分,用户、认证解耦出来单独统一管理。

  3. cookie中使用jsessionId 容易被篡改、盗取。

  4. 跨顶级域名无法访问。

NQ

分布式,SSO(single sign on)模式

解决 :

用户身份信息独立管理,更好的分布式管理。

可以自己扩展安全策略

跨域不是问题

缺点:

认证服务器访问压力较大。

业务流程图

认证中心模块**(oauth认证)******

数据库表:user_info,并添加一条数据!密码应该是加密的!

在设计密码加密方式时 一般是使用MD5+盐的方式进行加密和解密。

登录功能


业务:

  1. 用接受的用户名密码核对后台数据库

  2. 将用户信息写入redis,redis中有该用户视为登录状态。

  3. 用userId+当前用户登录ip地址+密钥生成token

  4. 重定向用户到之前的来源地址,同时把token作为参数附上。

生成token

JWT工具

JWT(Json Web Token) 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。

JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上

JWT 最重要的作用就是对 token信息的防伪作用。

JWT的原理,

一个JWT由三个部分组成:公共部分、私有部分、签名部分。最后由这三者组合进行base64编码得到JWT。

公共部分

主要是该JWT的相关配置参数,比如签名的加密算法、格式类型、过期时间等等。

私有部分

用户自定义的内容,根据实际需要真正要封装的信息。

最后希望可以帮助到大家!

千千万万要记得:多刷题!!多刷题!!

之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!

篇幅有限,以下只能截图分享部分的资源!!

(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)

image

(2)刷的算法题(还有左神的算法笔记)

image

(3)面经+真题解析+对应的相关笔记(很全面)

image

(4)视频学习(部分)

ps:当你觉得学不进或者累了的时候,视频是个不错的选择

在这里,最后只一句话:祝大家offer拿到手软!!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

NG开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值