当前位置: 首页 > 知识库问答 >
问题:

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

公羊俭
2023-03-14

标题试图解释该场景:

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

在登录页面,用户通知用户名、密码和所需的存储。

使用Spring Security(使用JPA)我创建了一个UserDetailsService实现,但此接口始终接收一个用户名(并且存储对于与其他用户不同至关重要)。

鉴于这种情况,我有两个问题:

>

  • 如何通知spring security有关附加字段的信息?(门店)

    如何使用此信息实现UserDetailsService?

    这可能吗?我一直在做一些研究,但解决方案还不清楚。谢谢你们,你们是最棒的

  • 共有1个答案

    陆洲
    2023-03-14

    你的问题我不太清楚。您是否有多个门店的唯一登录?然后,您不需要将存储区提供给您的用户详细信息服务(UserDetailsService)实现。我只需使用其用户名加载用户信息,如果用户没有获得所有门店的授权,您可以使用授权权限定义用户的授权位置,例如,角色存储ID1、角色存储ID2等。

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

    我希望这会有所帮助。

     类似资料:
    • 我已经创建了一个Spring Security应用程序。当用户登录时,用户名和角色将存储在安全上下文中。可以使用对象principal=SecurityContextHolder.getContext().getAuthentication().getPrincipal()检索相同的内容; 如何在上下文中存储附加的用户信息,如用户ID、电子邮件、关联分支ID等?

    • 当此用户登录系统时,我想更改用户名。我实现了自己的加密算法,但无法获得真正的密码来进行新的认证并将其放入

    • 我正在使用C#上的新MIP SDK构建POC应用程序。其中一个要求是使用存储在服务器上的用户名/密码。所有示例应用程序都使用OAuth2登录,并带有一个用于用户凭据输入的弹出窗口。我相信正确实现IAuth代表团可能会有所帮助,但内联留档没有多大帮助。在我的引擎初始化方法中,我遵循SDK示例 AuthDelegateImplementation具有以下代码 谢谢你的帮助,C。

    • 我目前正在使用React在一个网站上工作,我希望能够有用户登录。现在,我的策略是在提交时将表单数据发送到服务器(express),如果信息与我的数据库中的用户匹配,服务器将发回一个签名的JWT,其中没有敏感信息(只有用户名)。 一旦客户机接收到JWT,我就将它添加到localStorage中,并将它的解码数据添加到redux存储中。我计划让我的redux存储当前登录的用户。

    • 我在这里试图实现的是避免将keycloak用户数据库复制到另一个本地数据库,但似乎不可能访问任何其他用户信息,除了当前会话中的一个...

    • 我正在使用spring security的spring boot 2.2.4。我面临的问题是,每次我与新用户登录时,主要用户名都会重置为新登录用户的详细信息,为什么。然而,正如我所观察到的,会话ID仍然正确。我不理解这种行为。知道吗? 用户详情服务 UserDetails类