我有两个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获得正确的用户信息。要正确配置后端应用程序,我还需要什么?
答案 0 :(得分:0)
与谁有关:
诀窍在application.yml中。我只是删除了spring标识符(即security.oauth2.resource.user-info-uri而不是spring.security.oauth2.resource.user-info-uri),一切正常。