Spring OAuth2 и CAS не работают после NGINX - PullRequest
0 голосов
/ 28 мая 2020

У меня архитектура, как показано ниже

client
  |
gateway(8085) -- oauth2 server(8094) -- SSO(8443)
  |
microservices

когда я запускаю все серверы на localhost, он работает, как ожидалось. например, URL-адрес сервера oauth2, как показано ниже

servers:
  gateway: http://localhost:8085
  sso: http://localhost:8443
  authz: http://localhost:8094

, но , когда я развертываю шлюз и сервер oauth2 за обратным прокси nginx, проверка билета службы не работает , и мне всегда нужно для повторного входа и повторного входа и ... на сервере cas

client
  |
nginx
  |
(gateway -- oauth2 server )-- SSO
  |
microservices

URL-адрес сервера oauth2 в соответствии с nginx как показано ниже

servers:
  gateway: http://localhost/gateway
  sso: http://localhost:8443
  authz: http://localhost/authz

вот nginx conf

    server {
        listen       80;
        server_name  localhost;

        location /authz {
            proxy_pass http://localhost:8094;
        }

        location /gateway {
            proxy_pass http://localhost:8085;
        }

        location /oauth2 {
            proxy_pass http://localhost:8085;
        }
   }

сетевые трассировки без nginx,

- 302 http://localhost:8085/oauth2/authorization/login-client
- 401 http://localhost:8094/oauth/authorize?response_type=...
- 302 http://localhost:8443/cas/login?service=http://authorization
- 302 http://localhost:8094/cas/login?ticket=ST-....
- 302 http://localhost:8094/oauth2/authorize?...
- 302 http://localhost:8085/login/oauth2/login-client... and take jwt from oauth2 server, and goes microservice with that jwt. 

сетевые трассы для nginx

- 302 http://localhost/gateway/oauth2/authorization/login-client
- 401 http://localhost/authz/oauth/authorize?response_type=...
- 302 http://localhost:8443/cas/login?service=http://authorization
- **401** http://localhost/authz/cas/login?ticket=ST-....

почему это происходит? я так думаю проблема про nginx, потому что без nginx работает нормально. он манипулирует тем, чего я не знаю за сценой, но я не мог найти. вы можете помочь? спасибо

...