Spring security 如何在SpringSecurity3.0.5中创建和配置自定义UserDetailsByNameServiceWrapper?

Spring security 如何在SpringSecurity3.0.5中创建和配置自定义UserDetailsByNameServiceWrapper?,spring-security,customization,Spring Security,Customization,我在基于SpringMVC的web应用程序中使用SpringSecurity3.0.5。我们需要检查身份验证的四个参数,即用户名、密码、公司和组织 为此,我编写了自己的自定义身份验证令牌,它封装了这四个字段。我还有一个自定义的用户详细信息服务 普通的UserDetails服务有loadUserByUsername(username),但在我的例子中,我需要这个方法来接受所有四个参数。为此,我决定提供UserDetailsByNameServiceWrapper的自定义实现,它调用loadUser

我在基于SpringMVC的web应用程序中使用SpringSecurity3.0.5。我们需要检查身份验证的四个参数,即用户名、密码、公司和组织

为此,我编写了自己的自定义身份验证令牌,它封装了这四个字段。我还有一个自定义的用户详细信息服务

普通的UserDetails服务有loadUserByUsername(username),但在我的例子中,我需要这个方法来接受所有四个参数。为此,我决定提供UserDetailsByNameServiceWrapper的自定义实现,它调用loadUserByUsername(用户名)

在我的自定义实现中,我将传递整个身份验证对象,而不仅仅是用户名

我不知道如何在spring安全xml文件中插入自定义UserDetailsByNameServiceWrapper


请帮忙

您不需要创建“您自己的”
UserDetailsByNameServiceWrapper
而需要实现
authenticationuserdetailssservice
。然后可以使用以下Spring安全配置注入此类:

<bean id="preAuthAuthProvider" class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
    <property name="preAuthenticatedUserDetailsService" ref="yourAuthenticationUserDetailsService" />
</bean>