2016-01-17 3 views
0

Я реализую класс аутентификатора и использую AuthenticationFlowContext. Когда я ссылаюсь на сервер через HTTPS, в context.getUriInfo(). GetAbsolutePath() все еще оставляет http: // {hostname}/auth/....Keycloak AuthenticationFlowContext всегда возвращает HTTP-протокол

public void authenticate(AuthenticationFlowContext context) { 

    String url = context.getUriInfo().getAbsolutePath()+"?client_id="+context.getClientSession().getClient().getClientId() 
      +"&redirect_uri="+context.getClientSession().getNote("redirect_uri") 
      +"&state="+context.getClientSession().getNote("state") 
      +"&response_type="+context.getClientSession().getNote("response_type"); 

    try { 
     url = URLEncoder.encode(url, "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 

    context.forceChallenge(Response.seeOther(URI.create(idpUrl+"idp/l?lvl=2&url="+url)).build()); 

} 

ответ

0

Вы должны настроить keycloak server и Nginx:

location/{ 
     proxy_set_header Host    $host; 
     proxy_set_header X-Real-IP   $remote_addr; 
     proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header X-Forwarded-Port 443; 

     proxy_pass http://localhost:8080; 
    } 

Https включена.

 Смежные вопросы

  • Нет связанных вопросов^_^