gpt4 book ai didi

java - Seam:使用外部 SSO 应用程序登录

转载 作者:行者123 更新时间:2023-12-01 05:59:13 25 4
gpt4 key购买 nike

我有一个 Seam 应用程序,必须使用外部应用程序才能登录。逻辑如下:

  • 我的应用将用户发送至外部 SSO 网址
  • 用户在那里进行身份验证
  • 成功后,外部应用会使用随机 token 将用户重定向回我的应用
  • 我的代码应使用传递的 token 通过 HTTP 联系外部应用,并获取完整的用户信息作为返回

非常简单。但我被困住了。

重定向将到达/seam/resources/token。我打算从 session 中获取身份,用 token 填充它,然后进行身份验证。但在资源处理程序中,用户 session 显然不可见: session 上下文为空。 :(

我尝试在那里执行 LifeCycle.beginCall,它在某种意义上是有效的:身份验证逻辑有效,但结果永远无法提供给用户(用户的 session 仍然具有空身份)。

我做错了什么?

附注这是我的资源处理程序的或多或少完整的代码。为了简洁起见,删除了日志记录和其他不相关的内容。

@Scope(ScopeType.APPLICATION)
@Name("tokenResource")
// @BypassInterceptors
public class TokenResource extends AbstractResource {
@Override
public String getResourcePath() {
return "/token";
}

@Override
public void getResource(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
String token = request.getParameter("token");

// woot?
Lifecycle.beginCall();

Identity identity = Identity.instance();
MyIdentity mid = (MyIdentity) identity;
mid.setToken(token);
mid.login();

response.sendRedirect("/home.seam");
}

最佳答案

也许将身份注入(inject)回 session 上下文?

关于java - Seam:使用外部 SSO 应用程序登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624890/

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