Spring security Spring Security中具有多个参数的自定义UserDetialsService

Spring security Spring Security中具有多个参数的自定义UserDetialsService,spring-security,customization,Spring Security,Customization,Spring Security有一个带有方法的UserDetailsService public UserDetails loadUserByUsername(String username) 通常我们需要创建UserDetailsServiceImpl来实现这个接口,并为上述方法提供实现 在我的应用程序中,用户名将不是唯一的。在不同的组织中可能是相同的。这在一个组织中是独一无二的。所以我需要按用户名和组织查找用户详细信息 在这种情况下,上述方法将不起作用。我正在尝试创建一个方法,该方法将采用

Spring Security有一个带有方法的UserDetailsService

public UserDetails loadUserByUsername(String username)
通常我们需要创建UserDetailsServiceImpl来实现这个接口,并为上述方法提供实现

在我的应用程序中,用户名将不是唯一的。在不同的组织中可能是相同的。这在一个组织中是独一无二的。所以我需要按用户名和组织查找用户详细信息

在这种情况下,上述方法将不起作用。我正在尝试创建一个方法,该方法将采用两个参数,即用户名和组织名称,并获取用户详细信息

登录表单将有三个参数用户名、组织名称和密码。此具有三个i/p参数的身份验证部分工作正常

但是我无法调用我的自定义方法


请提供帮助。

目前我能想到的更简单的选择是将组织与用户名连接起来。并添加一个简单的DB函数,在为每个用户插入时执行此操作

在数据库中,您可能有:

| organisation | username | organisation_username | | IBM | Jonny | IBM_Jonny | 或者不更改数据库:

myDetailsService.loadUserByUsername(user.getCompany() + "_" + user.getUsername());
myDetailsService.loadUserByUsername(user.getCompany() + "_" + user.getUsername());