Только безопасность роли веб-приложения Java

Добрый день!

Я пытаюсь защитить свое веб-приложение с помощью роли безопасности в файле web.xml:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>RESTRICTED</web-resource-name>
        <description>Resources to be placed under security control</description>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>manager</role-name>
    </auth-constraint>
</security-constraint>

<security-role>
    <description>ACCESS ROLE</description>
    <role-name>manager</role-name>
</security-role>

и насколько я использую Weblogic, есть файл weblogic-application.xml со следующими строками:

<security>
    <security-role-assignment>
        <role-name>manager</role-name>
        <principal-name>manager</principal-name>
    </security-role-assignment>
</security>

Идея заключается в том, что если пользователь уже прошел аутентификацию (Web SSO), у него есть роль, и приложение должно предоставить доступ для такого пользователя.

Проблема заключается в том, что даже если у пользователя есть необходимая роль, приложение предоставляет базовую форму входа.

Я попытался добавить такую ​​строку:

<login-config/>

в файле web.xml, опираясь на то, что в статье сказано, что эта строка делает все общедоступные страницы (я думал, что это удалит форму входа, но оставит роль безопасности), но это не сработало.

Кто-нибудь знает, как удалить форму входа, оставив роль безопасности?

ОБНОВЛЕНИЕ: внутри моего WebLogic есть написанное от руки средство подтверждения личности, которое проверяет токен пользователя. Если токен представлен, утверждающий создает принципала и позволяет пользователю войти в систему.

Интересный факт: если я использую браузер Firefox, то формы входа нет, но в Chrome основная форма входа всегда здесь...


person Dmitry    schedule 02.07.2013    source источник
comment
Что такое этот веб-SSO и как токен сеанса/аутентификации, созданный этой системой, интегрируется с Weblogic? IOW, как Weblogic узнает, кто такой пользователь и какие у него роли? Определены ли для этой интеграции поставщики WLS SSPI?   -  person parry    schedule 02.07.2013
comment
На самом деле, внутри Weblogic есть написанное от руки средство подтверждения личности, которое создает принципала. Вот почему, когда ранее аутентифицированный пользователь (какой-то другой системой) хочет использовать мое приложение, мне нужно получить объект Principal из HttpServletRequest и выполнить обработку... Проблема в том, что всегда появляется основная форма входа в систему, а это не то, что Я (и пользователь) хочу. Мне нужно только получить принципала (группу пользователей)   -  person Dmitry    schedule 02.07.2013


Ответы (1)


Хорошо, наконец-то я нашел решение, которое на самом деле описано в эта статья в разделе "Использование подтверждения личности для аутентификации веб-приложений": я добавил следующие строки в файл web.xml:

    <login-config>
        <auth-method>CLIENT-CERT</auth-method>
    </login-config>

и это сработало.

person Dmitry    schedule 03.07.2013