Spring 自定义身份验证管理器(带有自定义用户详细信息服务)

Spring custom authentication manager (with custom user details service)

在我的 Spring 应用程序中,我希望我的 ProviderManager class 实现 Serializable class(出于我自己的原因),当然我们不能编辑 Spring代码,所以我所做的一种方法是使用自定义 class 调用 CustomProviderManager 扩展 ProviderManager 并实现 Serializable class.
我的身份验证管理器的旧声明是这样的:

    <security:authentication-manager alias="authenticationManager">
      <security:authentication-provider
        user-service-ref="customUserDetailsService" >
        <security:password-encoder hash="md5" />
      </security:authentication-provider>
    </security:authentication-manager>

我如何为我的 CustomProviderManager class 配置上面的片段(我的自定义身份验证管理器的身份验证提供程序应该使用自定义用户详细信息服务名称“customUserDetailsS​​ervice”和密码编码器是“md5”)

有点取决于您的 CustomProviderManager,但像这样:

<bean id="authenticationManager" class="CustomProviderManager">
  <constructor-arg>
    <bean class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
      <property name="userDetailsService" ref="customUserDetailsService"/>
      <property name="passwordEncoder">
        <bean class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>
      </property>
    </bean>
  </constructor-arg>
</bean>