Java Spring 3.2安全性-使用非唯一用户名和其他信息登录
标题试图解释该场景: 此客户具有登录功能,允许用户使用相同的名称但位于不同的位置(商店) 在登录页面,用户通知用户名、密码和所需的存储 使用SpringSecurity(与JPA一起)我创建了一个UserDetailsService实现,但是这个接口总是会收到一个用户名(并且商店必须与其他用户不同) 在这种情况下,我有两个问题:Java Spring 3.2安全性-使用非唯一用户名和其他信息登录,java,spring,spring-security,Java,Spring,Spring Security,标题试图解释该场景: 此客户具有登录功能,允许用户使用相同的名称但位于不同的位置(商店) 在登录页面,用户通知用户名、密码和所需的存储 使用SpringSecurity(与JPA一起)我创建了一个UserDetailsService实现,但是这个接口总是会收到一个用户名(并且商店必须与其他用户不同) 在这种情况下,我有两个问题: 如何将附加字段通知spring security?(存储) 如何使用此信息实现UserDetails服务? 这可能吗?我一直在做一些研究,但解决方案还不清楚。 谢谢你们
谢谢你们,你们是最好的,我不太清楚你们的问题。您是否有多个门店的唯一登录?然后,您不需要将存储区提供给您的
userdetails服务
实现。我只需使用其用户名
加载用户信息,如果用户未获得所有门店的授权,您可以使用授权权限
定义用户的授权位置,例如角色门店ID1
,角色门店ID2
,等等
如果您有多个用户不共享的存储,那么您可以简单地创建一个可配置的自定义实现UserDetailsService
,为每个存储实例化一个,并根据用户访问的存储使用正确的实例
我希望这会有所帮助。我的意思是,可以存在两个同名但适用于不同商店的用户。因此,在登录页面上,用户必须通知关联商店与其他商店中具有相同名称的其他用户不同。这就是为什么我需要存储(附加字段)来搜索数据库,如果我没有,查询可能会返回多个注册表,而不是一个注册表。如何获取UserDetailsService?capiche上的门店信息?别指望我再帮你了。对不起,我不是有意侮辱你的。这只是我们在工作中经常使用的一个表达。真的很抱歉。你解决问题了吗?