Java 使用LDAP和存储在数据库中的凭据的Spring安全性

Java 使用LDAP和存储在数据库中的凭据的Spring安全性,java,spring-boot,authentication,ldap,Java,Spring Boot,Authentication,Ldap,我有一个带有Spring安全性的Spring启动应用程序和一个“硬编码”用户帐户作为临时解决方案。 现在,我需要介绍一个真实的帐户,其中包含存储在数据库(PG)中的用户详细信息。用户详细信息应包括用户名、bcrypt-ed密码、特定于应用程序的角色和首选项。因此,目前我需要根据这些数据对用户进行身份验证。这是第一个选择 另一方面,以后可能会使用公司提供的外部身份验证服务(LDAP)。在这种情况下,外部身份验证必须与仍存储在数据库中的详细信息(特定于应用程序的角色和首选项)结合使用。这是第二种选择

我有一个带有Spring安全性的Spring启动应用程序和一个“硬编码”用户帐户作为临时解决方案。 现在,我需要介绍一个真实的帐户,其中包含存储在数据库(PG)中的用户详细信息。用户详细信息应包括用户名、bcrypt-ed密码、特定于应用程序的角色和首选项。因此,目前我需要根据这些数据对用户进行身份验证。这是第一个选择

另一方面,以后可能会使用公司提供的外部身份验证服务(LDAP)。在这种情况下,外部身份验证必须与仍存储在数据库中的详细信息(特定于应用程序的角色和首选项)结合使用。这是第二种选择

主要的问题是如何以这样一种方式实现身份验证过程,即在这两个选项之间切换将需要最少的努力。事实上,应用程序可能在不同的环境中使用,因此必须通过更改配置(而不是代码)来访问这两个选项

看起来我现在可以实现基于LDAP的身份验证(unbounded),并使用数据库中的详细信息。完成此操作后,我可以通过更改ldap服务器URL并通知客户端他们应该使用公司凭据而不是应用程序内凭据来切换到外部身份验证

大量关于Spring Boot+LDAP的示例和教程演示了如何使用存储在LDIF文件中的凭据。我可以使用存储在数据库中的凭据吗


请参考合适的Spring Boot配置示例。

试着研究一下这个问题。