- 浏览: 499037 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
spring oauth2.0
grant_type :
authorization_code — 授权码模式(即先登录获取code,再获取token)
password — 密码模式(将用户名,密码传过去,直接获取token)
client_credentials — 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)
implicit — 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
refresh_token — 刷新access_token
JWT方式
就是token不用保存在服务器中,token里面包含有用户信息(没有密码)和权限信息,资源服务器要到授权服务器对比这个token的信息是否是正确的,通过校验签名来对比这是token的正确性。
当然授权和资源服务器的加密密匙要一致才能通过签名的一致辞性.
password — 密码模式
http://localhost:8080/oauth/token?grant_type=password&username=xing&password=123456
客户端授权模式获取AccessToken
http://localhost:8080/oauth/token?grant_type=client_credentials
授权码模式
http://localhost:8080/oauth/authorize?client_id=normal-app&response_type=code&scope=read&redirect_uri=http://localhost:8080/resources/user
localhost:8088/resources/user2?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsic3ByaW5nLWJvb3QtYXBwbGljYXRpb24iXSwidXNlcl9uYW1lIjoieGluZyIsInNjb3BlIjpbInJlYWQiXSwicm9sZXMiOlt7ImF1dGhvcml0eSI6IlJPTEVfVVNFUiJ9XSwiZXhwIjoxNTAzOTk1ODI1LCJ1c2VyTmFtZSI6InhpbmciLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiOWU2ZjM2NmItYTI1Ni00N2FiLTk2YWUtMTU1M2RkYTZiN2M1IiwiY2xpZW50X2lkIjoibm9ybWFsLWFwcCJ9.qOI-x9Jhcr34UtyjQ-6JQY0qvD1VVDF8HNhuXUsTaTo
检验token
http://localhost:8080/oauth/check_token?token=3f44c676-11eb-4c13-8cf3-b337f5079d33
跨服务器可用
http://localhost:8080/oauth/token?grant_type=password&username=xing&password=123456
http://localhost:9090/resources/user2?access_token=592dcf44-568f-419b-b24b-9c31bb9fae75
HttpSecurity
anonymous().disable() //匿名的
formLogin().permitAll()//允许所有用户访问这个页面
hasRole("USER")//有这个权限有才能访问
antMatchers("/").hasRole("USER")
authorizeRequests()//授权请求
authenticated()//要求在执行该请求时,必须已经登录了应用
.anyRequest().permitAll();//其他请求
csrf().disable() //CSRF攻击
.httpBasic() // 使用 Basic 认证
.antMatchers("/css/**", "/js/**", "/fonts/**", "/index").permitAll() // 都可以访问
.antMatchers("/h2-console/**").permitAll() // 都可以访问
.antMatchers("/users/**").hasRole("USER") // 需要相应的角色才能访问
.antMatchers("/admins/**").hasRole("ADMIN") // 需要相应的角色才能访问
@EnableAuthorizationServer
用户负责保证授权Endpoint(/oauth/authorize)的安全,但Token Endpoint(/oauth/token)将自动使用http basic的客户端凭证来保证安全
@EnableResourceServer
Oauth2 资源服务器的便利方法,开启了一个spring security的filter,这个filter通过一个Oauth2的token进行认证请求。
用者应该增加这个注解,并提供一个ResourceServerConfigurer类型的Bean(例如通过ResouceServerConfigurerAdapter)来指定资源(url路径和资源id)的细节。
@EnableResourceServer注解把一个 OAuth2AuthenticationProcessingFilter 类型过滤器添加到Spring Security 过滤链中。
ResourceServerConfiguration 和 SecurityConfiguration上配置的顺序, SecurityConfiguration一定要在ResourceServerConfiguration 之前,
因为spring实现安全是通过添加过滤器(Filter)来实现的,基本的安全过滤应该在oauth过滤之前, 所以在SecurityConfiguration设置@Order(2),
在ResourceServerConfiguration上设置@Order(6)
@EnableOAuth2Client
(spring-security-oauth2注解详解):http://www.cnblogs.com/davidwang456/p/6480681.html
(OAuth 2.0 认证的原理与实践):http://blog.csdn.net/kkkloveyou/article/details/65531491
http://blog.csdn.net/u014453515/article/details/53406557
http://blog.csdn.net/zhoucheng05_13/article/details/60467234
http://blog.csdn.net/libaineu2004/article/details/38384487
配置多个认证模块时,只要一个符合就会通过的。前面的认证过了后面的就不会进行认证了.
参考:http://wwwcomy.iteye.com/blog/2230265
参考:http://www.oschina.net/translate/oauth-2-developers-guide
参考:http://lxgandlz.cn/403.html
参考:http://lxgandlz.cn/404.html
参考:http://andaily.com/spring-oauth-server/db_table_description.html
参考:http://blog.csdn.net/neosmith/article/details/52539927
参考:http://www.jfox.info/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E7%9A%84springsecurityoauth2%E4%B8%80.html
参考:http://www.oschina.net/code/snippet_2429270_56647
参考:http://blog.csdn.net/neosmith/article/details/52539927
参考:http://blog.csdn.net/haiyan_qi/article/details/52384734
参考:https://github.com/niuyuzhou/staffManager
参考:http://www.leftso.com/blog/136.html
grant_type :
authorization_code — 授权码模式(即先登录获取code,再获取token)
password — 密码模式(将用户名,密码传过去,直接获取token)
client_credentials — 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向’服务端’获取资源)
implicit — 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
refresh_token — 刷新access_token
JWT方式
就是token不用保存在服务器中,token里面包含有用户信息(没有密码)和权限信息,资源服务器要到授权服务器对比这个token的信息是否是正确的,通过校验签名来对比这是token的正确性。
当然授权和资源服务器的加密密匙要一致才能通过签名的一致辞性.
password — 密码模式
http://localhost:8080/oauth/token?grant_type=password&username=xing&password=123456
客户端授权模式获取AccessToken
http://localhost:8080/oauth/token?grant_type=client_credentials
授权码模式
http://localhost:8080/oauth/authorize?client_id=normal-app&response_type=code&scope=read&redirect_uri=http://localhost:8080/resources/user
localhost:8088/resources/user2?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsic3ByaW5nLWJvb3QtYXBwbGljYXRpb24iXSwidXNlcl9uYW1lIjoieGluZyIsInNjb3BlIjpbInJlYWQiXSwicm9sZXMiOlt7ImF1dGhvcml0eSI6IlJPTEVfVVNFUiJ9XSwiZXhwIjoxNTAzOTk1ODI1LCJ1c2VyTmFtZSI6InhpbmciLCJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwianRpIjoiOWU2ZjM2NmItYTI1Ni00N2FiLTk2YWUtMTU1M2RkYTZiN2M1IiwiY2xpZW50X2lkIjoibm9ybWFsLWFwcCJ9.qOI-x9Jhcr34UtyjQ-6JQY0qvD1VVDF8HNhuXUsTaTo
检验token
http://localhost:8080/oauth/check_token?token=3f44c676-11eb-4c13-8cf3-b337f5079d33
跨服务器可用
http://localhost:8080/oauth/token?grant_type=password&username=xing&password=123456
http://localhost:9090/resources/user2?access_token=592dcf44-568f-419b-b24b-9c31bb9fae75
HttpSecurity
anonymous().disable() //匿名的
formLogin().permitAll()//允许所有用户访问这个页面
hasRole("USER")//有这个权限有才能访问
antMatchers("/").hasRole("USER")
authorizeRequests()//授权请求
authenticated()//要求在执行该请求时,必须已经登录了应用
.anyRequest().permitAll();//其他请求
csrf().disable() //CSRF攻击
.httpBasic() // 使用 Basic 认证
.antMatchers("/css/**", "/js/**", "/fonts/**", "/index").permitAll() // 都可以访问
.antMatchers("/h2-console/**").permitAll() // 都可以访问
.antMatchers("/users/**").hasRole("USER") // 需要相应的角色才能访问
.antMatchers("/admins/**").hasRole("ADMIN") // 需要相应的角色才能访问
@EnableAuthorizationServer
用户负责保证授权Endpoint(/oauth/authorize)的安全,但Token Endpoint(/oauth/token)将自动使用http basic的客户端凭证来保证安全
@EnableResourceServer
Oauth2 资源服务器的便利方法,开启了一个spring security的filter,这个filter通过一个Oauth2的token进行认证请求。
用者应该增加这个注解,并提供一个ResourceServerConfigurer类型的Bean(例如通过ResouceServerConfigurerAdapter)来指定资源(url路径和资源id)的细节。
@EnableResourceServer注解把一个 OAuth2AuthenticationProcessingFilter 类型过滤器添加到Spring Security 过滤链中。
ResourceServerConfiguration 和 SecurityConfiguration上配置的顺序, SecurityConfiguration一定要在ResourceServerConfiguration 之前,
因为spring实现安全是通过添加过滤器(Filter)来实现的,基本的安全过滤应该在oauth过滤之前, 所以在SecurityConfiguration设置@Order(2),
在ResourceServerConfiguration上设置@Order(6)
@EnableOAuth2Client
http.authorizeRequests().antMatchers( "/swagger*/**" , "/v2/api-docs/**" , "/**/**" // 所有资源可以不登录访问 ) .permitAll();
(spring-security-oauth2注解详解):http://www.cnblogs.com/davidwang456/p/6480681.html
(OAuth 2.0 认证的原理与实践):http://blog.csdn.net/kkkloveyou/article/details/65531491
http://blog.csdn.net/u014453515/article/details/53406557
http://blog.csdn.net/zhoucheng05_13/article/details/60467234
http://blog.csdn.net/libaineu2004/article/details/38384487
配置多个认证模块时,只要一个符合就会通过的。前面的认证过了后面的就不会进行认证了.
参考:http://wwwcomy.iteye.com/blog/2230265
参考:http://www.oschina.net/translate/oauth-2-developers-guide
参考:http://lxgandlz.cn/403.html
参考:http://lxgandlz.cn/404.html
参考:http://andaily.com/spring-oauth-server/db_table_description.html
参考:http://blog.csdn.net/neosmith/article/details/52539927
参考:http://www.jfox.info/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E7%9A%84springsecurityoauth2%E4%B8%80.html
参考:http://www.oschina.net/code/snippet_2429270_56647
参考:http://blog.csdn.net/neosmith/article/details/52539927
参考:http://blog.csdn.net/haiyan_qi/article/details/52384734
参考:https://github.com/niuyuzhou/staffManager
参考:http://www.leftso.com/blog/136.html
- demo-security-oauth2-authorizationServer.zip (30.8 KB)
- 下载次数: 3
- demo-security-oauth-resources.zip (19.1 KB)
- 下载次数: 3
- demo-security-oauth2-authorizationServer(密码模式).zip (30.8 KB)
- 下载次数: 5
- demo-security-oauth2-authorizationServer(code模式).zip (31.2 KB)
- 下载次数: 4
- demo-security-oauth-resources(code模式).zip (19 KB)
- 下载次数: 2
- ecurity-oauth2-authorizationServerTest(JDBC).zip (31 KB)
- 下载次数: 2
- 跨服务器可用.zip (32.8 KB)
- 下载次数: 3
- JDBC_code.zip (33.2 KB)
- 下载次数: 2
- security-oauth2-codeTest(基础校验和oauth校验).zip (28.4 KB)
- 下载次数: 5
发表评论
-
每天学到的技术点3
2022-02-21 20:01 2501.TEXT与BLOB的区别,二者 ... -
springboot tomcat 参数配置与数据库连接池多少的性能分析
2021-05-12 22:15 565参数配置与数据库连接池多少的性能分析 tomcat线程数 ... -
springBoot tomcat配置参数说明
2021-05-12 09:13 3029#最大连接数 server.tomcat.max-connec ... -
log4j2应用
2020-07-23 14:16 367https://blog.csdn.net/giventian ... -
文件上传下载
2020-07-06 13:16 4241.文件ID,名字(源,目标),大小,路径(/aa/bb/s. ... -
Spring Boot中整合Sharding-JDBC
2018-11-26 18:03 3450Spring Boot中整合Sharding-JDBC ... -
spring boot 集成 shiro
2018-08-06 10:01 490spring boot 集成 shiro shiro(权限 ... -
spring security
2017-07-07 17:18 926spring security security,就是实现了一 ... -
oneAPM 在SpringBoot中的应用
2017-02-28 11:23 961oneAPM 在SpringBoot中的应用 下载 One ... -
SpringBootJsp例子
2017-02-22 19:52 419SpringBootJsp例子 -
Spring-boot中Http与Https兼容例子
2017-01-14 09:29 1421Spring-boot中Http与Https兼 ... -
Https 在spring-boot应用例子
2017-01-12 17:45 1025Https 在spring-boot应用例 ... -
Spring Boot webSocket应用例子
2016-11-25 16:20 1093Spring Boot webSocket应用例子 后端代 ... -
Spring boot Properties文件读取
2016-10-18 14:09 807Spring boot Properties文件读取 @C ... -
Spring boot 简单例子
2016-10-18 11:33 590Spring boot 简单例子 application. ...
相关推荐
Spring OAuth2.0 是一个广泛使用的安全框架,用于保护RESTful API和服务。它基于OAuth2.0协议,该协议允许第三方应用在用户授权下访问受保护的资源,而无需共享用户的登录凭据。这个"spring oauth2.0 例子"是一个在...
Spring Security OAuth2.0 是一个强大的安全框架,用于构建安全的Web应用和API。OAuth2.0 是一种授权框架,允许第三方应用在用户许可的情况下访问其受保护的资源,而无需共享用户凭证。本讲义结合代码将深入探讨如何...
spring security oauth2.0 需要的基础 sql 文件
Spring Security和OAuth 2.0是两个在Web应用安全领域广泛应用的框架,它们结合使用可以构建强大的单点登录(SSO)和认证授权系统。在这个系统中,`xp-sso-server`代表了认证服务器,而`xp-sso-client-a`和`xp-sso-...
Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...
在这个项目中,我们基于Spring Boot、MySQL、MyBatis以及Spring OAuth2.0来实现一个完整的SSO解决方案。 首先,Spring Boot是Java领域非常流行的快速开发框架,它简化了新Spring应用的初始搭建以及开发过程。通过...
- 使用 Spring Security OAuth2 框架,它可以简化 OAuth 2.0 的实现。首先,你需要在项目中引入相关依赖。 - 配置授权服务器,定义客户端详情,包括客户端ID、客户端秘密、授权类型等。 - 创建数据库表,用于存储...
Spring Security OAuth2.0 是一个广泛使用的Java安全框架,它为构建安全的Web应用程序提供了强大的支持。OAuth2.0是授权框架的一个标准,允许第三方应用在用户授权的情况下访问其私有资源,而无需共享用户的登录凭证...
微信OAuth2.0授权是一种广泛应用于移动应用和网站的第三方登录解决方案,主要目的是为了安全地获取用户的微信身份标识——openid,以便提供个性化服务或者与其他微信功能集成。在本文中,我们将详细探讨微信OAuth2.0...
Spring boot+Spring Security Oauth2.0,Sprint cloud+Spring Security Oauth2集成。四种认证方式。附带有代码,和案例,案例,还有视频链接。我保证看完就回,如果视频链接失效,评论回复我,我单独再给你一份。
《Spring Cloud + Vue + OAuth2.0全家桶实战:构建企业级微服务项目》 在当前的互联网开发环境中,微服务架构已经成为企业级应用的重要选择。Spring Cloud作为Java领域的微服务治理框架,Vue.js作为前端的轻量级库...
spring security 基于oauth 2.0 实现 sso 单点登录Demo 使用 spring security 基于oauth 2.0 实现 sso 单点登录Demo spring boot + spring security + spring security oauth
在这个OAuth2.0实现中,它将定义项目依赖,如Spring Security OAuth2库,用于处理OAuth2.0协议的各个步骤。可能的依赖包括`spring-security-oauth2`, `spring-web`, `spring-security-core`, `spring-security-...
一个基于spring boot、spring oauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布式锁,为生产环境多实例完全准备,数据库为b2b2c设计,拥有完整sku和下单流程的完全开源商城 前言 Mall4j项目...
对应的jar包可能包含`spring-security-oauth2`,这个包是Spring Security的一个扩展,提供了OAuth2.0的实现。 2. **Resource Server(资源服务器)**:保护了需要访问的资源,只有持有有效令牌的客户端才能访问。...
OAuth2.0是一种广泛使用的开放授权协议,它允许第三方应用在用户许可的情况下访问其存储在另一服务提供商上的私有资源。这个协议的核心是为了解决API的安全访问问题,避免用户直接将用户名和密码提供给第三方应用。...