oauth2相关理解(网上的都是互相抄还是错的,学的很累,所及决定参照官网自己整理一份)

一:首先要理解Oauth2是什么?有什么用?

	spring.io官网解释:
	The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service,either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the 	third-party application to obtain access on its own behalf.		
	
	Oauth2是一种协议,用来解决支持第三方应用程序以自己的名义获取已经被授权的资源。
	这么解释可能还是难理解:再详细解释:
	
	1.1 Oauth2是一种协议:
		可以理解为Oauth2是一种规范,规定了第三方应用获取资源必须要遵守这样的“模式”(等下再解释“模式”);
		既然是规范,可以联想到,http协议也是一种规范,JPA也是一种数据持久化规范;
		规范产生就一定伴随着很多具体实现的框架的产生,
		例如HttpClient是http协议的具体实现一种,Hibernate是JPA具体实现的一种,
		那么Oauth2的具体实现框架有security,shiro,甚至可以自己实现;应为security是spring自己的亲儿子,所以就有Spring security Oauth2,其实就是security对Oauth2的实现,spring有springBoot项目的快速构建,那当然也少不了Spring boot整合security快速构建认证授权项目。
		
	1.2“Oauth2是一种协议,用来解决支持第三方应用程序以自己的名义获取已经被授权的资源”我们可以从这几句话分离出几个名词,Oauth2对这些名词有特别解释;
		“第三方应用程序”	:第三方应用程序-client
		“获取资源过程”	:服务提供商(资源的管理员,一般指网关)
		“自己的名义”		:资源所有者-user
		“授权”			:认证授权服务器-authServer
		“资源”			:资源服务器-resourceServer
		
	1.3 “模式”
			授权码模式
			简单模式
			密码模式
			客户端模式

。。。。。。。。。。。。。。继续更新中。。。。。。。。。。。。。。。

1.需求1:

admin用户可以访问所有资源,role1用户只可以访问role1资源
	
		:只需要spring security就能实现
//spring security提供的关键类,实现2+1方法(实现2个方法,另外一个返回PasswordEncoder的方法)
WebSecurityConfigAdapter
	/**
		方法一:配置UserDetailService 数据源。设置用户信息
	**/
	config(AuthenticationManagerBuilder auth)
	/**
		方法二:校验请求资源和授权规则:(/**这个路径需要admin权限;/role1/**这个路径需要role1资源)
	**/
	config(HttpSecurity http)
	/**
		方法三:获取密码比对器,作用是用来比对用户输入密码跟程序存的(设置)密码的匹配方式
	**/
	PasswordEncoder getPasswordEncoder()

2:需求2:

role1资源部署在role1服务器,role2资源部署在role2服务器。
	场景:admin需要访问role1,再去访问role2。
	问题:访问role1时需要输入账号密码,再访问role2时也需要再输入用户密码
	解决:第一次访问role1在登陆成功后,生成一个token,存在数据库(redis或mysql)
	     中或者(启用网关服务存在网关的session中);访问role2时携带token,创建一个
	     前置过滤器验证token正确性。

	需要:springsecuriyweb 过滤器链
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值