Oauth2 için ayrı kimlik ve kaynak sunucuları yapılandırmaya çalışıyorum. Yetkilendirme sunucusunu başarıyla yapılandırabilir ve erişim belirteçleri kimlik doğrulaması yapabilir ve oluşturabilirim. Şimdi erişim belirteçlerini doğrulamak için api uç noktasıyla auth sunucusunda konuşabilen bir kaynak sunucusu yapılandırmak istiyorum. Aşağıda kaynak sunucu yapılandırmamdır. Ben AuthenticationManager kaynak sunucuda tüm kimlik doğrulama sunucusu auth için delege ise neden : 1. Spring Oauth2 ayrı kaynak sunucu yapılandırması
@Configuration
@EnableResourceServer
@EnableWebSecurity
public class Oauth2SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
System.out.println("Oauth2SecurityConfiguration before");
http
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/api/v1/**").authenticated();
System.out.println("Oauth2SecurityConfiguration after");
}
@Bean
public AccessTokenConverter accessTokenConverter() {
return new DefaultAccessTokenConverter();
}
@Bean
public RemoteTokenServices remoteTokenServices() {
final RemoteTokenServices remoteTokenServices = new RemoteTokenServices();
remoteTokenServices.setCheckTokenEndpointUrl("http://localhost:9000/authserver/oauth/check_token");
remoteTokenServices.setClientId("clientId");
remoteTokenServices.setClientSecret("clientSecret");
remoteTokenServices.setAccessTokenConverter(accessTokenConverter());
return remoteTokenServices;
}
@Override
@Bean
public AuthenticationManager authenticationManager() throws Exception {
OAuth2AuthenticationManager authenticationManager = new OAuth2AuthenticationManager();
authenticationManager.setTokenServices(remoteTokenServices());
return authenticationManager;
}
}
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
System.out.println("http.csrf().disable()");
http.authorizeRequests().antMatchers(HttpMethod.GET, "/api/v1/**").fullyAuthenticated();
System.out.println("http.authorizeRequests().anyRequest().authenticated()");
}
}
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true, proxyTargetClass = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
@Override
protected MethodSecurityExpressionHandler createExpressionHandler() {
return new OAuth2MethodSecurityExpressionHandler();
}
}
Soru
. (Yüklemeyi uygulama bağlamına eklemek zorundaydım)Bundan ayrı olarak aşağıdaki sorunların üstesinden geliyorum. Yetkilendirme üstbilgilerini iletmemek ve istekle birlikte belirtecine erişimimi alamam da,
. Geçiyor.
http GET "http://localhost:8080/DataPlatform/api/v1/123sw/members" HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Date: Mon, 19 Oct 2015 19:45:14 GMT Server: Apache-Coyote/1.1 Transfer-Encoding: chunked { "entities": [], "errors": [], "message": null }
filtreler yalnızca Ben istekleri aşağıdaki günlüklerini görmüyorum kerede çağrılır. Bir yerde yetkilendirmeyi önbelleğe alıyor mu?
İlkbaharda yeni yaşıyorum Yanlış bir şey yapıyorumsa lütfen bana bildirin. Ben Sen @EnableResourceServer
yeterlidir @EnableWebSecurity
Oauth2SecurityConfiguration
üzerinde gerekmez
spring-security-oauth2 : 2.0.7.RELEASE
spring-security-core : 4.0.1.RELEASE
java : 1.8
ile
ResourceServerConfigurerAdapter
public void configure(ResourceServerSecurityConfigurer resources) throws Exception
geçersiz tavsiye: //docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/config/annotation/web/configuration/EnableResourceServer.html –