У меня есть микросервисы OAuth2 с методом кода авторизации, развернутые в kubernetes.
У меня есть Ingress nginx gateway, где я зарегистрировал пути микросервисов.
Как:
"annotations": {
"ingress.kubernetes.io/secure-backends": "true",
"ingress.kubernetes.io/ssl-redirect": "false",
"kubernetes.io/ingress.class": "nginx",
"nginx.ingress.kubernetes.io/add-base-url": "true",
"nginx.ingress.kubernetes.io/rewrite-target": "/"
}
......
{
"path": "/oauth",
"backend": {
"serviceName": "oauth2service-service",
"servicePort": 8090
}
},
Внутри микросервиса Oauth2 у меня следующая конфигурация:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.requestMatchers()
.antMatchers(HttpMethod.GET, "/oauth/login", "/oauth/authorize", "/oauth/token", "/oauth/logout", "/oauth/oauth/login")
.antMatchers(HttpMethod.POST, "/oauth/login", "/oauth/oauth/login")
.and()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/oauth/login").permitAll()
.and().logout().deleteCookies("auth_code", "JSESSIONID").invalidateHttpSession(true).logoutSuccessUrl(logoutURL)
.and().csrf().disable();
http.authorizeRequests().antMatchers("/oauth/check_token").permitAll();
}
Если я настраиваю вход как:
{
"path": "/",
"backend": {
"serviceName": "oauth2service-service",
"servicePort": 8090
}
},
Работает с "path": "/", но мне нужно /ouath.
Мне понадобится следующий поток, чтобы правильно запустить мое приложение OAuth2:
/ OAuth / OAuth / авторизовать? Client_id = & response_type = код и сфера = чтение и redirect_uri = https://www.getpostman.com/oauth2/callback
/ oauth / login -> Ошибка: Ошибка сервера OAuth
введите описание изображения здесь
Правильный поток будет:
/ oauth / oauth / authorize? Client_id = & response_type = code & scope = read & redirect_uri = https://www.getpostman.com/oauth2/callback -> GET 302 http code
/ oauth / login -> GET 307 http code
/ oauth / oauth / login -> POST 302 http code
/ oauth / authorize? Client_id = & response_type = code & scope = read & redirect_uri = https://www.getpostman.com/oauth2/callback -> GET 307 http code
/ oauth / oauth / authorize? Client_id = & response_type = code & scope = read & redirect_uri = https://www.getpostman.com/oauth2/callback -> GET 302 http code
/ oauth2 / callback? Code = S9z8Jn -> GET 301 http code
Но я не знаю, как настроить OAuth2 и вход для работы перенаправлений.
Спасибо за ваше время.