Spring OAuth2解释了授权服务器配置

时间:2016-08-06 19:09:16

标签: java spring spring-security oauth-2.0 spring-security-oauth2

我正在尝试实现OAuth安全性并遇到了一个问题,对我来说配置类不够清楚。

在实施http://localhost:8000/search?category=title&term=hello+world 时,我有三个配置器:

  • AuthorizationServerConfigurer用于提供获取客户详细信息的方式和方式。例如,它可以是从数据库中提供注册客户端的服务。

说到ClientDetailsServiceConfigurerAuthorizationServerSecurityConfigurer我不确定他们做了什么或者应该如何配置。在documentation它只说:

  

AuthorizationServerEndpointsConfigurer:定义授权和   令牌端点和令牌服务。

也许有人可以用简单的词语解释这两个配置器做了什么,或者它们用于什么。

2 个答案:

答案 0 :(得分:8)

AuthorizationServerConfigurer的javadoc比链接文档更具信息性。 AuthorizationServerSecurityConfigurer,顾名思义,配置授权服务器本身的安全性。例如,您可以覆盖OAuth端点安全性,例如/oauth/token,提供访问被拒绝的处理程序或限制SSL访问。以下是文档中所说的内容:

  

配置授权服务器的安全性,即   实用术语/oauth/token端点。 /oauth/authorize   端点也需要是安全的,但这是一个普通的面向用户   端点,应该以与UI其余部分相同的方式加以保护,所以   这里没有涉及。 默认设置涵盖最常见的设置   要求,遵循OAuth2规范的建议,所以你   不需要在此处执行任何操作即可启动并运行基本服务器。

至于AuthorizationServerEndpointsConfigurer

  

配置授权服务器的非安全功能   端点,如令牌存储,令牌自定义,用户批准和   授权类型。除非你,否则你不应该默认做任何事情   需要密码授予,在这种情况下你需要提供一个   AuthenticationManager

以下是我的一个项目的示例:

@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
    endpoints
            .authenticationManager(authenticationManager)
            .tokenStore(jwtTokenStore())
            .tokenEnhancer(tokenEnhancer());
}

由于我使用的是密码授予,因此我提供了JwtTokenStore作为我的TokenStoreAuthenticationManager

答案 1 :(得分:1)

我正在使用spring-security-oauth,有一个有用的文档可能会帮助你:

projects.spring.io/spring-security-oauth/docs/oauth2.html