当尝试使用oauth2和Facebook Graph保护某些REST端点时,我遇到了一些问题。
这种情况很简单:用户通过iOS应用程序与Facebook登录,获取令牌,然后在请求数据时将令牌传递给我的后端(带有Bearer令牌认证的POST)。
我有一个具有以下配置的资源服务器:
@Configuration
@EnableWebSecurity
@EnableResourceServer
public class OAuthConfiguration extends ResourceServerConfigurerAdapter {
@Bean
public RemoteTokenServices remoteTokenServices() {
final RemoteTokenServices tokenServices = new RemoteTokenServices();
tokenServices.setCheckTokenEndpointUrl("https://graph.facebook.com/oauth/access_token");
tokenServices.setClientId("XXXXXXXXXX");
tokenServices.setClientSecret("YYYYYYYYYYYYYY");
return tokenServices;
}
@Override
public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
resources.tokenServices(remoteTokenServices());
}
@Override
public void configure(HttpSecurity http) throws Exception {
http.requestMatchers()
.and()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/**" ).authenticated();
}
}
我希望起初只允许具有有效令牌的用户访问。