Spring Security 3.1 ActiveDirectoryLdapAuthenticationprovider Rückkehr Teilergebnis Ausnahme

Ich versuche mich zu authentifizieren von Benutzern auf einem Active Directory-Instanz über spring security, erhalte ich eine Partielle Ergebnisse Ausnahme. Ich bin im Kreise herum zu versuchen, um dies herauszufinden. Unten ist meine config.

security-app-Kontext

<authentication-manager erase-credentials="true">
        <authentication-provider>
            <user-service>
                <user name="[email protected]" authorities="ROLE_ADMINISTRATOR" password="123admin123" />
            </user-service>
        </authentication-provider>
        <authentication-provider ref="ldapActiveDirectoryAuthProvider"/>
</authentication-manager>

<bean id="ldapActiveDirectoryAuthProvider"
      class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
    <constructor-arg value="myDomain.com" />
    <constructor-arg value="ldap://ldapurl:389/" />
    <property name="convertSubErrorCodesToExceptions" value="true"/>
</bean>  

Fehler, ich bin immer

 org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 0        org.springframework.security.ldap.SpringSecurityLdapTemplate.searchForSingleEntryInternal(SpringSecurityLdapTemplate.java:239)

Ich bin kämpfen, um zu finden, die Beispiele und die Dokumentation zeigt, arbeite ich in die richtige Richtung.

Dies ist aus den Protokollen

SpringSecurityLdapTemplate.java 213 - Searching for entry under DN '', base = 'dc=myDomain,dc=com', filter = '(&(objectClass=user)(userPrincipalName={0}))'

und das ist, was ich erwarten würde, dass Sie Aussehen wie auf einem erfolgreichen Versuch von einigen Skripts, die Arbeit

Searching for entry under DN 'OU=Users and Groups,DC=one,DC=two,DC=myDomain,DC=com', base = 'OU=Users and Groups,DC=one,DC=two,DC=myDomain,DC=com', filter = '(&(objectClass=user)(userPrincipalName={0}))'

Muss ich die DN besiedelt? Wie? Ich schaute durch die ActiveDirectoryLdapAuthenticationprovider Eigenschaften und sehen nicht ein Weg? Auch die base ist Weg, aber myDomain.com ist die richtige Domäne für Benutzer-e.g [email protected]. Hat jemand ein ähnliches problem?

  • Ist der filter eigentlich für den Benutzer gültig ist, in Frage? Wenn nicht, können Sie das problem Auftritt, berichtet in diesem Thema.
  • Hallo Lukas, Die Benutzer-filter gültig ist, aber die Basis ist weniger spezifisch und die DN hat nicht gesetzt wurde.Versuchen, eine ldapsearch Befehl Linie Werkzeug, mit dem spring-Werte(no DN,weniger spezifische Basis, aber mit dem Benutzer zu binden und zu suchen) bekomme ich eine Fehlermeldung, aber wenn ich geben Sie den vollständigen Basis mit einem "OU=" Wert bekomme ich eine erfolgreiche Rückkehr. Ich habe gelesen, dass überweisungen können Probleme mit active directory, vielleicht ist das das problem. In der Zwischenzeit werde ich einen Blick auf die anderen authentication-providers oder Schreibe meine eigenen, wenn keiner arbeiten. Vielen Dank für Ihre Hilfe.
  • Taylor benutzt habe ich eine ldap-authentication-provider user-search base definiert, welche funktioniert. Ich bin mir nicht sicher, warum die ActiveDirectory-Authenticator nicht funktionieren würde, aber ich vermute, es hatte damit zu tun, mit Empfehlungen, wie wenn die such-Datenbank wurde verengt, es wurde erfolgreich zurückgegeben.
  • Könnten Sie fügen Sie den kompletten code inklusive der Konfigurationsdateien.
InformationsquelleAutor Damien | 2012-02-17
Schreibe einen Kommentar