2014-11-17 90 views
0

我正在使用LDAP完成身份驗證的應用程序。我沒有在本地機器上安裝LDAP,由於某些原因,我無法安裝它。創建存根登錄頁面

我如何創建一個存根登錄頁面,我只需輸入用戶名和一些仲裁密碼並且用戶獲得認證。認證後的會話應創建並呼叫喜歡:

request.getUserPrincipal().getName() 

應該回到我的登錄頁面上輸入的用戶名。

我有它基於的Spring Java/J2EE應用基礎,休眠(如果這能幫助)

回答

-1

即使你不檢查密碼,你需要輸入的名稱與用戶ID匹配的是認證。爲此,您需要通過記錄進行查詢,這意味着在本地系統上設置LDAP。

如果您不能這樣做,請嘗試OpenLDAP或其他替代方法。

+0

我希望存根認證過程。無法在本地機器上設置LDAP。 – Ankit

+0

我明白了。因此,使用一些預定義的返回值(存根用戶)替換您驗證的函數。 –

+0

@downvoter謹慎解釋? –

3

您可以使用不需要任何安裝的ApacheDS,並在本地啓用嵌入式LDAP服務器。

我們將此場景用於集成測試和開發模式。

這裏是春天的安全提供者配置的配置:

<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服務器productionfile之間的唯一區別是配置行:

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

而且我們在定義LDAP模式(Oranizations ...)的類路徑中提供ldap-user.ldif,並填充一些用戶進行測試。

最後添加到您的依賴關係:

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

,如果你不使用Maven剛纔下載的罐子,把它放在你的classpath。

希望它是幫助。