标题试图解释这个场景:
此客户具有登录功能,允许具有相同名称但位于不同位置(商店)的用户。
在登录页面,用户会通知用户名,密码和所需的商店。
使用Spring Security(使用JPA)我创建了一个UserDetailsService实现,但是这个接口总是收到一个userName(并且该商店对于与其他用户不同而言是必不可少的。)
在这种情况下,我有两个问题:
如何通知春季安全有关其他字段?(商店)
如何使用此信息实现UserDetailsService?
这甚至可能吗?我一直在做一些研究,但解决方案并不清楚。 谢谢你们,你们是最好的= D
答案 0 :(得分:1)
你的问题对我来说并不是很清楚。您是否有多个商店的唯一登录?然后,您无需将商店提供给UserDetailsService
实施。我只是使用其username
加载用户信息,如果用户未获得所有商店的授权,您可以使用GrantedAuthority
来定义用户的授权位置,例如: ROLE_STORE_ID1
,ROLE_STORE_ID2
等
如果你有多个商店没有共享用户,那么你可以简单地创建一个UserDetailsService
的可配置自定义实现,每个商店实例化一个并根据用户访问的商店使用正确的实例。
我希望这会有所帮助。