我有一个服务a,它调用服务b来获取一些资源。当客户端使用访问令牌调用a,并且a将令牌中继到对b的请求时,它工作正常。现在,我正在实现redis来缓存数据。当我收到来自b的消息,某个内容被更新时,我需要调用b来检索那些更新的资源。但是,a现在没有访问令牌,并且我的请求未授权。有没有办法自动生成访问令牌?谢谢你的帮助。
wn9m85ua1#
我有点事要做,但不确定这是否是个好习惯。我为此创建了一个单独的rest模板。附属国:
<dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-security-oauth2-autoconfigure</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-jwt</artifactId> <version>1.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-resource-server</artifactId> </dependency>
启用:
@EnableOAuth2Client
应用程序.yml:
security: oauth2: auto: clientId: <client id> clientSecret: <client key> grantType: password username: <username> password: <password> accessTokenUri: <URI> userAuthorizationUri: <URI> scope: openid profile email
配置:
@Bean @ConfigurationProperties("security.oauth2.auto") protected ResourceOwnerPasswordResourceDetails autoOAuth2Details() { return new ResourceOwnerPasswordResourceDetails(); } @LoadBalanced @Bean protected OAuth2RestTemplate autoRestTemplate(RestTemplateCustomizer customizer) { OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(autoOAuth2Details); customizer.customize(restTemplate); return restTemplate; }
使用此模板,我的服务可以自己调用其他服务。
1条答案
按热度按时间wn9m85ua1#
我有点事要做,但不确定这是否是个好习惯。
我为此创建了一个单独的rest模板。
附属国:
启用:
应用程序.yml:
配置:
使用此模板,我的服务可以自己调用其他服务。