Моя проблема - безопасность Cloudgateway с Oauth2. Однако конфигурация Oauth2 @EnableOAuth2Sso
вызовет следующую ошибку:
Описание:
Для параметра 0 метода modifyRequestBodyGatewayFilterFactory в org.springframework.cloud.gateway.config.GatewayAutoConfiguration требуется bean-компонент типа org.springframework.http.codec.ServerCodecConfigurer, который не удалось найти.
Действие:
Рассмотрите возможность определения bean-компонента типа «org.springframework.http.codec.ServerCodecConfigurer» в вашей конфигурации.
Когда я сделал то же самое с прокси Zuul на Eureka, все работало нормально. Пожалуйста, помогите мне, как решить эту проблему.
Это проект Cloudgateway, и я пытаюсь сделать его клиентом Oauth2:
Конфигурация:
@Configuration
@EnableOAuth2Sso
public class UiSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.antMatcher("/**")
.authorizeRequests()
.antMatchers("/", "/login**")
.permitAll()
.anyRequest()
.authenticated();
}
}
приложение.yml:
server:
port: 8080
servlet:
session:
cookie:
name: UISESSION
security:
oauth2:
client:
clientId: SampleClientId
clientSecret: secret
accessTokenUri: http://localhost:8085/auth/oauth/token
userAuthorizationUri: http://localhost:8085/auth/oauth/authorize
resource:
userInfoUri: http://localhost:8085/auth/principal
spring:
application:
name: gateway
cloud:
gateway:
discovery:
locator:
enabled: false
routes:
- id: microservice1WelcomeRoute
uri: http://localhost:8083/view/welcome
predicates:
- Path=/microservice1/welcome
Я использую сервер Oauth2 по модели кода авторизации, ссылаясь на этот вопрос: