【问题标题】:Configure spring security with oauth2/openid for session id but also access token使用 oauth2/openid 为会话 id 配置 spring 安全性,但也可以访问令牌
【发布时间】:2020-08-04 11:10:22
【问题描述】:

是否可以使用 oauth2 配置 spring 以接受多种登录可能性?

目前我正在使用它:

@Override
    protected void configure(HttpSecurity http) throws Exception { // @formatter:off
        http.authorizeRequests(authorizeRequests -> authorizeRequests
                .anyRequest()
                .authenticated())
                .oauth2Login(AbstractAuthenticationFilterConfigurer::permitAll)
                .addFilterAfter(new CustomAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
                .logout(logout -> logout.logoutSuccessHandler(oidcLogoutSuccessHandler()))
                .oauth2ResourceServer().jwt();
    }  // @formatter:on

如果尝试访问授权资源,他会被重定向到身份提供者的登录页面,登录然后在客户端获取会话 ID。访问令牌和刷新令牌保存在服务器端的内存中。

但现在我也想使用访问令牌来访问资源。

但是当我这样做时,安全应用程序上下文只是空。

我该怎么办?

我在文档中进行了搜索,但不明白如何实现这一点。

我希望只添加 application.properties: spring.security.oauth2.resourceserver.jwt.jwk-set-uri

并添加: .oauth2ResourceServer().jwt() 到我的 HttpSecurity 但这不起作用。

【问题讨论】:

    标签: spring spring-security oauth-2.0


    【解决方案1】:

    找到答案了,如果在发送token的时候没有在Authorization header中设置Bearer作为前缀,那么就不会被识别。 有点正常,因为它是标准...

    【讨论】:

      猜你喜欢
      • 2020-04-17
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 2018-10-29
      • 2017-02-09
      • 2017-08-28
      • 2015-04-05
      相关资源
      最近更新 更多