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

时间:2019-04-13 04:24:21

标签: jhipster

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

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

命令: curl -X POST -v http://localhost:8181/oauth/token -i -H“接受:应用程序/ json” -H“授权:基本aW50ZXJuYWw6aW50ZXJuYWw =” -d“ grant_type = client_credentials&scope = web-app”

错误: {“类型”:“ https://www.jhipster.tech/problem/problem-with-message”,“标题”:“不允许使用方法”,“状态”:405,“详细信息”:“不支持请求方法'POST'”,“路径”:“ / oauth /token","message":"error.http.405"}%

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

curl -X POST -v http://localhost:9999/oauth/token -i -H“接受:应用程序/ json” -H“授权:基本aW50ZXJuYWw6aW50ZXJuYWw =” -d“ grant_type = client_credentials&scope = web-app”

1 个答案:

答案 0 :(得分:1)

首先,除非您绝对确定需要这样做,否则我不建议您禁用CSRF protection

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

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

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

UAA网关还具有一个auth端点,Angular / React客户端使用该端点来生成cookie:

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