Spring OAuth2.0 - 动态注册OAuth2.0客户端

标签 spring spring-security oauth-2.0 spring-oauth2

我正在使用 Spring security 设置 OAuth2.0 授权服务器。我想知道是否有办法在OAuth2.0授权服务器启动并运行后动态注册OAuth2.0客户端?

基本上,我知道我可以在配置 OAuth2.0 服务器时注册客户端,方法是扩展 AuthorizationServerConfigurerAdapter 并重写配置方法以在内存中添加客户端详细信息。但是,这样客户端是预先注册的,我想知道如何动态添加客户端详细信息。

@覆盖 公共(public)无效配置(ClientDetailsS​​erviceConfigurer客户端)抛出异常{ //@formatter:关闭 client.inMemory() .withClient(CLIENT_ID) .secret(CLIENT_SECRET) .authorizedGrantTypes("authorization_code", "隐式") .redirectUris("http://junk/") .scopes("cn") .accessTokenValiditySeconds(600); //@formatter:on }

最佳答案

您应该能够只使用 JdbcClientDetails (甚至还有类似于内存中方法的便捷方法):

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.jdbc(dataSource)
                .passwordEncoder(passwordEncoder)
            .withClient("my-trusted-client")
        ... etc.

(代码取自此处:https://github.com/spring-projects/spring-security-oauth/blob/master/tests/annotation/jdbc/src/main/java/demo/Application.java#L102。)然后您就有了一个数据库,其中的数据可以在运行时根据需要进行更改。

关于Spring OAuth2.0 - 动态注册OAuth2.0客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38595878/

相关文章:

java - Spring Security @Postfilter 没有被触发

spring - Imports/Bean Refs 的属性占位符

http - 在过期 session : HTTP 401 response causes browser to display login window 上休息调用

java - Spring 安全 : forcing https using annotations?

java - 集成测试::OAuth 2.0 登录 (Facebook)

java - 使用 Spring RestTemplate for Android 发出经过身份验证的 POST 请求

java - 重复的 log4j 日志记录

java - 层次树角色的 Spring Security/Java EE 解决方案

python - 在没有 OAuth 同意屏幕的情况下尝试授权 AWS Lambda 进行 Google Calendar API 调用

php - OAuth 重定向(回调)在 Chrome 浏览器上不能正常工作