gpt4 book ai didi

java - 没有上下文路径的 Spring SSO 授权失败

转载 作者:行者123 更新时间:2023-11-29 04:37:21 25 4
gpt4 key购买 nike

我关注了this guide并克隆了 authserver .该项目有一个authserver 和一个client(作为测试)。示例工作正常,但如果我删除 context-path属性(我只希望我的应用程序在 / 上运行),它在重定向回 client 后失败。示例:

  1. 转到客户端 (localhost:9999);
  2. 重定向到authserver (localhost:8080);
  3. 通过GitHub登录;
  4. 重定向到 authserver 并立即使用下一个 url 到 client:

http://localhost:9999/login?code=dqoxz4&state=79qtJ5

Whitelabel 错误页面响应:

There was an unexpected error (type=Unauthorized, status=401).
Authentication Failed: Could not obtain access token

正如我上面提到的,仅当 context-path/(或完全删除)时,它才会失败。否则,一切正常。

最佳答案

来自您的链接:

The context path has to be explicit if you are running both the client and the auth server on localhost, otherwise the cookie paths clash and the two apps cannot agree on a session identifier.

我们在/上成功运行了一个应用程序,在/uaa 上运行了 AuthServer。尝试在您的 AuthServer 上设置上下文路径。查看来自您的应用程序和 AuthServer 的 cookie:它们不应具有相同的路径。

编辑:

不同的域应该没问题。他们不共享 cookie。在同一台主机上,如本地主机,您必须使用上下文路径,因为 cookie 不是特定于端口的。请参阅:https://stackoverflow.com/a/16328399/926620

或者,您将域放在/etc/hosts (linux) 或 c:\windos\system32\drivers\etc\hosts 中。只需添加一行:

127.0.0.1 website authserver

然后你可以使用http://website:9999http://authserver:8080在同一台机器上进行开发。

或者你也可以给cookies设置不同的名字。参见 http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html :

server.session.cookie.name=auth
server.session.cookie.name=web

关于java - 没有上下文路径的 Spring SSO 授权失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com