`
lizewen1987
  • 浏览: 6615 次
社区版块
存档分类
最新评论

Spring Security OAuth 学习笔记(一)

阅读更多

Spring Security OAuth学习笔记(一)(原创)

Spring Security OAuth项目是SpringOAuth协议实现的一个开源项目。提供  OAuth providersOAuth  consumers的实现。以下是个人的学习笔记仅供参考。

OAuth协议相关的参考资料:

http://oauth.net/(官网)

http://wenku.baidu.com/view/b37ed7260722192e4536f66e.htmlOauth2.0

http://netment.iteye.com/blog/945402

Spring Security OAuth相关的参考资料:

http://static.springsource.org/spring-security/oauth/(官网)

http://www.springsource.org/spring-security-oauth(官网)

https://github.com/SpringSource/spring-security-oauth/wiki/oauth2(用户指南)

https://github.com/SpringSource/spring-security-oauth/(下载)

第三方平台实现的参考资料:

http://open.weibo.com/wiki/Oauth2(新浪)

http://dev.baidu.com/wiki/connect/index.php?title=%E7%99%BE%E5%BA%A6OAuth2.0%E5%AE%98%E6%96%B9%E5%8F%82%E8%80%83%E6%96%87%E6%A1%A3(百度)

http://wiki.dev.renren.com/wiki/Authentication(人人)

  Spring Security OAuth配置

关于OAuth for Spring Security 的配置可以参考官方源码包中提供的 OAuth1.0OAuth2.0的例子。


 

         当前我所使用的版本:SpringSource-spring-security-oauth-1.0.0.M5-47-g324fb78.zip

可以根据我提供的参考资料链接地址下载相关版本。

         Spring Security OAuth的配置详解可以参考官网给出的用户指南。

 

 

  服务端配置(Provider)                  

一、过滤链配置      

客户端(consumer)获取访问票据(Access Token)时会验证客户端的合法性。

认证管理器配置:clientAuthenticationManager

{@link ClientDetailsUserDetailsService}


 

 

       该过滤链会拦截所有资源,最主要过滤的有两部分资源:

       1、授权码(Authorization  Code: /oauth/authorize

       2、开放的服务接口(Rest API

       此处与官网源码提供的例子有不同之处,加入Jasig CAS作为认证入口,可以忽略不计。


  

二、认证管理器配置

clientAuthenticationManager:验证客户端(consumer)的合法性。

authenticationManager:验证最终用户(End-User)的合法性。




三、Tokens管理

              @{link AuthorizationServerTokenServices}:接口定义了一些对Tokens(access token) 的管理方法(创建、刷新).

              @{link RandomValueTokenServices}: 采用随机生成的方式;

              @{link InMemoryTokenStore}: 采用基于内存的方式存储.


四、服务端的验证与授权流程(方式)

Spring Security OAuth实现了OAuth协议规范中定义的以下几种方式。

 

Authentication Code,又称Web Server Flow,适用于所有有Server端配合的应用和无Server端应用

Implicit Grant,又称User-Agent Flow,适用于所有无Server端配合的应用(桌面客户端需要内嵌浏览器)

Client Credentials,即采用应用公钥、密钥获取Access Token,适用于任何类型应用。

Refresh Token,即令牌刷新方式,适用于所有有Server端配合的应用

用户名密码流程(协议中Resource Owner Password Credentials Flow)。此流程适用于无法使用浏览器发起服务端和客户端验流程的应用。


五、配置服务端受保护的资源

六、Clients管理

预先注册的客户端(consumer)相关配置信息,然后颁发给每一个客户端。


 

 

  客户端配置(Consumer)

可以参考官方用户指南:

https://github.com/SpringSource/spring-security-oauth/wiki/oauth2(用户指南)

  • 大小: 5.4 KB
  • 大小: 6.7 KB
  • 大小: 16 KB
  • 大小: 10.8 KB
  • 大小: 4.5 KB
  • 大小: 4.1 KB
  • 大小: 5.3 KB
  • 大小: 10.6 KB
分享到:
评论

相关推荐

    Spring Security OAuth2.0学习笔记.zip

    Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...

    视频配套笔记_Spring Security OAuth2.0认证授权_v1.1.rar

    配合压缩包中的"配套笔记_Spring Security OAuth2.0认证授权_v1.1",读者可以详细学习如何在实际项目中设置这些组件,以及如何处理授权过程的每一个步骤。笔记可能涵盖了创建自定义授权服务器和资源服务器的配置,...

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    最详细Spring Security学习资料(源码)

    Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的安全性。它构建在Spring Framework基础之上,提供了全面的安全解决方案,包括身份验证、授权、攻击防护等功能。 Spring...

    Spring Security tutorial 学习笔记(一)

    在 `SpringSecurityTest01` 这个压缩包文件中,你可能找到了一个示例项目,它可能包含了配置类、控制器、视图和测试用例。通过分析这些代码,你可以更深入地理解如何在实际项目中应用 Spring Security。 总之,...

    SpringSecurity笔记,编程不良人笔记

    - OAuth2:SpringSecurity支持OAuth2协议,实现第三方登录和API保护。 - JWT(JSON Web Tokens):可使用JWT进行状态less的认证,提高系统的可扩展性。 - CORS(Cross-Origin Resource Sharing):SpringSecurity...

    Spring Security 资料合集

    Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用和企业级应用提供了全面的安全服务。这个框架能够处理认证、授权以及各种安全相关的功能,帮助开发者构建安全、可扩展的应用。以下...

    Spring Security笔记.rar

    Spring Security 是一个强大的且高度可定制的框架,用于为Java应用程序提供身份验证和授权服务。它主要用于保护基于Spring的...通过学习本笔记,你可以逐步掌握Spring Security的基础知识,并将其运用到实际项目中。

    狂神Spring Security静态资源

    Spring Security 是一个强大的安全框架,主要用于Java Web应用的安全管理,包括认证、授权和访问控制等。在Spring Boot中,Spring Security 提供了简洁的API和自动化配置,使得开发者能够快速集成安全功能。在这个名...

    Spring Security学习笔记(一)

    以上就是Spring Security 学习笔记的第一部分,涵盖了Spring Security的基本使用和内存认证配置。后续的学习中,你将接触到更高级的主题,如自定义认证提供者、权限控制、OAuth2集成等。继续深入学习,你将能够构建...

    springSecurityTest.zip

    这个"springSecurityTest.zip"文件是一个IDEA(IntelliJ IDEA)与MAVEN项目,设计用于帮助初学者理解并入门Spring Security。下面将详细阐述Spring Security的主要概念和其在实际开发中的应用。 首先,Spring ...

    Spring_Security权限管理_学习笔记

    在本学习笔记中,我们将深入探讨Spring Security的核心概念和配置,以及如何设计数据库表来支持权限管理。 首先,Spring Security的配置始于Web应用的入口点——`web.xml`文件。在这里,我们需要定义一个名为`...

    编程不良人的spring security笔记

    本笔记将深入探讨Spring Security的核心概念和关键组件,帮助编程不良人更好地理解和应用这个框架。 一、认证与授权基础 Spring Security 的核心功能是处理用户认证和权限授权。认证是验证用户的身份,通常通过...

    springcloud学习笔记.docx

    9. **Spring Cloud Security**:安全工具包,提供了在 Zuul 代理中中继 OAuth 客户端请求的能力。 10. **Spring Cloud Sleuth**:实现了分布式追踪,可以与 Zipkin 集成,帮助开发者分析服务间的调用链路。 11. **...

    SpringBoot-登录认证-黑马程序员学习笔记

    总的来说,"SpringBoot-登录认证-黑马程序员学习笔记"涵盖了Spring Security的基本用法,包括如何启用、自定义登录页面、认证逻辑以及权限控制。通过阅读源码和实践,开发者可以更深入地理解Spring Security的工作...

    SpringBoot经典学习笔记_springboot_SpringBoot经典学习笔记_

    SpringBoot经典学习笔记是针对Java开发者的宝贵资源,它涵盖了SpringBoot的核心概念、特性以及实践应用。SpringBoot是由Pivotal团队开发的框架,旨在简化Spring应用的初始搭建以及开发过程,通过“约定优于配置”的...

    spring笔记 spring开发教程

    这个"spring笔记"涵盖了上述所有内容,并且非常完整,对于初学者和有经验的开发者都是极好的学习资源。通过深入学习和实践,你将能够充分利用Spring框架的强大功能,提升你的开发效率和应用质量。

    SpringCloudTutorials:Spring Boot与Spring Cloud学习笔记。 WebSocket,error page,OAuth

    在Spring Boot应用中,我们可以使用Spring Security的OAuth2模块来实现这一功能。开发者可以配置OAuth2客户端以获取访问令牌,或者配置OAuth2服务器来处理授权请求。这对于构建需要用户授权才能访问某些服务的微服务...

    7天学会spring cloud教程.pdf.zip

    1. Spring Cloud Security:掌握Spring Cloud Security提供的安全解决方案,如OAuth2、JWT等。 2. Spring Cloud OAuth2:学习如何实现OAuth2认证授权,提供安全的服务访问。 第七天:实战与项目部署 1. 微服务架构...

    研究:全栈工程师学习笔记; Spring登录,shiro登录,CAS单点登录和Spring boot oauth2单点登录; Spring数据缓存,支持Redis和EHcahce; web安全,常见的网络安全漏洞以及解决思路;常规组件,尺寸redis,mq等; quartz定时任务,支持持久化数据库,动态维护启动暂停关闭; docker基本用法,常用的镜像使用,Docker-MySQL,docker- Postgres,Docker-nginx,Docker-nexus,Docker-Redis,Dock

    其他项目:Spring Cloud微服务学习笔记 Spring Boot项目实践 Java体系知识点汇总: : 网站资源链接 S3基本使用事件 数据库隔离等级验证 常用JVM命令验证 AOP实用技巧;某些打日志等 m3u解析器 知识汇总::::...

Global site tag (gtag.js) - Google Analytics