2013-02-07 2 views
0

У меня есть устаревший webapp, который в настоящее время аутентифицирует пользователей в сервлете. То есть он вызывает LoginContext.login() из сервлета.oc4j как установить участника пользователя из темы?

В рамках моих обновлений я хотел бы добавить новые веб-страницы, которые используют декларативную аутентификацию через файл web.xml. И я хочу, чтобы старые веб-страницы продолжали использовать аутентификацию сервлета. В конце концов, я переработаю старые веб-страницы, чтобы использовать новую аутентификацию.

Однако новые страницы не наследуют аутентификацию, выполненную из сервлета. Они появляются как не прошедшие проверку, без запроса пользователя в запросе.

С существующим сервлетом я получаю предмет. Можно ли каким-либо образом вызвать что-то, чтобы OC4J установил пользовательский принцип из одного принципала Subject?

+0

Пытаюсь разные вещи здесь. На одной из старых страниц я изменил строку меню, чтобы указать на одну из новых страниц. Я добавил JSESSIONID в URL-адрес, надеясь, что будет использоваться существующий сеанс. Однако, похоже, создается новый сеанс. Итак, в качестве примера, на /jobs.app в строке меню есть ссылка на /secure/spsas.jsp?JSESSIONID = ... Не повезло. –

+0

Старые страницы находятся под управлением Spring MVC, а новые страницы находятся под контролем Struts, если это имеет значение. Nevermind, почему разница. –

+0

Еще больше информации. Старый материал находится на верхнем уровне контекста (например, /myapp/jobs.app), а новый материал находится на одном уровне вниз (например, /myapp/secure/spsas.jsp). Я хочу, чтобы новый материал был защищен тем, что находится в web.xml, вместо использования LoginContext. –

ответ

0

Нашел:

// http://docs.oracle.com/html/E13977_01/authoriz.htm#BABHJJCJ 
    // oc4jclient.jar, oc4j-unsupported-api.jar 
    oracle.oc4j.security.Security.setSubject(subject, Longevity.SESSION); 
Смежные вопросы