У меня есть веб-приложение, которое работает со следующей конфигурацией.Добавить OAuth2 в существующее приложение Spring Security
public class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/api/**")
.authorizeRequests()
.antMatchers("/api/open/**").permitAll()
.antMatchers("/api/data/**").authenticated()
.antMatchers("/api/user/**").hasRole("USER")
.antMatchers("/api/mgr/**").hasRole("MGR")
.antMatchers("/api/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and() .exceptionHandling().accessDeniedHandler(customBasicAuthenticationAccessDeniedHandler())
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.csrf().disable() //TODO
.httpBasic().authenticationEntryPoint(customBasicAuthenticationEntryPoint());
}
...
}
Затем я добавил,
@Configuration
@EnableAuthorizationServer
public class AuthServerConfig extends AuthorizationServerConfigurerAdapter {
...
}
и
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
//Same as WebSecurityConfigurerAdapter configure()
...
}
Из ResourceServerConfig класса теперь все вверх членом экипажа. Пробовал различные способы настройки. Но кажется, что ResourceServerConfigurerAdapter
ведут себя совершенно иначе, чем WebSecurityConfigurerAdapter
, но у меня нет ни единой подсказки, чтобы заставить это работать.
Нужно ли мне удалить WebSecurityConfigurerAdapter
и оставить только ResourceServerConfigurerAdapter
? Сделал это, но configure (HttpSecurity) ведет себя по-другому, чем я думал.
Также некоторые ответы stackoverflow рекомендуются для изменения @Order WebSecurityConfigurerAdapter
. Но ничего не работает.
Мне нужно знать, что не так, и что правильно, чем писать код.
Цените очень много, если кто-то укажет мне правильное направление.
Спасибо!
У меня такая же проблема, как только я добавлю конфигурацию с '' '@ EnableResourceServer'', моя существующая securityFilterChain будет заменена. Я попытался настроить oauth2 вручную, но конфигурация просто сумасшедшая. Вы что-нибудь узнали в среднем? – Jan