2015-06-04 99 views
1

我有需要身份驗證的URL(如瀏覽器彈出出現,詢問用戶名和密碼。)如何使用的RESTEasy客戶端生成器設置用戶名和密碼?

enter image description here

一般情況下,我們可以使用下面的格式來實現這一目標:

http://username:[email protected]

使用的RESTEasy客戶建設者

Client client = ClientBuilder.newClient(); 
WebTarget target = client.target("http://url.com"); 

如何實現它而不必自己構建http://username:[email protected]?我看過是否有任何方法可以用來設置它,但沒有運氣。另外我不知道這些證書的傳遞方式,頭,cookie等。

+0

哪種類型的驗證是,基本? –

+0

@peeskillet是的。 – pinkpanther

回答

3

貌似Basic Authentication。如果是這樣的話,你只需要在Authorization頭設置爲Basic base64encode(username:password)

例如:

String credentials = "username:password" 
String base64encoded = Base64.getEncoder().encodeToString(credentials.getBytes()); 
Response response = target.request() 
     .header(HttpHeaders.AUTHORIZATION, "Basic " + base64encoded).... 

我使用的Base64類是從Java 8.如果你沒有使用Java 8,是具有Base64編碼的支持庫。在此之前的Java 8,有一個com.sun內部Base64類,但它建議使用這些。

如果您只想運行一個快速測試(並且沒有Java 8或不想去查找庫),您可以轉到this site並輸入您的username:password並進行編碼,然後只需複製並粘貼到您的代碼。

例如:

base64encode(username:password) == dXNlcm5hbWU6cGFzc3dvcmQ= 
相關問題