問題タブ [tyrus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
9650 参照

ssl - Websocket SSL ハンドシェイクの失敗

安全なWebSocket接続用のスプリングブートTomcatサーバーがあります。サーバーは、認証局が署名した証明書を使用して、Android 4.4、iOS、Firefox、および Chrome クライアントを問題なく受け入れます。ただし、Android 5.0 は SSL ハンドシェイクに失敗します。

Android 5.0 Lollipop の変更による TLS または暗号スイートの問題であり、他のクライアントが接続するための証明書ではないと思いますが、接続のクライアント側で何が起こっているかを知る方法がわかりません。デバッグは Android ではサポートされていないようです。この問題は、これと非常によく似ている可能性が高く、これもまだ解決されていませんが、暗号スイートに問題があることを示唆しています。Android バグ88313 81603 developer-preview-1989は、Android の実装が正しいことを示しているようですが、サーバー構成または暗号スイートの実装は正しくない可能性があります。

次のサーバー暗号スイートを設定しました

特に、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA は、API 11以降の Android でサポートされているプロトコルのリストに含まれています。

サーバーがこれをサポートしていることを確認しました

返す

openssl と java の名前には若干の不一致がありますが、openssl のドキュメントには、これらは同じ暗号スイートであると記載されています。

私のサーバーは、最初に Android 5.0 と互換性のある openssl クライアントとの暗号スイートをサポートし、ネゴシエートします。Android 5.0 なら問題なく接続できると思いますが、失敗します。

Android 5.0 の安全な WebSocket 接続を Tomcat に正常に接続した人はいますか? 動作することが知られている暗号スイートはありますか? Android クライアント側の SSL 実装をデバッグする方法はありますか?


アップデート

ネットワーク トレースの結果:

Android 5.0 デバイス (Nexus 5) は、4 ~ 5 パケットで送信されたサーバー証明書情報を受信すると、可変数 (2 ~ 4) の ACK と FIN、ACK で応答します。成功したトレースでは、クライアントは FIN を送信しません。Android 5 クライアントは、サーバーから取得するものを好みません。

失敗の場合、サーバーの SSL デバッグ情報には次のように記載されています。


更新 2

これは、使用する必要最小限の Tyrus Android アプリケーションです。

0 投票する
1 に答える
4748 参照

java - Websocket セッションで UserAgent にアクセスしますか?

Java の「JSR 356 - Java API for WebSocket」の Tyrus 参照実装を使用すると、Websocket のアップグレードに使用された HTTP 接続にアクセスする方法が見つかりません。したがって、ブラウザが送信した HTTP ヘッダーにアクセスできません。

HTTP UserAgent ヘッダーを読み取る方法はありますか?

「Session」オブジェクトを「TyrusSession」などにキャストすることは許容されますが、とにかくリモート アドレスを取得するにはそれを行う必要があります。Websocket 接続内のメッセージとして UserAgent を再度送信することは、私のフォールバック ソリューションです。

0 投票する
3 に答える
19568 参照

java - 安全な WebSocket への接続

Jetty (またはその他のライブラリ) を使用して、セキュリティで保護された websocket に接続しようとしています。

問題は、「信頼できる証明書が見つかりません」というエラーが表示されることです。keytool で生成された自己署名証明書を使用しています。何ができるでしょうか?

Tyrus Websocket クライアントでの試みは次のとおりです。SSL エラーは発生しませんが、何も出力されません。

比較すると、JS/ノードのこの単純なコードは機能します

Java で動作する websocket クライアントを知りたいです

0 投票する
1 に答える
473 参照

java - Arduino Websocket クライアントと Tyrus Websocket サーバーのメッセージ通信の問題?

次のArduino関数を使用して、websocket通信でデータを送信しています:

この関数は、この Arduino websocket クライアント実装ライブラリに属しています。

Tyrus プロジェクトを使用した私の Java Websocket サーバー コードは次のとおりです。

上記のコードの ArduinoEndPoint クラスは、@onMessage、@onOpen、および @onClose アノテーション付きメソッドの単純な実装を表しています。

私の問題は、Arduino から 25 文字未満のメッセージを送信すると、サーバーで受信されますが、25 文字を超えるすべてのメッセージが受信されないことです。
Websocket サーバーは、Tyrus Java Websocket クライアント実装を使用して、任意のメッセージ サイズで動作します。ここで何が欠けていますか?

0 投票する
1 に答える
396 参照

android - Tyrus Websockets Android: Lorg/glassfish/tyrus/core/OsgiRegistry の解決に失敗しました

Android アプリで Web ソケットを使用するには、tyrus-standalone-client.jar バージョン -1.10 を使用します。

私のスタックトレースは次のとおりです。

少し調べてみると、jar のバージョンが不安定である可能性があるとの情報源もあります。ということで、1.9と1.8.3でやってみました。問題は解決されていません。安定したバージョンまたは他に何が間違っている可能性があるかについての考えを提案してください。