2

我的问题和这个类似

如何使用 Spring Security 登录页面传递附加参数

虽然它适用于 Grails Spring Security 插件。如果我必须在 login (company name) 中支持一个附加字段,我该如何在 Grails 中做到这一点?

我将从 URL 中获取公司名称字段。

例如。/login?companyname=c1 /login?companyname=c2

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

提前致谢。

4

2 回答 2

0

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

于 2013-05-23T20:02:12.493 回答
0

我认为这个自定义过滤器是一个起点。

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

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

流程将是:

  • 过滤器将创建您的自定义AuthenticationToken,存储公司字段。
  • 您的自定义AuthenticationProvider将获取此令牌并尝试按用户名和公司加载用户
  • Spring Security Core 将检查您的密码
于 2013-05-23T21:09:28.847 回答