Как вы можете аутентифицироваться с помощью клиента Джерси на веб-сервере с поддержкой JAAS?

У меня есть следующий сценарий:

Сервер: Jetty (с настроенным JAAS)

Клиент: Джерси вызывается через JUnit (через Maven)

У меня есть JAAS, настроенный на веб-сервере . Я использую клиентскую часть в качестве теста.

На стороне сервера пользователи аутентифицируются через форму, а базовая аутентификация выполняется через JAAS. Очевидно, что пользователи должны пройти аутентификацию, прежде чем смогут просматривать определенные страницы.

Я хотел бы иметь возможность войти в систему через Джерси, прежде чем пытаться получить доступ к защищенной странице. Как это может быть сделано? Я проверил, что вы можете определить фильтр, но я не совсем уверен, как его использовать. И -- как только пользователь войдет в систему через форму, как я могу перейти (со стороны клиента) на интересующую меня страницу?

Я был бы очень признателен, если бы кто-нибудь показал мне пример того, как это делается на стороне клиента с помощью Джерси.

У меня есть следующий метод тестового примера JUnit:

@Test
public void testLogin()
        throws IOException
{
    String URL_LOGIN = "http://localhost:9080/foo/auth.html";
    Client client = Client.create();

    String username = "me";
    String password = "me";

    final HTTPBasicAuthFilter authFilter = new HTTPBasicAuthFilter(username, password);
    client.addFilter(authFilter);
    client.addFilter(new LoggingFilter());

    WebResource webResource = client.resource(URL_LOGIN);
    // I even tried:
    // webResource.header("Authorization", "Basic " + "base64encoded_userid:password").type("application/xml");

    String page = webResource.post(String.class);

    System.out.println(page);
}

Пожалуйста, обратите внимание:

1) http://localhost:9080/foo/auth.html— это страница, которую я должен видеть после успешной авторизации.

2) На самом деле я вижу вывод http://localhost:9080/foo/login.html.

3) Очевидно, что через браузер я могу успешно войти через страницу login.html.

Что мне здесь не хватает?

11
задан carlspring 14 March 2012 в 03:07
поделиться