[英]Spring Security RememberMe function with username and id
我有一个 Spring Boot 应用程序和由 Spring 安全处理的登录。 我已将 remeberme() 功能添加到 HttpSecurity
http.<...>.rememberMe().rememberMeParameter(REMEMBER_ME_PARAM).rememberMeCookieName(REMEMBER_ME_NAME).key(KEY_NAME).userDetailsService(userDetailsService);
并将复选框添加到登录表单。 我的用户通过他们的电子邮件作为用户名登录并属于一个特殊组。 这适用于只属于一个组的普通用户。
但是我有属于多个组的用户,其电子邮件与用户名相同(他们登录时会选择一个组)。
这个用户有几个数据库条目,每个用户都有一个 ID 但相同的电子邮件。 因此,我没有可在 RemeberMe Cookie 中使用的“唯一”用户名,因此当我使用该用户的记住我功能时,它会引发 500 异常。
例如,是否有可能将 remeberme cookie 扩展为也使用用户 ID? 这样我就可以获取cookie的电子邮件和ID并在数据库中搜索它?
我认为你应该改变方法。 在这里使用另一种方法 PersistentTokenBasedRememberMeServices
问题是我们有一个人实际上有两个用户名相同的用户。 例如数据库中的两个用户,都使用用户名/电子邮件 test@test.de
第一个用户的 ID 为 1,属于 Foo 组,第二个用户的 ID 为 2,属于组 Bar。 虽然相同的用户名所有用户可以有不同的名称,密码,....
然后该人使用 test@test.de 登录并获得一个选择选项,以选择他是要登录 Foo 组还是 Bar 组。
记住我功能现在只记住 cookie 中的用户名,所以我不能指定一个明确的用户。 由于用户也可以有不同的密码,我也不能使用登录的组选择。
据我所知 PersistentTokenBasedRememberMeServices 是否也只是使用用户名来识别用户?! 所以我需要有可能向保存/记住的用户添加第二个唯一字段(用户或组 ID)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.