2014-10-29 49 views
0

我有一個連接到LDAP服務器的Web應用程序,一切正常,直到現在在LDAP中創建一個新的分支和處理url我得到「錯誤302臨時移動」。我從來沒有像這樣,我有一個.properties中的LDAP服務器的配置。LDAP春天安全登錄處理url 302錯誤

奇怪的是,我的配置工作得很好,但現在你創建了一個新的分支進行測試,我得到了這個錯誤。

鼻子,這將是什麼使這種情況發生,如果我能幫助。

這些是我的文件。

利用這種配置工作

#Properties LDAP Server 
ldap.context.initialContextFactory = com.sun.jndi.ldap.LdapCtxFactory 
ldap.context.providerUrl   = ldap://192.168.0.31:389/dc=store,dc=web,dc=ap 
ldap.context.securityAuthentication = simple 
ldap.context.securityPrincipal  = cn=admin,dc=web,dc=ap 
ldap.context.securityCredentials = adm5569 

有了這個配置我發送HTTP錯誤302暫時移動

#Properties LDAP Server 
ldap.context.initialContextFactory = com.sun.jndi.ldap.LdapCtxFactory 
ldap.context.providerUrl   = ldap://192.168.0.31:389/dc=store2,dc=web,dc=ap 
ldap.context.securityAuthentication = simple 
ldap.context.securityPrincipal  = cn=admin,dc=web,dc=ap 
ldap.context.securityCredentials = adm5569 

這是我的security.xml文件

<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

    <http pattern="/webapp/ViewChangePassword" security="none" /> 
    <http pattern="/webapp/LogonForm" security="none" /> 


    <http auto-config="true"> 
     <intercept-url pattern="/webapp/Home" access="ROLE_USER" /> 
     <intercept-url pattern="/webapp/ListStore" access="IS_AUTHENTICATED_ANONYMOUSLY, ROLE_USER" /> 
     <intercept-url pattern="/webapp/CheckStoreJson" access="IS_AUTHENTICATED_ANONYMOUSLY, ROLE_USER" /> 
     <intercept-url pattern="/webapp/ViewChangePassword" access="IS_AUTHENTICATED_ANONYMOUSLY, ROLE_USER" /> 
     <intercept-url pattern="/webapp/ChangePassword" access="IS_AUTHENTICATED_ANONYMOUSLY, ROLE_USER" /> 
     <intercept-url pattern="/webapp/**" access="ROLE_USER" /> 

    <form-login login-page="/webapp/LogonForm" default-target-url="/webapp/Home" authentication-failure-url="/webapp/LogonForm?code=1" login-processing-url="/webapp/LogOn" /> 
     <logout logout-url="/webapp/LogOut" logout-success-url="/webapp/LogonForm?code=2" /> 
    </http> 

    <authentication-manager> 
     <authentication-provider ref="ldapAuthProvider"/> 
    </authentication-manager> 

    <ldap-server id="ldapServer" url="ldap://${ldap.server.ip}:${ldap.server.port}/${ldap.server.root}"/> 


    <beans:bean class="org.springframework.security.ldap.authentication.BindAuthenticator" id="ldapBindAuthenticator" > 
     <beans:constructor-arg ref="ldapServer"/> 
     <beans:property name="userSearch" ref="userSearch"/> 
    </beans:bean> 


    <beans:bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch" > 
     <beans:constructor-arg index="0" value="ou=usuarios"/> 
     <beans:constructor-arg index="1" value="(uid={0})"/> 
     <beans:constructor-arg index="2" ref="ldapServer" /> 
    </beans:bean> 


    <beans:bean class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator" id="ldapAuthoritiesPopulator" > 
     <beans:constructor-arg ref="ldapServer"/> 
     <beans:constructor-arg value="${ldap.springrole.rdn}"/> 
     <beans:property name="groupRoleAttribute" value="${ldap.springrole.attribute}"/> 
     <beans:property name="rolePrefix" value="${ldap.springrole.prefix}"/> 
     <beans:property name="groupSearchFilter" value="(objectClass=organizationalRole)"/> 
     <beans:property name="searchSubtree" value="true" /> 
    </beans:bean> 


    <beans:bean id="ldapAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider" > 
     <beans:constructor-arg ref="ldapBindAuthenticator"/> 
     <beans:constructor-arg ref="ldapAuthoritiesPopulator"/> 
     <beans:property name="userDetailsContextMapper" ref="ldapUserDetailsContextMapper"/> 
    </beans:bean> 


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

    <beans:bean class="cl.bbr.security.UserLdapMapper" id="ldapUserDetailsContextMapper"> 
     <beans:property name="template"   ref="ldapTemplate"/> 
    </beans:bean> 

</beans:beans> 

EDIT(1 )29-10-2014

302臨時移動出現在調試控制檯谷歌瀏覽器的錯誤,試圖通過登錄來登錄,我重定向到登錄錯誤頁面和調試控制檯谷歌我圖的URL來處理身份驗證與安全臨時移動。

請幫忙。

+0

什麼你的意思做「我得到‘錯誤302臨時移動’ ?你在哪裏看到它?是否有與之相關的堆棧跟蹤或調試日誌輸出?你什麼時候得到它 - 例如你在做什麼請求?是否有你被重定向到的URL?你是說認證失敗還是別的東西嗎?請編輯您的問題,包括這些信息。我猜你的認證只是失敗,所以你將被重定向到登錄錯誤的URL。 – 2014-10-29 17:52:24

+0

感謝我在後添加評論的答覆。 謝謝 – 2014-10-29 18:06:46

+0

啓用調試日誌記錄並查看服務器日誌內容是實際問題發生的地方。只需查看瀏覽器控制檯,就無法瞭解服務器錯誤。一個302響應代碼只是一個重定向,所以幾乎可以肯定你的身份驗證失敗了,因爲LDAP的變化,你只是被髮回到登錄頁面。 – 2014-10-29 20:46:05

回答

0

我找到了解決辦法,我只好放棄權限的用戶在分支,讀取,修改和刪除分支我要去