我正在使用基于websphere 7文件的基本安全性来处理我的简单Web应用程序。我的应用程序包含两个屏幕1.Add Partner 2.List Partner。 为此我创建了两个角色1.AddPartner 2.ListPartner。我使用不同的用户名和密码映射了这两个角色。当用户单击AddPartner链接时,它应该要求提供凭据,对于ListPartner链接也是如此。下面是我的web.xml条目(我正在使用strut2约定)
<security-constraint>
<web-resource-collection>
<web-resource-name>servicepartner</web-resource-name>
<url-pattern>/add-partner</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>AddPartner</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>servicepartner</web-resource-name>
<url-pattern>/list-partner</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ListPartner</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>AddPartner</role-name>
</security-role>
<security-role>
<role-name>ListPartner</role-name>
</security-role>
但它适用于AddPartner但是当我点击ListPartner链接应用程序时抛出403禁止错误,因为它检查了aganist AddPartner凭据。我在服务器控制台中遇到错误。
Authorization failed for user commonuser:defaultWIMFileBasedRealm while invoking GET on default_host:/serviceapp/list-partner, Authorization failed, Not granted any of the required roles: ListPartner
是否可以在单个应用程序中检查不同的凭据。请帮助我。
答案 0 :(得分:1)
必须执行以下步骤才能在Web模块中使用应用程序安全性:
1.您必须在WAS中启用“应用程序安全性”
2.您的应用程序(web.xml)必须定义角色,登录方法和资源限制。另请注明领域名称,例如<realm-name>defaultWIMFileBasedRealm</realm-name>
代码之间的<login-config>
3.角色必须映射到主题(用户,组或特殊主题,例如所有经过身份验证的用户到“某个”领域。这可以在Rational Application Developer中完成,我猜app.xml(物理上写入ibm-application-) bnd.xmi)或指定的部署时间