Я создал веб-сканер, используя Java и Playframework 1.2.3.
Теперь я хотел бы просканировать некоторые веб-страницы, защищенные классической формой логин / пароль.
На самом деле, это похоже на выполнение этого игрового теста:
@Test
public void someTestOfASecuredAction() {
Map<String, String> loginUserParams = new HashMap<String, String>();
loginUserParams.put("username", "admin");
loginUserParams.put("password", "admin");
Response loginResponse = POST("/login", loginUserParams);
Request request = newRequest();
request.cookies = loginResponse.cookies; // this makes the request authenticated
request.url = "/some/secured/action";
request.method = "POST";
request.params.put("someparam", "somevalue");
Response response = makeRequest(request);
assertIsOk(response); // Passes!
}
Но не с сайта, созданного Play, а с внешним сайтом.
Итак, мне удается использовать игровой веб-сервер для этого:
Map<String,String> params = new HashMap<String, String>();
params.put( "telecom_username",
Play.configuration.getProperty("telecom.access.user") );
params.put( "telecom_password",
Play.configuration.getProperty("telecom.access.pass") );
HttpResponse response = WS.url(loginUrl)
.setParameters(params)
.followRedirects(true)
.post();
Когда я делаю это, если я смотрю в response.getString (), я обнаружил страницу перенаправления, на которой перед продолжением работы устанавливаются файлы cookie, но затем, если я получаю защищенную страницу, я все равно не авторизируюсь Как будто куки никогда не устанавливались, а объект HttpResponse не имеет никакой функции, связанной с куки, как ответ в предыдущем тестовом коде.
Я также пробовал метод authenticate () в ws.url (), но он тоже не работает.
Я действительно не знаю, возможно ли то, что я пытаюсь сделать, используя игровой веб-сервер, но я мог бы использовать помощь по этому вопросу ^^
Большое спасибо!