使用Grails Spring Security插件登录的附加字段

时间:2013-05-23 18:07:03

标签: grails spring-security grails-plugin

我的问题类似于这个问题

How to pass an additional parameter with spring security login page

虽然它适用于Grails Spring Security插件。如果我必须在登录(公司名称)中支持其他字段,我该如何在Grails中执行此操作?

我将从网址获取公司名称字段。

例如。 /登录信息?公司名称= C1 /登录信息?公司名称= C2

不同公司的不同用户可以使用相同的用户名。因此,用户名不是唯一的,但用户名+公司名称是唯一的。

先谢谢。

2 个答案:

答案 0 :(得分:0)

这不是一个很好的解决方案,但您可以将用户名和公司名称加入单个用户名字段。例如oneUser_company1oneUser_company2。在这种情况下,您必须为单个用户创建多个帐户。

答案 1 :(得分:0)

我认为this custom filter是一个起点。

您可能需要使用自定义AuthenticationToken来存储公司名称,而不是使用UsernamePasswordAuthenticationToken

您也需要AuthenticationProvider,因为您需要通过用户名和公司来获取您的用户。

流程将是:

  • 过滤器将创建您的自定义AuthenticationToken,存储公司字段。
  • 您的自定义AuthenticationProvider将获得此令牌,并尝试按用户名和公司
  • 加载用户
  • Spring Security Core会检查您的密码