在Bayeux服务器中存储用户可信度



当客户端订阅特定频道时,我想存储客户端UserName和SessionId。当我覆盖canHandshake((时,我可以使用以下方法获得用户凭据:

userName = (String) authentication.get("userName");
sessionId = (String) authentication.get("sessionId");

只是想知道我如何存储这些凭据,然后再检索它们?我已经看过这里的身份验证文档,其中只提到将身份验证数据链接到会话。这是Bayeux服务器端会话吗??

感谢

"链接"可以通过多种方式完成。

您可以通过以下方式将这些信息链接到外部地图中:

@Override
public boolean canHandshake(BayeuxServer server, ServerSession session, ServerMessage message)
{
    ...
    Map<String, Object> authentication = ...;
    map.put((String)authentication.get("userName"), session);
    ...
}

其中map可以是安全策略本身中的java.util.ConcurrentHashMap<String, ServerSession>字段,也可以是诸如用户服务之类的另一对象中的字段。

对于更简单的用例,userName可以通过以下方式直接链接到会话:

session.setAttribute("userName", authentication.get("userName"));

或者你可以同时使用这两种技术。

这是身份验证操作的更新链接,您可以在http://docs.cometd.org.

相关内容

  • 没有找到相关文章

最新更新