2

私はしばらくの間これについて頭を悩ませてきましたが、どこにも行き着きませんでした。これは私のsecurity-context.xmlにあるものです。これはサーブレットになります。

<security:http auto-config="true">
    <security:intercept-url pattern="/"
        access="IS_AUTHENTICATED_REMEMBERED" />
    <security:intercept-url pattern="/login.html"
        access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <security:form-login login-page="/login.html"
        authentication-failure-url="/loginFailed.html" default-target-url="" />
    <security:anonymous />
    <security:logout />
</security:http>

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider
        ref="ldapAuthProvider" />
</security:authentication-manager>

<beans:bean id="ldapAuthProvider"
    class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
    <beans:constructor-arg>
        <beans:bean
            class="org.springframework.security.ldap.authentication.BindAuthenticator">
            <beans:constructor-arg ref="contextSource" />
            <beans:property name="userSearch" ref="userSearch">
            </beans:property>
        </beans:bean>
    </beans:constructor-arg>
    <beans:constructor-arg>
        <beans:bean id="authoritiesPopulator"
            class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
            <beans:constructor-arg ref="contextSource" />
            <beans:constructor-arg value="" />
            <beans:property name="groupRoleAttribute" value="cn" />
            <beans:property name="searchSubtree" value="true" />
            <beans:property name="rolePrefix" value="ROLE_" />
            <beans:property name="convertToUpperCase" value="true" />
        </beans:bean>
    </beans:constructor-arg>
</beans:bean>

<beans:bean id="contextSource"
    class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <beans:constructor-arg
        value="thepathtomyLDAPdatabase" />
    <beans:property name="userDn"
        value="theuserpathforLDAP" />
    <beans:property name="password" value="mypassword" />
</beans:bean>

<beans:bean id="userSearch"
    class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
    <beans:constructor-arg index="0" value="CN=Users" />
    <beans:constructor-arg index="1"
        value="(sAMAccountName={0})" />
    <beans:constructor-arg index="2" ref="contextSource" />
    <beans:property name="searchSubtree" value="true" />
</beans:bean>

次のエラーが発生し続けます。

nested exception is java.lang.NoClassDefFoundError: org/springframework/dao/IncorrectResultSizeDataAccessException

誰かが私が間違っていることを教えてもらえますか?ありがとう。

4

1 に答える 1

4

クラスパスに spring-tx があることを確認する必要があります。ビルド ツールを使用している場合は、search.maven.orgのようなものを見て、構成がどのようになるかを説明することで、その構成を把握できます。たとえば、Spring 3.2.0.RELEASE と Maven を使用している場合は、pom.xml に次の内容が含まれていることを確認する必要があります。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

Spring 依存関係のバージョンが一致していることを確認することが重要であることに注意してください (つまり、グループ org.springframework のアーティファクトが一致する必要があります)。そのため、Spring 3.2.0.RELEASE を他の場所で使用していない場合は、バージョンを確実に変更する必要があります。他の Spring 依存関係と一致する番号。

于 2012-12-31T17:17:10.783 に答える