Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有用户名和id的Spring Security Memberme函数_Java_Spring_Spring Security - Fatal编程技术网

Java 具有用户名和id的Spring Security Memberme函数

Java 具有用户名和id的Spring Security Memberme函数,java,spring,spring-security,Java,Spring,Spring Security,我有一个Spring启动应用程序和由Spring security处理的登录。我已将remeberme()功能添加到HttpSecurity http.<...>.rememberMe().rememberMeParameter(REMEMBER_ME_PARAM).rememberMeCookieName(REMEMBER_ME_NAME).key(KEY_NAME).userDetailsService(userDetailsService); http..rememberMe

我有一个Spring启动应用程序和由Spring security处理的登录。我已将remeberme()功能添加到HttpSecurity

http.<...>.rememberMe().rememberMeParameter(REMEMBER_ME_PARAM).rememberMeCookieName(REMEMBER_ME_NAME).key(KEY_NAME).userDetailsService(userDetailsService);
http..rememberMe().rememberMeParameter(记住我的参数)。rememberMeCookieName(记住我的名字)。key(键的名字)。userDetailsService(userDetailsService);
并在登录表单中添加了复选框。我的用户通过电子邮件作为用户名登录,并且属于一个特殊组。对于只属于一个组的普通用户来说,这很好

但我有一些用户属于几个组,他们的电子邮件与用户名相同(他们登录时会选择一个组)

此用户有多个数据库条目,每个用户具有单个ID但具有相同的电子邮件。所以我没有一个“唯一”的用户名可以在RemeberMe Cookie中使用,所以当我使用MemberMe功能时,它会抛出500个异常


是否有可能扩展remeberme cookie以同时使用用户ID(例如)?这样我就可以获得cookie的电子邮件和ID,并在数据库中搜索它

我认为你应该改变方法。使用另一种方法persistentTokenBasedMemberMeservices

问题是我们有一个人实际上有两个用户名相同的用户。例如,数据库中有两个用户,都使用用户名/电子邮件test@test.de

第一个用户ID为1,属于组Foo,第二个用户ID为2,属于组Bar。虽然相同的用户名,但所有用户都可以有不同的名称、密码等

然后,此人使用登录test@test.de并获得一个select选项,以选择他是否要登录组Foo或Bar

记住我的函数现在只记住cookie中的用户名,因此我无法分配显式用户。由于用户也可以有不同的密码,我也不能使用组选择的登录


就我所见,PersistentTokenBasedMemberMeservices是否也只使用用户名来标识用户?!因此,我需要向保存/记住的用户添加第二个唯一字段(用户或组id)。

如果他们可以使用该用户名登录,记住我的功能也应该可以工作(因为它下面使用相同的基础结构)。