在我的grails应用程序中,我使用spring安全插件来处理使用用户的电子邮件和密码进行身份验证。
现在我需要将我的应用程序与一个处理会员编号和密码的外部系统集成。
在第二种情况下,我想通过询问用户的会员编号和密码来验证用户,然后调用外部网络服务来获取他们的信息,如电子邮件,并在我当前的应用程序中对其进行身份验证。
因此,用户可以直接使用他们的电子邮件地址和密码组合或会员编号和密码组合来验证他们自己。
任何建议如何实现这一目标...提前感谢: - )
答案 0 :(得分:1)
请参阅我对Spring Security and External Application for Authentication (Single-sign-on)和Configuring Spring Security 3.x to have multiple entry points的回答。您需要创建两个令牌(一个可以是默认UsernamePasswordAuthenticationToken
,第二个可以是您的自定义MembershipPasswordAuthenticationToken
(基本上是UsernamePasswordAuthenticationToken
扩展AbstractAuthenticationToken
的副本。)因为一个身份验证提供程序可以支持多个令牌,您可以在提供程序中编写逻辑来检查令牌类并进行适当的身份验证。例如,如果传入令牌属于类MembershipPasswordAuthenticationToken
,则调用webservice以获取电子邮件。
答案 1 :(得分:1)