Jhipster 6.0.0-beta.0 - /oauth/token 端点不允许使用 405 方法

Jhipster 6.0.0-beta.0 - 405 Method Not Allowed on /oauth/token endpoint

我正在使用带有 uaa 的网关。我在网关中所做的唯一更改是“.csrf().disable()”

当我尝试使用以下命令获取令牌时。我收到 405 错误。

命令: curl -X POST -v http://localhost:8181/oauth/token -i -H "Accept: application/json" -H "Authorization: Basic aW50ZXJuYWw6aW50ZXJuYWw=" -d "grant_type=client_credentials&scope=web-app"

错误: {"type":"https://www.jhipster.tech/problem/problem-with-message","title":"Method Not Allowed","status":405,"detail":"Request method 'POST' not supported","path":"/oauth/token","message":"error.http.405"}%

当我打开uaa的端口和运行命令时,它能够获得令牌。

curl -X POST -v http://localhost:9999/oauth/token -i -H "Accept: application/json" -H "Authorization: Basic aW50ZXJuYWw6aW50ZXJuYWw=" -d "grant_type=client_credentials&scope=web-app"

首先,我不建议禁用 CSRF protection 除非你绝对确定你需要。

您的第一个 CURL 请求已发送到网关。端点存在于 UAA 上,而不是网关上,这解释了为什么您的第二个 CURL 请求起作用。要通过网关请求它,您可以使用正确的 URL 将请求代理到 UAA 服务:

http://localhost:8080/services/uaa/oauth/token

/services/uaa/ 的请求被路由到 uaa 服务。

UAA 网关还有一个身份验证端点,Angular/React 客户端使用它来生成 cookie:

curl 'http://localhost:8080/auth/login' -H 'Content-Type: application/json' --data-binary '{"username":"admin","password":"admin","rememberMe":true}' --compressed