Java 来自不同URL时的不同登录
我有一个使用自定义authenticationManager进行登录的应用程序。它只是搜索一个名为Users的表Java 来自不同URL时的不同登录,java,security,spring,login,spring-security,Java,Security,Spring,Login,Spring Security,我有一个使用自定义authenticationManager进行登录的应用程序。它只是搜索一个名为Users的表 <sec:authentication-manager alias="authenticationManager"> <sec:authentication-provider user-service-ref="userDAOImpl"> <sec:password-encoder hash="sha" /> <
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider user-service-ref="userDAOImpl">
<sec:password-encoder hash="sha" />
</sec:authentication-provider>
</sec:authentication-manager>
问题是,现在我需要做另一个登录,它必须在表“ExternalUsers”上搜索
应用程序的工作方式如下:
谢谢我不认为是弹簧提供了开箱即用的功能。但是您可以实现自己的身份验证提供程序(implement
AuthenticationProvider
Interface),它根据某种逻辑将身份验证委托给一个两个标准的spring身份验证提供程序 Spring Security的未来版本可能允许多个身份验证管理器,但在此之前,一些定制将完成这项工作
我认为拉尔夫的回答是正确的。您可以添加另一个http元素()以捕获外部/**url模式,并添加自定义登录筛选器以将不同的令牌(可以命名为ExternalUserPasswordAuthenticationToken,扩展AbstractAuthenticationToken)传递给身份验证提供程序。请参阅和我的答案,以开发您自己的令牌和提供者
另一种方法(我不推荐)是为/external/**url模式设置一个投票者来执行身份验证任务。但是authenticationManager的实现如何知道请求的url?@Javi:my fault:authentication Provider not Manager