如何让OAuth2服务器从数据库中读取客户端,而不是写入内存?

7uzetpgm  于 2022-10-04  发布在  Spring
关注(0)|答案(1)|浏览(135)

因此,我想找到一种方法来读取客户端凭据(CLIENT_ID、CLIENT_SECRET等)从数据库中。我目前使用的是SpringBoot 2.7.3。我找到的每个教程都是4年多前的,并且使用了过时的依赖项。

watbbzwu

watbbzwu1#

您可能正在使用ClientRegistrationRepository接口的InMemoryClientRegistrationRepository实现。如果要从另一个位置检索客户端,则必须创建该接口的新实现。如果您使用的是Spring data JPA,则可以执行以下操作:

public interface ClientRegistrationSpringDataRepository extends JpaRepository<ClientRegistrationEntity, String> { 

}

@Repository
public class DaoClientRegistrationRepository implement ClientRegistrationRepository {

    private final ClientRegistrationSpringDataRepository repository;

    // constructor

    @Override
    public ClientRegistration findByRegistrationId(String registrationId) {
        ClientRegistrationEntity entity = this.repository.getById(registrationId);
        return mapToClientRegistration(entity);
    }

    private ClientRegistration mapToClientRegistration(ClientRegistrationEntity entity) {
        // your logic
    }

}

相关问题