2011-02-06 3 views
3

Я запустил портал WebSphere 7.0. Необходимо войти в систему, чтобы иметь возможность видеть любую информацию, которая подходит для всех портлетов. Но, кроме того, есть несколько сервлетов, которые развертывают в том же файле войны, которые производят некоторые необработанные данные для AJAX-скриптов.Websphere 7 Portal: Сервлет, проверяющий статус входа в Портал?

В настоящее время можно обойти аутентификацию с WebSphere Portal, если вы знаете URL-адрес этого конкретного сервлета. Я хочу изменить это и проверить, зарегистрирован ли пользователь в настоящее время на портале. Как мне это сделать? Я пробовал ((PumaHome) new InitialContext().lookup(new CompositeName(PumaHome.JNDI_NAME))).getProfile().getCurrentUser();, но это возвращает null.

ответ

6

WebSphere Application Server возвращает основного и удаленного пользователя, только если вы настроили его для использования контекста безопасности JavaEE для своего веб-приложения. Измените свой web.xml, чтобы он содержал что-то вроде

<security-constraint> 
<display-name>userConstraint</display-name> 
<web-resource-collection> 
    <web-resource-name>secure</web-resource-name> 
    <url-pattern>/*</url-pattern> 
    <http-method>GET</http-method> 
    <http-method>POST</http-method> 
</web-resource-collection> 
<auth-constraint> 
    <description>user</description> 
    <role-name>user</role-name> 
</auth-constraint> 
</security-constraint> 
<security-role> 
<description>secrole</description> 
<role-name>user</role-name> 
</security-role> 

и переустановить приложение. После развертывания приложения просмотрите настройки приложения в административной консоли. Вы увидите «Отображение пользователя/роли». Добавьте «все аутентифицированные пользователи из доверенных областей» в новую добавленную роль. Перезапустите приложение.

После этого анонимные пользователи больше не могут получить доступ к вашему приложению. Кроме того, getRemoteUser и другие API вернут пользователя правильно.

+2

После этой конфигурации вы также можете использовать обычные методы обеспечения безопасности веб-приложений (http://download.oracle.com/javaee/5/tutorial/doc/bncas.html) – erloewe

+0

Для записи: пользователь/роль сопоставление можно найти в «Интегрированной консоли решений для WebSphere» (не на странице администрирования портала) в приложениях> Типы приложений> Корпоративные приложения> NAME_OF_APP> Роль безопасности для сопоставления пользователей и групп> Пользователи/группы карт. Огромное спасибо! :-). – yankee

+0

Btw, это видно только в том случае, если web.xml приложения уже содержит конфигурацию контекста безопасности. Спасибо yankee за этот указатель. –

Смежные вопросы