2014-01-06 94 views
0

当前Spring应用程序需要进行用户身份验证非常特殊的方式:在这种情况下应该定制哪个认证层?

用户进入通过与用户名(输入字段)和身份验证方法(下拉框)形式的应用和..potentially密码(输入域)如果需要的话,那么用户应该能够登录所提供的身份验证方法和凭证的应用(用户名和密码可能并不需要,如果使用LDAP等)

因此,在这种情况下,我想

<AuthenticationManager> 
    <BASICAuthenticationProvider/> 
    <DAOAuthenticationProvider/> 
    <LDAPAuthenticationProvider/> 
    ...... 
</AuthenticationManager> 

做不适用于这种情况。我是Spring Security的新手,经过一番研究,我发现有几个地方可能需要定制这种情况:AuthenticationManager,AuthenticationProvider,PreAuthenticationFilter等,但不知道那里开始。 然后哪些类应该被覆盖? AuthenticationProvider的?或预认证?甚至AuthenticationManager? Spring安全似乎有很多,但我不确定主角在哪里。我检查官方文件,但找不到类似于这种情况的解决方案。

在此先感谢。

+1

对不起,但是什么问题? –

+0

@Elliott Frisch只需更新问题,对于混淆感到抱歉。 – Dreamer

+0

什么是“非常具体的方式”?请给我们一个示例URL。 –

回答

1

您需要先从一些这样的事

<authentication-manager> 
    <authentication-provider user-service-ref="authenticationService"> 
    </authentication-provider> 
</authentication-manager> 

的AuthenticationService需要实现的UserDetailsS​​ervice(这是它加载用户特定数据的核心接口)。在这里你可以重载loadUserByUsername方法并提供一个可以获取用户详细信息的数据库。

相关问题