如何正确配置Spring资源服务器?

时间:2019-06-07 14:11:43

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

我有两个spring应用程序,一个作为后端服务,一个作为前端服务。用户可以使用keycloak SSO登录到前端服务。一切正常。然后,前端通过每个REST接口从后端请求数据。后端应用程序被配置为资源服务器,并且前端使用带有拦截器的rest模板将请求发送到后端。拦截器将当前访问令牌添加到请求标头中。我现在的问题是后端总是以令牌无效错误作为响应。

我遵循spring文档来设置资源服务器(后端应用程序)。

后端应用程序

@Configuration
@EnableWebSecurity
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {

    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/api/**").authenticated();
    }
}

application.yml

spring:
  security:
    oauth2:
      resource:
        user-info-uri: http://my-user-info.uri

使用邮递员,当我将前端使用的令牌放入请求标头时,我会从user-info-uri获得正确的用户信息。要正确配置后端应用程序,我还需要什么?

1 个答案:

答案 0 :(得分:0)

与谁有关:

诀窍在application.yml中。我只是删除了spring标识符(即security.oauth2.resource.user-info-uri而不是spring.security.oauth2.resource.user-info-uri),一切正常。