Websphere 7简单领域(如tomcat-users.xml)

时间:2010-04-19 15:33:53

标签: java authentication tomcat websphere basic-authentication

我正在尝试将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>

3 个答案:

答案 0 :(得分:5)

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

在管理控制台中,转到:安全 - &gt; 全局安全并确保选中启用应用安全性复选框。

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

答案 1 :(得分:4)

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

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

更复杂的解决方案是为您的应用程序创建单独的安全域。这允许仅为您的应用程序创建注册表。注册表可以是基于文件的,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

答案 2 :(得分:0)

请参阅我的File-based User Authentication under WebSphere 6博客,了解如何针对具有用户名/密码的文件对用户进行身份验证。