创建存根登录页面

时间:2014-11-17 11:48:00

标签: java spring login

我正在开发一个使用LDAP完成身份验证的应用程序。我没有在本地计算机上安装LDAP,但由于某些原因我也无法设置它。

如何创建存根登录页面,我只需输入用户名和一些仲裁密码,用户就可以进行身份​​验证。在身份验证之后,应创建一个会话以及如下的调用:

request.getUserPrincipal().getName()

应该返回登录页面上输入的用户名。

我有基于java / J2EE的应用程序,它基于spring,hibernate(如果这有帮助)

2 个答案:

答案 0 :(得分:3)

您可以使用不需要任何安装的ApacheDS,并在本地启用嵌入式LDAP服务器。

我们将此场景用于集成测试和开发模式。

这是一个带有spring安全提供程序配置的配置:

<ldap-server ldif="classpath:ldap-users.ldif" port="33389" root="dc=yourCompany,dc=com" />

<beans:bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
    <beans:property name="url" value="ldaps://127.0.0.1:33389/dc=yourCompany,dc=com"/>
    <beans:property name="userDn" value="cn=Manager,cn=Users"/>
    <beans:property name="password" value="secret"/>
</beans:bean>

<beans:bean id="ldapTemplate" class ="org.springframework.ldap.core.LdapTemplate" >
    <beans:constructor-arg ref="contextSource" />
</beans:bean>

此文件与指向真实LDAP服务器的生产文件之间的唯一区别是此配置行:

<ldap-server ldif="classpath:ldap-users.ldif" port="33389" root="dc=yourCompany,dc=com" />

我们在类路径中提供了一个ldap-user.ldif来定义LDAP模式(Oranizations ...)并填充一些用户进行测试。

最后将其添加到您的依赖项中:

            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-server-jndi</artifactId>
                <version>1.5.5</version>
            </dependency>

如果您不使用Maven,只需下载jar并将其放入类路径即可。

希望有帮助。

答案 1 :(得分:-1)

即使您不检查密码,也需要将输入的名称与要进行身份验证的用户ID匹配。为此,您需要查询记录,这实际上意味着在本地系统上设置LDAP。

如果您不能这样做,请尝试OpenLDAP或其他替代方案。