我们正在使用我们的Web应用程序使用安全领域进行测试。在测试中,我们将针对Microsoft Active Directory。生产将违背自定义领域。我在Tomcat中工作得很好,但似乎无法在WebSphere中使用它。我在WebSphere中创建了一个可以连接到AD的安全域(foo-ldap)。现在我已经将foo-ldap应用于server1范围。在点击/ servlet / LoginServlet时,我没有被重定向到authenticate.faces。
下面包含Web.xml和Tomcat配置。
Tomcat配置:
<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldap://ActiveDirectorySrv:389"
connectionName="CN=ldap user,CN=Users,DC=foo,DC=com"
connectionPassword="Password1"
referrals="follow"
userBase="CN=Users,DC=foo,DC=com"
userSearch="(&(objectCategory=user)(sAMAccountName={0}))"
userSubtree="true"
userRoleName="memberOf"
roleBase="CN=Users,DC=foo,DC=com"
roleSubtree="true"
roleName="cn"
roleSearch="(member={0})"/>
Web.xml中
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/servlet/LoginServlet</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Developers</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/authenticate.faces</form-login-page>
<form-error-page>/loginFailed.faces</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>Developers</role-name>
</security-role>
答案 0 :(得分:1)
我遇到的问题有两个。
安全上下文的配置存在于web.xml中。它必须在应用程序安装时出现已安装的战争。我们已将配置注释掉,因此开发人员在调试时不需要提供凭据,而且在部署战争后我试图取消注释。
您必须在安装时将角色映射到安全领域。我们有一个部署应用程序的脚本,没有修改,没有映射角色,并且安装后映射角色的功能不可用。即使从ibm控制台站点安装,您也必须在安装时选择详细的安装和地图组,否则无法使用地图链接。
安装完安全性并重定向到登录页面后,我们遇到了另一个问题。我不确定这是否是我们的JSF代码的问题,但我无法重定向到在WebSphere中使用JSF的页面(与Tomcat一起正常工作)。我们的解决方案是只使用jsp页面进行身份验证页面。
希望这有助于其他人。