2016-08-02 1 views
0

Java WebstartアプリケーションでJerseyとJAX-RSを使用してレストサービスに接続しています。ユーザがWebstartアプリケーションを使用してパスワードを変更すると、新しいパスワードで新しいHttpBasicAuthFilterを使用してWebTargetをリセットします...ただし、新しいパスワードは使用されません。私はjavawsの代わりにjavaを使ってJava Webstartの外で同じコードを実行しました。うまくいきます。ここでは、問題のコードです:java webstartで実行しているときにjax-rsで新しいパスワードを設定するには?

public WebTarget getWebTarget(String username, String password) { 
    Client client = ClientBuilder.newBuilder().sslContext(SSLContext.getDefault()).build(); 
    client.register(new HttpBasicAuthFilter(username, password)); 
    WebTarget targetBase = client.target("localhost"); 
    return targetBase; 
} 

上記のパスワードがWebTargetrequest().get()のようなものと一緒に使用されたときに使用される基礎となるパスワードは変更されません。私はjavawsの代わりにjavaで起動するとコードが動作することを知っています...それは動作します!だから、問題は、パスワードをキャッシュするように見えるJava Webstartにあります。

WebTargetを同じアドレス/ホストに別のパスワードと同じユーザー名で取得するにはどうすればよいですか?

答えて

0

問題は、Java Web Start自体ではありません。問題は、Java Web StartがCookieをサポートしており、したがってセッションデータをサポートしていることです。バックエンドのサービスはGrailsであり、ユーザーがセッションCookieで認証されたことを保存しています...したがって、そのCookieが有効である限り、バックエンドは機能し、新しいパスワードは単に無視されます。

関連する問題