2011-09-02 89 views
0

我在基于Spring MVC的web应用程序中使用spring security 3.0.5。我们需要检查四个参数,即用户名,密码,公司和组织。如何在Spring security 3.0.5中创建和配置自定义的UserDetailsByNameServiceWrapper?

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

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

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

我没有得到如何插入我的自定义UserDetailsByNameServiceWrapper在春季安全xml文件。

请帮忙。

回答

0

取而代之的是创建'自己的'UserDetailsByNameServiceWrapper而不是创建AuthenticationUserDetailsService。然后可以使用以下Spring Security配置注入此类:

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