使用grails中的外部Web服务对用户进行身份验证

时间:2011-03-11 07:16:09

标签: grails spring-security

在我的grails应用程序中,我使用spring安全插件来处理使用用户的电子邮件和密码进行身份验证。

现在我需要将我的应用程序与一个处理会员编号和密码的外部系统集成。

在第二种情况下,我想通过询问用户的会员编号和密码来验证用户,然后调用外部网络服务来获取他们的信息,如电子邮件,并在我当前的应用程序中对其进行身份验证。

因此,用户可以直接使用他们的电子邮件地址和密码组合或会员编号和密码组合来验证他们自己。

任何建议如何实现这一目标...提前感谢: - )

2 个答案:

答案 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)

从未这样做,但我认为您应该查看AuthenticationProvider接口(link)并制作您自己的实现,它可以以标准方式验证用户或使用从外部返回的一些回调信息应用。 Here是有关如何将自定义提供程序集成到应用程序中的一些信息。