Introdução
Olá pessoal!
Hoje eu vou escrever sobre um problema que estava tendo entre o Spring Netflix Zuul e o keycloak
O problema entre o Zuul e o keycloak
O que estava ocorrendo era o seguinte.
Devido a um cliente, precisamos fazer com que o keycloak fosse acessado externamente via o nosso gateway.
Porém ao fazer os testes, acessando essa tela de login do keycloak
Via o zuul e após informar o username e password estava recebendo o seguinte erro
Porém não ocorria erro no container do zuul e nem do keycloak. O único erro que ocorria, aparecia no console do navegador, mas era apenas um erro 400 e mais nada.
O que fiz para solucionar
Pois bem, como pesquisando na internet não havia achado nada, fui para documentação do spring na parte 9.4. Cookies and Sensitive Headers
Nessa parte mostra que, por padrão, a sensitveHeaders há três valores: Cookie,Set-Cookie,Authorization, como mostra o exemplo da própria documentação:
application.yml
zuul:
routes:
users:
path: /myusers/**
sensitiveHeaders: Cookie,Set-Cookie,Authorization
url: https://downstream
E na explicação abaixo, mostra o que fazer caso alguma rota precise dessas informações.
The sensitiveHeaders are a blacklist, and the default is not empty. Consequently, to make Zuul send all headers (except the ignored ones), you must explicitly set it to the empty list. Doing so is necessary if you want to pass cookie or authorization headers to your back end. The following example shows how to use sensitiveHeaders:
E foi isso que precisei fazer no meu application.properties, deixei conforme a documentação
zuul.routes.auth.sensitive-headers=
Atualização
Quando você for tentar efetuar o login, e no console do navegador estiver apresentando esse erro:
Refused to display 'http(s)://host:port/' in a frame because it set 'X-Frame-Options' to 'deny'.
Vá nas configurações do seu Spring security e no método
protected void configure(HttpSecurity http) throws Exception
Adicione a linha:
http.headers().frameOptions().sameOrigin()
Conclusão
Após passar um bom tempo pesquisando e lendo a documentação, consegui fazer o acesso
Qualquer dúvida que tenha, ou sugestões e críticas mande uma mensagem no twitter ou deixa aqui sua mensagem
Muito obrigado e até a próxima.
Top comments (2)
Bom saber, obrigado por compartilhar.
Obrigado Wellington, espero ter ajudado ou te ajudar futuramente.
abraços