3

我正在尝试将 J2EE 应用程序从 Tomcat 移植到 Websphere,但我对 Websphere 不太熟悉。

我遇到的唯一问题是授权(我在 web.xml 中使用基本身份验证)。在 Tomcat 中,我使用 tomcat-users.xml 文件来定义我的用户/密码以及他们所属的角色。

我如何在 Websphere 中“简单”地做到这一点?将 EAR 部署到 Websphere 时,它​​还要求我将我的角色从 web.xml 映射到用户或组。

我必须建立某种领域吗?自定义用户注册表?

谢谢。

更新:

我配置了一个独立的自定义注册表,但是我无法获得用户名/密码的登录提示。它在 Tomcat 中运行良好,但在 Websphere 中却不行。

来自 web.xml 的代码

<security-constraint>
<web-resource-collection>
<web-resource-name>basic-auth security</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>HELLO_USER</role-name>
</auth-constraint>
<user-data-constraint>NONE</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>HELLO_USER</role-name>
</security-role>
4

3 回答 3

5

默认情况下不启用 WAS 上的应用程序安全性。

在 Admin Console 中,转至:Security -> Global Security并确保选中Enable application security复选框。

保存更改后,您可能需要重新启动服务器。

于 2010-04-19T17:00:25.757 回答
3

默认情况下,WAS(我假设您询问的是应用程序服务器,而不是其他一些 WebSphere 产品)有一个全局域,其中包含用于用户和组的基于文件的注册表。解决您的问题的最简单方法是将您需要的用户和组添加到该注册表,并将您的角色映射到它们。您可以从 WAS Admin Console 管理此注册表,方法是导航到:
用户和组 -> 管理用户

用户和组 -> 管理组

这种方法的潜在缺点是您创建的用户和组是服务器上所有应用程序的有效用户和组。也就是说,您创建的用户将至少对服务器上的任何应用程序(包括管理控制台)拥有“所有已验证”权限。这通常不是问题(管理控制台实际上并没有授予“所有经过身份验证的”权限,其他应用程序也可能没有),但要记住这一点。

一个更复杂的解决方案是为您的应用程序创建一个单独的安全域。这允许仅为您的应用程序创建注册表。注册表可以是基于文件的、LDAP 或自定义注册表。请参阅:http: //publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp ?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/tsec_sec_domains_config.html

于 2010-04-19T16:32:21.847 回答
0

请参阅我在 WebSphere 6 下的基于文件的用户身份验证的博客,了解如何使用用户名/密码再次对用户进行身份验证。

于 2010-12-31T08:52:20.820 回答