Spring Security +Oauth2 +Spring boot 动态定义权限

Oauth2介绍:Oauth2是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的。

简单的来说,当用户登陆网站的时候,需要账号和密码,但是你没有账号和密码,你需要注册网站的账号和密码,可是你不想注册,如果我有(qq,github,微博,facebook)第三方网站的账号,直接登陆当前网站访问网站的资源就好了?有没有这种实现呢?

答案是yes,当然为统一规范,其中就用到 oauh2。

ouah2有4中实现模式(参考阮一峰的 http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)

(1)授权码模式

用户访问网站登陆的时候,选择qq登陆,facebook登陆,或者微博登陆的时候,网站将你导入qq,facebook,微博的登陆页面(也就是认证服务器)输入账号和密码,当授权成功时,将获取唯一的授权码(Auth code),然后客户端拿到这个Auth code附上早先的重定向url,向认qq,facebook,请求token,向认证服务器(qq,facebook)提交的请求头核对授权码和重定向url,确认无误,返回token和更新令牌

(2)密码模式

用户向客户端提高自己的账号和密码。客户端使用这些信息,向服务器提供商索要授权码,认证服务器认证通过以后,返回令牌,用户通过令牌就可以访问网站的资源

(3)简易模式

不通过第三方应用程序的服务器,直接在浏览器中向认证服务器索要令牌,跳过授权码这个步骤。

(4)客户端模式

指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,其实不存在授权问题。

Spring Security介绍:

Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架,使用内部使用Servlet过滤器对url的请求进行过滤,并且在应用程序处理该请求之前进行某些安全处理。 Spring Security提供有若干个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从而增强安全性。根据自己的需要,可以使用适当的过滤器来保护自己的应用程序。

Spring Security 与oath2自定义权限控制

原文地址:https://www.cnblogs.com/uqing/p/8455199.html

时间: 2024-10-13 14:30:42

Spring Security +Oauth2 +Spring boot 动态定义权限的相关文章

springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)

项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖  下面是我引入的依赖 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q

Spring Security OAuth2

Spring Security OAuth2 标签(空格分隔): Spring 1. oAuth(Open Authorization) OAuth协议为用户资源的授权(增删改查)提供了一个安全, 开放而又简易的标准. 和以往授权方式不同之处是oAuth的授权不会使第三方触及到用户的账号信息. 即第三方无需使用用户的用户名和密码就可以申请获得该用户的资源授权. 因此oAuth本身第安全是无害的. 2. Spring Security Spring Security是一个安全框架, 可以为Spri

Spring Security OAuth2 授权失败(401 问题整理

Spring Cloud架构中采用Spring Security OAuth2作为权限控制,关于OAuth2详细介绍可以参考 http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 项目中采用OAuth2四种模式中的两种,Password模式和Client模式, Password模式用于控制用户的登录,Client模式用于控制后端服务相互调用. 权限架构调整后在近期发现一些问题,由于网上资料不多,只能单步调试方式看源码 (其实带着问题看源码是最

Spring Security 解析(七) —— Spring Security Oauth2 源码解析

Spring Security 解析(七) -- Spring Security Oauth2 源码解析 ??在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .Spring Security Oauth2 等权限.认证相关的内容.原理及设计学习并整理一遍.本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知. 项目环境: JDK1.8 Spring boot 2.x Spring Security

Spring Security OAuth2 Provider 之 自定义开发

Spring OAuth2默认提供的功能难免无法满足需求,需要特殊定制,这里列举常见的几个需要特殊开发的地方. 相关文章: Spring Security OAuth2 Provider 之 最小实现 Spring Security OAuth2 Provider 之 数据库存储 Spring Security OAuth2 Provider 之 第三方登录简单演示 Spring Security OAuth2 Provider 之 自定义开发 Spring Security OAuth2 Pr

spring security oauth2 jwt 认证和资源分离的配置文件(java类配置版)

最近再学习spring security oauth2.下载了官方的例子sparklr2和tonr2进行学习.但是例子里包含的东西太多,不知道最简单最主要的配置有哪些.所以决定自己尝试搭建简单版本的例子.学习的过程中搭建了认证和资源在一个工程的例子,将token存储在数据库的例子等等 .最后做了这个认证和资源分离的jwt tokens版本.网上找了一些可用的代码然后做了一个整理, 同时测试了哪些代码是必须的.可能仍有一些不必要的代码在,欢迎大家赐教. 一.创建三个spring boot 工程,分

Spring security oauth2最简单入门环境搭建

关于OAuth2的一些简介,见我的上篇blog:http://wwwcomy.iteye.com/blog/2229889 PS:貌似内容太水直接被鹳狸猿干沉.. 友情提示 学习曲线:spring+spring mvc+spring security+Oauth2基本姿势,如果前面都没看过请及时关闭本网页. 我有信心我的这个blog应该是迄今为止使用spring security oauth2最简单的hello world app介绍了,如果你下下来附件源码还看不懂,请留言.. 其他能搜到的如h

【OAuth2.0】Spring Security OAuth2.0篇之初识

不吐不快 因为项目需求开始接触OAuth2.0授权协议.断断续续接触了有两周左右的时间.不得不吐槽的,依然是自己的学习习惯问题,总是着急想了解一切,习惯性地钻牛角尖去理解小的细节,而不是从宏观上去掌握,或者说先用起来(少年,一辈子辣么长,你这么着急合适吗?).好在前人们已经做好了很好的demo,我自己照着抄一抄也就理解了大概如何用,依旧手残党,依旧敲不出好代码.忏悔- WHAT? 项目之中实际使用OAuth2.0实现是用的Spring Security OAuth2.0,一套基于Spring S

Spring Security和Apache Shiro开发企业级权限管理系统

原理回顾什么是权限管理?权限管理是系统的安全范畴,要求必须是合法的用户才可以访问系统(用户认证),且必须具有该 资源的访问权限才可以访问该 资源(授权).认证:对用户合法身份的校验,要求必须是合法的用户才可以访问系统.授权:访问控制,必须具有该 资源的访问权限才可以访问该 资源.权限模型:标准权限数据模型包括 :用户.角色.权限(包括资源和权限).用户角色关系.角色权限关系.权限分配:通过UI界面方便给用户分配权限,对上边权限模型进行增.删.改.查操作.权限控制:基于角色的权限控制:根据角色判断