使用rest-assured无法通过webseal身份验证

时间:2017-11-20 19:51:57

标签: rest-assured webseal

从事自动化任务,我正在尝试测试托管在webseal服务器上的Web服务。问题是我已经尝试了每一种放心的方法来获得响应json,但我得到的是身份验证屏幕html。

这是我的一些非工作代码。我所期待的是json,但无论我运行什么身份验证方法,我都只获得了webseal的身份验证页面。

private String serviceTestGET(WebServiceTest serviceTest) {
    System.out.println("Credential : " + userName + " -- " + password);
    // RestAssured.
    // RestAssured.authentication = basic(userName, password);
    // RestAssured.authentication = digest(userId, password);
    // RestAssured.authentication = oauth(consumerKey, consumerSecret,
    // accessToken, secretToken);//form(userName, password);
    // RestAssured.authentication = form(userId, password, config);
    RestAssured.useRelaxedHTTPSValidation();
    return given().get(serviceTest.getEntryPoint()).asString();
}

1 个答案:

答案 0 :(得分:1)

我在google搜索后找到了答案。 我们必须考虑的几件事情,即webseal将通过退回身份验证表单来验证请求。一旦该表单经过身份验证,预计您将使用相同的会话(cookie)访问webseal服务器后面的应用程序。

所以这是我的工作代码

    System.out.println("Credentials : " + username + " - " + password);
    RestAssured.useRelaxedHTTPSValidation();
    SessionFilter sessionFilter = new SessionFilter();

    Map<String,String> cookies = given().
            filter(sessionFilter).
            param("username", username).
            param("password", password).
            param("login-form-type", "pwd").
    expect().
        statusCode(200).
    when().
        post("https://your-web-seal-server/pkmslogin.form").getCookies();

    Reporter.log("Server Authenticated");

    return given().filter(sessionFilter).cookies(cookies).expect().statusCode(200).
    when().get(serviceTest.getEntryPoint()).asString();