Spring 3.2安全性 - 使用非唯一用户名和其他信息登录

时间:2013-07-23 18:24:11

标签: java spring spring-security

标题试图解释这个场景:

此客户具有登录功能,允许具有相同名称但位于不同位置(商店)的用户。

在登录页面,用户会通知用户名,密码和所需的商店。

使用Spring Security(使用JPA)我创建了一个UserDetailsS​​ervice实现,但是这个接口总是收到一个userName(并且该商店对于与其他用户不同而言是必不可少的。)

在这种情况下,我有两个问题:

  1. 如何通知春季安全有关其他字段?(商店)

  2. 如何使用此信息实现UserDetailsS​​ervice?

  3. 这甚至可能吗?我一直在做一些研究,但解决方案并不清楚。  谢谢你们,你们是最好的= D

1 个答案:

答案 0 :(得分:1)

你的问题对我来说并不是很清楚。您是否有多个商店的唯一登录?然后,您无需将商店提供给UserDetailsService实施。我只是使用其username加载用户信息,如果用户未获得所有商店的授权,您可以使用GrantedAuthority来定义用户的授权位置,例如: ROLE_STORE_ID1ROLE_STORE_ID2

如果你有多个商店没有共享用户,那么你可以简单地创建一个UserDetailsService的可配置自定义实现,每个商店实例化一个并根据用户访问的商店使用正确的实例。

我希望这会有所帮助。