我有为tomcat web服务器工作的web应用程序。我想将它迁移到IBM websphere AS,但我遇到了安全问题。 整个应用程序安全性在web.xml文件中定义,如下所示:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>Dynamic pages</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>access.</description>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config id="LoginConfig_1">
<auth-method>FORM</auth-method>
<realm-name>SecureRealm</realm-name>
<form-login-config id="FormLoginConfig_1">
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginFail.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>User of the application.</description>
<role-name>user</role-name>
</security-role>
Websphere忽略所有这些安全性,并允许我从Web应用程序访问任何页面而不显示登录页面。如果我手动转到login.jsp并将正确的密码转发到应用程序但是它在getUserPrincipal()
上失败,因为它返回null(无登录)。如果我把错误的密码转发到loginFail.jsp也一样。
服务器日志中也没有错误。
我做错了什么或与tomcat有什么不同?
谢谢你的帮助。
答案 0 :(得分:4)
可能未启用WebSphere安全性。如果不是,您的web.xml设置将被忽略。
在管理控制台中,查看安全性 - &gt;全球安全部分。确保选中“启用应用程序安全性”。
请注意,您可以在不同的“级别”(节点,服务器等)创建不同的安全设置。如果您在安全性中定义了多个域 - &gt;安全域,确保运行webapp的应用服务器具有正确的域集。