现将开发文档翻译出来,因为看英文实在是比较吃力的。
首先看下官方的指南Developers Guide,OAuth的两个版都都有。本文看的是OAuth2的开发指南。
翻译如下:
Spring Security OAuth2开发指南(OAuth 2 Developers Guide)
目录
1、入门(Introduction)
2、OAuth2.0提供端(OAuth 2.0 Provider)
3、OAuth2.0提供端的实现(OAuth 2.0 Provider Implementation)
4、授权服务器的配置(Authorization Server Configuration)
4.1、配置客户端详情(Configuring Client Details)
4.2、管理Tokens(Managing Tokens)
4.3、授权类型(Grant Types)
4.4、配置端点URL(Configuring the Endpoint URLs)
5、自定义错误处理(Customizing the Error Handling)
6、资源服务器配置(Resource Server Configuration)
6.1、配置一个理解oauth表达式处理程序(Configuring An OAuth-Aware Expression Handler)
7、OAuth2.0的客户端(OAuth 2.0 Client)
7.1、配置受保护的资源(Protected Resource Configuration)
7.2、客户端的配置(Client Configuration)
7.3、访问受保护的资源(Accessing Protected Resources)
7.4、持久化客户端的Tokens(Persisting Tokens in a Client)
8、为客户端定制的外部OAuth2提供者(Customizations for Clients of External OAuth2 Providers)
正文
1、入门(Introduction)
这是支持OAuth2.0的用户指南。对于OAuth1.0,一切都是不同的,所以看它的用户指南。
本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth 2.0 Provider),第二部分是OAuth2.0的客户端(OAuth 2.0 Client)。
2、OAuth2.0提供端(OAuth 2.0 Provider)
OAuth2.0的提供端的用途是负责将受保护的资源暴露出去。配置包括建立一个可以访问受保护的资源的客户端代表。提供端是通过管理和验证可用于访问受保护的资源的OAuth 2令牌来做的。在适当的地方,提供端也必须为用户提供一个用于确认客户端 是否能够访问受保护的资源的接口(也就是一个页面或是一个窗口)。
3、OAuth 2.0提供端的实现(OAuth 2.0 Provider Implementation)
在OAuth 2提供者其实是分成授权服务和资源服务两个角色的,而这两个角色有时是存在于同一个应用程序中的,通过Spring Security OAuth你可以有选择的将它们分裂到两个应用程序中,也可以有选择的给授权服务配置多个资源服务。获取令牌(Tokens)的请求是由Spring MVC的控制器端点来处理的,访问受保护的资源是通过标准的Spring Security请求过滤器来处理的。
下面列举的端点是Spring Security过滤器链实现OAuth 2授权服务器必须的端点:
- AuthorizationEndpoint 是用于授权服务请求的。默认的URL是:/oauth/authrize。
- TokenEndpoint 是用于获取访问令牌(Access Tokens)的请求。默认的URL是:/oauth/token。
下面过滤器是实现一个OAuth2资源服务器所必须的:
- OAuth2AuthenticationProcessingFilter 这个过滤器是用于加载请求提供的一个授权了的访问令牌是否有效。
对于所有的OAuth 2.0的提供端,通过使用Spring OAuth专门的@Configuration适配器来简化配置。也可以通过XML命名空间来配置OAuth,XML的schema存在:http://www.springframework.org/schema/security/spring-security-oauth2.xsd。命令空间是http://www.springframework.org/schema/security/oauth2
4、授权服务器的配置(Authorization Server Configuration)
当你在配置授权服务器时,你不得不考虑客户端用户获取访问令牌的授权类型(例如:authorization code, user credentials, refresh token)。服务器的配置是用来提供客户端详情服务和令牌服务的实现,同时也是用于启用或禁用全部功能中的某些方面。注意,无论如何,每个客户端配置了具体的权限才能使用一定的授权机制和授权访问。即,只是因为你的提供者被配置为支持“客户端凭证”授权类型,并不意味着一个特定的客户端使用的授权类型。
@EnableAuthorizationServer注解是用于配置配置OAuth2.0授权服务器,和一些@Bean实现AuthorizationServerConfigurer(有一个空方法)
先列一个目录,待续…………e