0

ユーザーの認証に春のセキュリティを使用しています。

カスタム認証プロバイダーと UserDetails インターフェースの実装を作成しました。

以下はapplication-context.xmlです

<beans:bean id="authenticationProvider" class="com.utils.UserAuthenticationProvider" >
</beans:bean>

<beans:bean id="passwordEncoder" class="com.utils.PasswordUtil"/>
<beans:bean id="saltSource" class="org.springframework.security.authentication.dao.ReflectionSaltSource">
    <beans:property name="userPropertyToUse" value="lastChangeDate" />
</beans:bean>

<authentication-manager alias="authenticationManager" >
    <authentication-provider user-service-ref="userDetailsService" >
        <password-encoder ref="passwordEncoder">
             <salt-source ref="saltSource" />
        </password-encoder>
    </authentication-provider>
</authentication-manager>
<beans:bean id="userDetailsService" class="com.service.impl.UserDetailsServiceImpl" />

カスタム認証プロバイダーを認証マネージャー タグにリンクできません。

「custom-authenitication-provider」タグを使ってみたのですが、このタグはSpring 3以降にはないようです。

助けてください。さらに情報が必要な場合はお知らせください

4

1 に答える 1

0

これは次の方法で試すことができます。

<bean id="authenticationFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter"
        p:authenticationManager-ref="customAuthenticationManager"
        p:authenticationFailureHandler-ref="customAuthenticationFailureHandler"
        p:authenticationSuccessHandler-ref="customAuthenticationSuccessHandler" 
                p:sessionAuthenticationStrategy-ref="sas"/>

    <bean id="customAuthenticationManager" class="com.xxx.yyy.zzz.security.filters.CustomAuthenticationFilter">
        <constructor-arg type="org.hibernate.SessionFactory" ref="sessionFactory"/>
    </bean>

- 編集 -

カスタム認証プロバイダーを使用するだけの場合は、次の方法で指定できます。

<security:authentication-manager>
        <security:authentication-provider ref="authenticationProvider">
        </security:authentication-provider>
    </security:authentication-manager>

これがお役に立てば幸いです。乾杯。

于 2012-11-21T12:43:14.227 に答える