Java WebSocket获取客户端的可分辨名称

时间:2014-07-31 21:20:42

标签: java ssl websocket

我有一个在GlassFish上运行的Java WebSocket服务器,用户将使用我们提供的客户端TLS证书进行连接。证书中的专有名称是我们用来标识用户的名称。与ServerEndpoint建立连接后,我的@OnOpen方法会被调用并被赋予Session个对象。

我可以判断是session.isSecure(),但仅此而已。 Session对象使我无法看到TLS连接的属性。当他们通过WebSocket连接时,如何获取客户端的可分辨名称?

1 个答案:

答案 0 :(得分:0)

我相信你只能在websocket握手(see here for an idea)中这样做。

Websocket已升级"来自HTTP请求,请求的详细信息仅在该升级请求期间可用。您可以尝试从HandshakeRequest中提取用户主体,通常应该为您提供X500Principal