缝:使用外部SSO应用程序登录(Seam: login using external SSO app

2019-09-29 13:02发布

我有必须使用外接一个登录Seam应用。 逻辑如下:

  • 我的应用程序将用户与外部SSO网址
  • 用户做什么才能有鉴别
  • 如果成功,外部应用程序与随机令牌重定向用户返回到我的应用程序
  • 我的代码应与通过令牌通过HTTP接触外部应用程序和得到的回报完整的用户信息

很简单。 但我坚持。

重定向是来/缝/资源/令牌。 我打算在会议上获得认同,用令牌填充它,并进行身份验证。 但在资源处理用户会话显然是不可见的:会话的上下文为null。 :(

我试着做LifeCycle.beginCall那里,和它的作品在某种意义上:认证逻辑的作品,但结果永远不会提供给用户(用户会话仍具有空标识)。

我该怎么办错了吗?

PS这里是我的资源处理程序的更多或更少的完整代码。 日志记录和其他无关的东西为简洁移除。

@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");
    }

Answer 1:

也许outject身份回到会话的上下文?



Answer 2:

您可以使用JBoss的Picketlink与OpenID和谷歌整合。 有一对夫妇在他们提供的,似乎是直截了当地使用Seam它捆绑的例子。

注意和照顾唯一的小事情是,该项目是在早期阶段,因此一些错误可以弹出。



文章来源: Seam: login using external SSO application