2016-08-02 33 views
0

我在我的Java webstart應用程序中使用Jersey和JAX-RS連接到我的休息服務。當用戶使用我的webstart應用程序更改他們的密碼時,我會用新密碼重置WebTarget以及新的HttpBasicAuthFilter ...但是,新密碼不會被使用!我已經在Java webstart之外的本地運行相同的代碼(使用java而不是javaws)並且它工作正常。這裏的問題代碼:如何在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; 
} 

密碼上面不會改變,當WebTarget與類似request().get()使用時所使用的基本密碼。我知道代碼的作品,因爲如果我啓動java而不是javaws ...它的工作原理!所以問題出現在java webstart中,它似乎在緩存密碼。

如何獲取新的WebTarget到具有不同密碼和相同用戶名的相同地址/主機?

回答

0

問題不在於Java webstart本身。問題是Java webstart支持cookies並因此支持會話數據。後端服務是Grails,並存儲用戶在會話cookie中進行身份驗證......因此,只要該cookie有效,後端將起作用,並且新密碼將被忽略。