我正在使用uaa的网关。我在网关中所做的唯一改变是“.csrf()。disable()”
当我尝试使用以下命令获取令牌时。我收到405错误。
命令:curl -X POST -v http://localhost:8181/oauth/token -i -H“Accept:application / json”-H“授权:基本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”:“请求方法'POST'不受支持”,“path”:“/ oauth / token ”, “消息”: “error.http.405”}%
当我打开uaa的端口并运行命令时,它能够获取令牌。
curl -X POST -v http://localhost:9999/oauth/token -i -H“Accept:application / json”-H“授权:基本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网关还有一个auth端点,Angular / React客户端使用该端点生成cookie:
curl 'http://localhost:8080/auth/login' -H 'Content-Type: application/json' --data-binary '{"username":"admin","password":"admin","rememberMe":true}' --compressed