Spring Boot с OAuth2 за обратным прокси - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в Spring Security и пытаюсь разработать приложение Spring Boot с помощью входа в Google, используя OAuth2, который работает под именем хоста: 8080.Это приложение находится за обратным прокси-сервером Apache https://url.com.

Spring Boot версии 2.1.0

Spring Security версии 5.1.1

build.gradle:

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-security")
    implementation("org.springframework.security:spring-security-oauth2-client")
    implementation("org.springframework.security:spring-security-oauth2-jose")
}

application.yml:

oauth2:
  client:
    registration:
      google:
        clientId: <clientId>
        clientSecret: <clientSecret> 
        scope: profile, email, openid

server:
  use-forward-headers: true
  servlet:
    session:
      cookie:
        http-only: false

Конфигурация Spring Security:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf()
                .disable()
            .authorizeRequests()
                .anyRequest()
                    .authenticated()
            .and()
            .oauth2Login();
    }
  }
  1. Я запрашиваю https://url.com
  2. Переадресация на https://accounts.google.com/signin/oauth/
  3. При аутентификации перенаправляется обратно на https://url.com/login/oauth2/code/google?state={state}&code={code}&scope=openid+email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.me&authuser=0&session_state={session_state}&prompt=none, время ожидания которого истекло с ошибкой:

[invalid_token_response] Произошла ошибка при попытке получить доступ к OAuth 2.0Ответ токена: ошибка ввода-вывода при запросе POST для "https://www.googleapis.com/oauth2/v4/token": Тайм-аут соединения (Тайм-аут соединения); вложенное исключение - java.net.ConnectException: Тайм-аут соединения (Тайм-аут соединения)

Эта ошибка вызвана настройками прокси-сервера или загрузочным приложением? Спасибо за помощь.

1 Ответ

0 голосов
/ 12 декабря 2018

решаемая.Я должен был установить параметры JVM:

https.proxyHost=[host]
https.proxyPort=[port] 

http.proxyHost=[host]
http.proxyPort=[port]
...