Jakarta WebSocket 2.3 の主な変更点


軽微な変更のみです。


接続情報の取得

接続ユーザーのIPアドレスなどの情報を取得するメソッドが HandshakeRequest に追加されました。

public interface HandshakeRequest {
    String getLocalAddress();
    String getLocalHostName();
    int getLocalPort();
    String getRemoteAddress();
    String getRemoteHostName();
    int getRemotePort();
    Locale getPreferredLocale();
}


証明書情報の取得

HandshakeRequest にクライアント証明書を取得するメソッドが追加されました。

安全なTLS接続を介してWS接続が確立された場合に、使用される証明書情報が取得できます。

public interface HandshakeRequest {
X509Certificate[] getUserX509CertificateChain();
}


ハンドシェイクが失敗時の afterResponse(HandshakeResponse) 呼び出し

ハンドシェイクが成功した場合には、ClientEndPoint.Configurator.afterResponse(HandshakeResponse) が呼び出されますが、失敗した場合にも呼び出されることが明示されました。

これにより、なんらかの攻撃に際して、クライアントアプリケーションがこれらの応答ヘッダーにアクセスして、何をするべきかを判断することができるようになります。