小编Fil*_*nar的帖子

具有密码授予类型的 WebClient 的 Spring Security OAuth 客户端不要求新令牌

我有一个 Spring Web 应用程序,它有一个为其 API 端点配置的 oauth2 资源服务器,以及一个用于其进行的 REST 调用的完全不同的 oauth2 客户端。oauth2 客户端需要是密码授予类型。用户名和密码是固定的(不是来自 HTTP 请求)。我的问题是,30 分钟后访问令牌和刷新令牌都会过期,因此无法进行刷新。我希望 Spring Security 只会要求新的访问令牌,但没有。它使用过期端点调用 REST 端点,并返回 403。这是我所得到的:

应用程序.yml:

spring:
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: https://our.idp.keycloak.host/auth/realms/firstrealm
      client:
        registration:
          my-client-authorization:
            client-id: my_client
            client-secret: ${CLIENT_SECRET}
            authorization-grant-type: password
            scope: openid, profile
        provider:
          my-client-authorization:
            token-uri: https://our.idp.keycloak.host/auth/realms/secondrealm/protocol/openid-connect/token
Run Code Online (Sandbox Code Playgroud)

MyClientConfig.java:

import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.security.oauth2.client.OAuth2AuthorizationContext;
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager;
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProvider;
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProviderBuilder;
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
import org.springframework.security.oauth2.client.web.DefaultOAuth2AuthorizedClientManager;
import org.springframework.security.oauth2.client.web.OAuth2AuthorizedClientRepository;
import org.springframework.security.oauth2.client.web.reactive.function.client.ServletOAuth2AuthorizedClientExchangeFilterFunction;
import org.springframework.web.reactive.function.client.WebClient;

import java.util.Map;

@Configuration
@RequiredArgsConstructor
public class MyClientConfig …
Run Code Online (Sandbox Code Playgroud)

spring spring-security spring-webflux

7
推荐指数
1
解决办法
9217
查看次数

标签 统计

spring ×1

spring-security ×1

spring-webflux ×1