非常广泛,如果我缺乏理解,我深表歉意,但这里是: 我有一个 Web 应用程序,我在 CICS 区域的 Liberty 服务器中运行。我希望该应用程序的某些功能是特定于用户的。例如,如果用户登录到 Web 应用程序,我希望他们只能根据自己的身份在页面上执行任务。我研究过设置角色,但不能很好地掌握它。到目前为止,我有一个设置,在我的 CICS 中具有 ID 和密码并访问该区域的任何用户都可以使用我的 Web 应用程序。我将发布.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 注册表和密钥库设置获取 ID。我只需要知道是否有办法在 Java 中使用它来授予权限。感谢您的任何想法!
您可以在 Liberty 中使用 SAF 角色映射。这会将 SAF EJBROLE 映射到 Java EE 角色,然后可以使用该角色来保护应用程序。
EJBROLE到Java EE角色的映射是通过server.xml
元素safRoleMapper
控制的,例如,SAF角色映射器:
<safRoleMapper profilePattern="myprofile.%resource%.%role%" toUpperCase="true" />
使用角色admin
访问应用程序myapp
时的配置文件为:
myprofile.myapp.admin
有关更多信息,请参阅:Liberty:控制如何将角色映射到 SAF 概要文件。默认情况下,配置文件模式为%profilePefix%.%resource%.%role%
。
在 CICS 中,您应该安装cicsts:security-1.0
功能部件,因为这也会将 CICS 事务用户映射到 Liberty 用户。
有关在 CICS 中配置安全性的 Liberty JVM 服务器的更多信息,请参阅:为 Liberty JVM 服务器配置安全性。
为了回到您最初的问题,如果您使用 SAF EJBROLE,您应该能够创建 SAF 角色映射器,然后使用web.xml
中与%role%
匹配的部分来保护资源。
您还可以使用 JSP 以编程方式检查访问
<% if (request.isUserInRole("role")) { %>
<!-- Content to display for users in role 'role' -->
<% } %>