首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring Security5中从SecurityContext获取令牌

在Spring Security5中从SecurityContext获取令牌
EN

Stack Overflow用户
提问于 2021-03-24 04:18:06
回答 1查看 41关注 0票数 0

我正在尝试使用spring security 5检索一个不透明令牌的值,这样我就可以将其传递给另一个rest应用程序以获取其他资源。下面是我的安全配置:

代码语言:javascript
复制
@EnableWebSecurity

公共类OAuth2ResourceServerSecurityConfiguration扩展了WebSecurityConfigurerAdapter {

代码语言:javascript
复制
@Value("${spring.security.oauth2.resourceserver.opaque.introspection-uri}") String introspectionUri;
@Value("${spring.security.oauth2.resourceserver.opaque.introspection-client-id}") String clientId;
@Value("${spring.security.oauth2.resourceserver.opaque.introspection-client-secret}") String clientSecret;

@Override
protected void configure(HttpSecurity http) throws Exception {
    // @formatter:off
    http
        .authorizeRequests((authorizeRequests) -> 
            authorizeRequests
                .antMatchers(HttpMethod.GET, "/message/**").hasAuthority("SCOPE_message:read")
                .antMatchers(HttpMethod.POST, "/message/**").hasAuthority("SCOPE_message:write")
                .anyRequest().authenticated()
        )
        .oauth2ResourceServer((oauth2ResourceServer) -> 
            oauth2ResourceServer
                .opaqueToken((opaqueToken) -> 
                    opaqueToken
                        .introspectionUri(this.introspectionUri)
                        .introspectionClientCredentials(this.clientId, this.clientSecret)
                )
        );
}

控制器看起来像这样:

代码语言:javascript
复制
    @GetMapping("/")
public String index(@AuthenticationPrincipal(expression="subject") String subject) {
    return String.format("Hello, %s!", subject);
}

我想从控制器内部访问令牌,以便将其转发到下一个服务。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-24 04:26:26

您可以在控制器方法中使用以下参数访问Spring MVC中的HTTP header Authorization

代码语言:javascript
复制
@RequestHeader("Authorization") String header)

请注意,它们可以是不记名标记,如果它们确实是不记名标记,则需要在"Bearer " (注意空格)之后使用一个子字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66770708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档