Веб-приложение JSF, которое имеет пользовательские функции - PullRequest
0 голосов
/ 19 сентября 2018

Очень широко, и я прошу прощения, если у меня нет понимания, но здесь идет речь: у меня есть веб-приложение, которое я запускаю на сервере Liberty в регионе CICS.Я хотел бы, чтобы определенные функции этого приложения были специфичными для пользователя.Например, если пользователь входит в веб-приложение, я хочу, чтобы он мог выполнять задачи только на странице в зависимости от того, кто он.Я смотрел на создание ролей, но не могу понять это хорошо.У меня пока есть настройка, где любой пользователь в моей CICS с идентификатором и паролем и доступом к этому региону может использовать мое веб-приложение.Я опубликую часть безопасности XML.Если требуется дополнительная проработка, пожалуйста, спросите меня.

 <security-role>
    <description>All CICS auhenticated users</description>
    <role-name>cicsAllAuthenticated</role-name>
</security-role>
<security-constraint>
    <display-name>xxx.xxxx.xxx.jdbc.web.SecurityConstraint</display-name>
    <web-resource-collection>
        <web-resource-name>xxxx.xxxx.xxxx.xxxx_xxxx.jdbc</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>cicsAllAuthenticated</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Я получаю идентификаторы через некоторые настройки реестра SAF и хранилища ключей в конфигурации сервера.Мне просто нужно знать, есть ли способ использовать это в Java для предоставления привилегий.Спасибо за любые идеи!

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете использовать сопоставление ролей SAF в Liberty.Это отобразит SAF EJBROLE на роль Java EE, которую затем можно использовать для защиты приложений.

Отображение EJBROLE на роли Java EE контролируется, например, с помощью элемента server.xml safRoleMapperсопоставитель ролей SAF:

<safRoleMapper profilePattern="myprofile.%resource%.%role%" toUpperCase="true" />

Профиль при доступе к приложению myapp с ролью admin будет:

myprofile.myapp.admin

Для получения дополнительной информации см .: Liberty: Управление сопоставлением ролей профилям SAF .По умолчанию profilePattern имеет значение %profilePefix%.%resource%.%role%.

. В CICS должна быть установлена ​​функция cicsts:security-1.0, поскольку это также сопоставит пользователя транзакции CICS с пользователем Liberty.

Для получения дополнительной информацииО настройке безопасности на сервере Liberty JVM в CICS см .: Настройка безопасности для сервера Liberty JVM .

Чтобы вернуться к исходному вопросу, если вы используете SAF EJBROLE, вам следуетиметь возможность создать сопоставитель ролей SAF, а затем использовать части, соответствующие %role% в вашем web.xml, для защиты ресурсов.

Вы также можете программно проверить доступ в JSP с помощью

<% if (request.isUserInRole("role")) { %>
  <!-- Content to display for users in role 'role' -->
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...