04-oauth2-ResourceServer

ResourceServer

资源服务器负责提供受保护资源,只是需要到授权服务器进行token验证。
所以,可以理解为我们的任意一个后台接口都是一个资源,资源服务器就对接口起到保护的作用。所以资源服务器一般集成到我们的微服务进程当中。maven可以是一个单独的模块,对其他的微服务模块进行保护。

  • 要访问资源服务器受保护的资源需要携带令牌(从授权服务器获得)
  • 客户端往往同时也是一个资源服务器,各个服务之间的通信(访问需要权限的资源)时需携带访问令牌
  • 资源服务器通过 @EnableResourceServer 注解来开启一个 OAuth2AuthenticationProcessingFilter 类型的过滤器
  • 通过继承 ResourceServerConfigurerAdapter 类来配置资源服务器

认证相关

首先,ResourceServerConfigurerAdapter会开启webSecurity,所以需要向spring-security一样,对http端点的保护进行配置

@Override
    public void configure(HttpSecurity http) throws Exception
    {
        http.csrf().disable();
        ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = http
                .authorizeRequests();
        registry.anyRequest().authenticated();
    }

oauth2相关

其次,对于oauth2的token认证,通过以下方式进行。

@Override
    public void configure(ResourceServerSecurityConfigurer resources)  throws Exception {
        RemoteTokenServices tokenService = new RemoteTokenServices();
        tokenService.setCheckTokenEndpointUrl(URL);
        tokenService.setClientId("net5ijy");
        tokenService.setClientSecret("12345678");
        resources.tokenServices(tokenService);
    }

这里没有过多的配置,只是到认证服务器验证token,其余都是默认配置。

总结

经过以上的配置,就保护了所有的url,都需要进行token的认证,认证方式是去AuthorizationServer验证token

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容