簡體   English   中英

CAS認證使用放心

[英]CAS authentication using rest assured

我們在應用程序中使用CAS(中央身份驗證服務)進行身份驗證。

我們有很多REST API,我們需要測試其余的調用。 我們計划建立一個測試套件,以測試所有REST api。 因此,我們考慮為您的套房使用“保證放心”。

問題是身份驗證。 由於我們已經安裝了CAS,因此對於每個呼叫,它都會重定向到登錄頁面,詢問用戶名和密碼。 是否可以一口氣通過用戶名和密碼並通過身份驗證並獲取Cookie?

任何幫助將不勝感激!!

您可以使用auth方法通過Rest-Assured進行身份驗證。

例如:

RestAssured.given ().auth ().basic (username, password);

編輯:

您也可以嘗試以下操作:

RestAssured.given ().auth ().form (username, password);

試試這個,讓我們知道是否可行。

嘗試以下操作:

Response response = given().contentType(ContentType.JSON)
        .relaxedHTTPSValidation().when().get("<URL>");

String html = response.asString();



String sessionid = response.getCookie("JSESSIONID");
 org.jsoup.nodes.Document loginDoc = Jsoup.parse(html);
 String ltTagValue = loginDoc.select("input[name=lt]").val();
 String executionTagValue = loginDoc.select("input[name=execution]").val();

HashMap<String, Object> head = new HashMap();

 head.put("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36");
 head.put("Accept","text/html");
 head.put("Accept-Language" ,"en-US,en;q=0.9");


 Response response2=   given().headers(head).

 contentType(ContentType.URLENC).cookie("CASTGC","").cookie("JSESSIONID", sessionid).
 cookie("CASPRIVACY","")
 .cookie("Path","/em-cas").
 relaxedHTTPSValidation().    
 formParam("username", "<abc>").
 formParam("password", "<xyz>").
 formParam("lt", ltTagValue).
 formParam("execution", executionTagValue).
 formParam("_eventId", "submit").
 formParam("submit", "LOGIN").

 when().
 post(<URL>)
 ; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM