Nous mettons notre application de connexion dans k8s. Mais lorsque nous accédons à swagger-ui via https://example.com/v0/ui , il est redirigé vers http://127.0.0.1 :5000/v0/ui, nous ne pouvons donc pas utiliser swagger UI. Toutes les autres URL de example.com ne sont pas redirigées, nous pensons donc que le problème vient de swagger-ui.
Lorsque vous accéderez à https://example.com/v0/ui , nous serons sur le point d'accéder à swagger-ui
Lorsque vous accédez à https://example.com/v0/ui , nous sommes redirigés vers http://127.0.0.1 :5000/v0/ui.
Sortie des commandes :
python --version
$ python --version
Python 3.7.2+
pip show connexion | grep "^Version\:"
$ pip show connexion | grep "^Version\:"
Version : 2.2.0
salut @czchen ,
Pouvez-vous s'il vous plaît fournir le bloc servers
de votre spécification ? De plus, définissez-vous explicitement base_path
?
Cela peut être dû à une redirection à barre oblique. Pouvez-vous essayer https://example.com/v0/ui/ (avec une barre oblique à la fin) et me faire savoir si vous rencontrez toujours le problème ?
Je pense que le problème peut également être résolu par #823 - le but de ce diff est de corriger le comportement de connexion derrière un proxy inverse.
servers:
- url: /v0
base_path
Ok, merci pour l'information.
Utilisez-vous aiohttp ou flask ?
Le mercredi 27 février 2019, 01h58 ChangZhuo Chen (陳昌倬) [email protected]
a écrit:
>
- Le bloc serveurs est :
les serveurs:
- URL : /v0
- Je ne définis pas base_path
- https://example.com/v0/ui/ n'a pas ce problème.
-
Vous recevez ceci parce que vous avez commenté.Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/zalando/connexion/issues/887#issuecomment-467470319 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAlPScaHxA6Pndz__Fl2gtXQYfrTcxlAks5vRUt4gaJpZM4bPWRO
.
ballon
Je suppose que strict_slashes
dans werkzeug provoque une redirection, mais il redirige vers votre adresse IP locale, pas l'hôte sur lequel vous exposez le site.
Pouvez-vous inclure la sortie d'une requête curl
détaillée ?
Votre message d'origine indique que la redirection provient de :
https://example.com/v0/ui , nous sommes redirigés vers http://127.0.0.1 :5000/v0/ui.
Mais je m'attendrais à ce que l'URL redirigée inclue la barre oblique de fin comme ceci :
https://example.com/v0/ui
redirigé vers http://127.0.0.1:5000/v0/ui/
De plus, si vous avez le temps, pouvez-vous essayer le #823 et voir si cela résout votre problème ?
J'ai essayé de fusionner cela pendant un certain temps pour résoudre ce type de problème.
Ce qui suit est la sortie de `curl --verbose http://exampke.com/v0/ui.
ps. Nous changeons notre side-car d'authentification de keycloak-gatekeeper à nginx, l'URL de redirection est également modifiée.
< HTTP/1.1 301 MOVED PERMANENTLY
< Content-Type: text/html; charset=utf-8
< Date: Sat, 02 Mar 2019 03:17:04 GMT
< Location: http://example.com:8080/v0/ui/
< Server: nginx/1.13.12
< Content-Length: 263
< Connection: keep-alive
<
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
* Connection #0 to host example.com left intact
<p>You should be redirected automatically to target URL: <a href="http://localhost:5000/v0/ui/">http://localhost:5000/v0/ui/</a>. If not click the link.%
ps. Nous changeons notre side-car d'authentification de keycloak-gatekeeper à nginx, l'URL de redirection est également modifiée.
Avez-vous une sortie pour montrer ce comportement?
Je pense que cela peut être lié à votre configuration nginx.
Je n'ai pas réussi à reproduire votre problème.
Voici ce que j'ai fait :
cd /tmp/
git clone https://github.com/zalando/connexion.git
cd connexion/
touch Pipfile
pipenv install -e .[swagger-ui]
pipenv shell
cd examples/openapi3/helloworld/
python hello.py
Après cela, j'ai essayé d'accéder à l'interface utilisateur sans la barre oblique de fin, et la redirection me semble correcte :
✔ ~ > curl -vv localhost:9090/v1.0/ui
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 9090 (#0)
> GET /v1.0/ui HTTP/1.1
> Host: localhost:9090
> User-Agent: curl/7.58.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 301 MOVED PERMANENTLY
< Content-Type: text/html; charset=utf-8
< Content-Length: 267
< Location: http://localhost:9090/v1.0/ui/
< Server: Werkzeug/0.14.1 Python/3.6.7
< Date: Thu, 07 Mar 2019 01:10:14 GMT
<
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
* Closing connection 0
<p>You should be redirected automatically to target URL: <a href="http://localhost:9090/v1.0/ui/">http://localhost:9090/v1.0/ui/</a>. If not click the link.
✔ ~ >curl -vv localtest.me:9090/v1.0/ui
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localtest.me (127.0.0.1) port 9090 (#0)
> GET /v1.0/ui HTTP/1.1
> Host: localtest.me:9090
> User-Agent: curl/7.58.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 301 MOVED PERMANENTLY
< Content-Type: text/html; charset=utf-8
< Content-Length: 273
< Location: http://localtest.me:9090/v1.0/ui/
< Server: Werkzeug/0.14.1 Python/3.6.7
< Date: Thu, 07 Mar 2019 01:10:35 GMT
<
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
md5-79aefe177c1f51034bfddaa639123ee9
* Closing connection 0
<p>You should be redirected automatically to target URL: <a href="http://localtest.me:9090/v1.0/ui/">http://localtest.me:9090/v1.0/ui/</a>. If not click the link.
md5-b970d9b2b7b9c7575bc0d5f111f80e8f
✔ ~ > curl -vv connexion.localtest.me:9090/v1.0/ui
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to connexion.localtest.me (127.0.0.1) port 9090 (#0)
> GET /v1.0/ui HTTP/1.1
> Host: connexion.localtest.me:9090
> User-Agent: curl/7.58.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 301 MOVED PERMANENTLY
< Content-Type: text/html; charset=utf-8
< Content-Length: 293
< Location: http://connexion.localtest.me:9090/v1.0/ui/
< Server: Werkzeug/0.14.1 Python/3.6.7
< Date: Thu, 07 Mar 2019 01:10:45 GMT
<
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
md5-79aefe177c1f51034bfddaa639123ee9
* Closing connection 0
J'ai changé le type de ticket en question
.
N'hésitez pas à fermer le ticket. Sinon, si vous postez votre configuration, je peux essayer de vous aider à la déboguer.
Commentaire le plus utile
salut @czchen ,
Pouvez-vous s'il vous plaît fournir le bloc
servers
de votre spécification ? De plus, définissez-vous explicitementbase_path
?Cela peut être dû à une redirection à barre oblique. Pouvez-vous essayer https://example.com/v0/ui/ (avec une barre oblique à la fin) et me faire savoir si vous rencontrez toujours le problème ?
Je pense que le problème peut également être résolu par #823 - le but de ce diff est de corriger le comportement de connexion derrière un proxy inverse.