You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

允许匿名请求的Spring Boot OAuth2 Feign

要实现允许匿名请求的Spring Boot OAuth2 Feign,您可以按照以下步骤进行操作:

  1. 添加所需的依赖项。在您的Spring Boot项目的pom.xml文件中添加以下依赖项:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security.oauth.boot</groupId>
    <artifactId>spring-security-oauth2-autoconfigure</artifactId>
</dependency>
  1. 创建一个Feign客户端接口。创建一个接口,并使用@FeignClient注解将其标记为Feign客户端
@FeignClient(name = "my-service", url = "http://localhost:8080", configuration = FeignConfiguration.class)
public interface MyServiceClient {

    @RequestMapping(value = "/api/resource", method = RequestMethod.GET)
    ResponseEntity<String> getResource();
}
  1. 创建一个Feign配置类。在您的项目中创建一个配置类,实现RequestInterceptor接口,并在apply方法中添加逻辑来处理OAuth2令牌。
@Configuration
public class FeignConfiguration implements RequestInterceptor {

    @Override
    public void apply(RequestTemplate template) {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if (authentication != null && authentication instanceof OAuth2Authentication) {
            OAuth2Authentication oauth = (OAuth2Authentication) authentication;
            OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) oauth.getDetails();
            template.header("Authorization", "Bearer " + details.getTokenValue());
        }
    }
}
  1. 配置Spring Security。在您的Spring Boot项目中的application.properties或application.yml文件中添加以下配置来允许匿名访问所需的端点。
security:
  oauth2:
    resource:
      jwt:
        key-value: your-public-key
  ignored: /api/resource

或者,您可以创建一个配置类来配置Spring Security

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/api/resource").permitAll()
            .anyRequest().authenticated();
    }
}

以上就是实现允许匿名请求的Spring Boot OAuth2 Feign的解决方法。请根据您的项目需求进行调整和修改。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

2022技术盘点之平台云原生架构演进之道|社区征文

原始的Spring Cloud全家桶的微服务架构,经过不断发展,也在演进为基础设施下沉的云原生架构,让应用生于云,长于云,充分利用云上能力,降本增效,削减技术债务,专注业务创新。下图为SmartOps架构全景:![](https://k... Springboot Gateway 使用Spring Cloud Kubernetes 与api Servier的http交互,获取后端 服务 Services / Endpoints,完成服务请求转发。服务注册:spring Cloud应用配置有serivce的服务,启动后k8s集群针对调用该serv...

微服务的学习与实践 主赛道 | 社区征文

我主要学习了 Spring BootSpring Cloud、Docker、Kubernetes、Nacos、Sentinel、OpenFeign、JWT、ElasticSearch 等技术,它们分别涵盖了微服务的开发、构建、部署、注册、发现、配置、熔断、降级、限流、负载均衡、认证、授权、搜索、日志、监控等方面的功能,形成了一个完整的微服务解决方案。我通过阅读官方文档、源码和案例,掌握了这些技术的基本原理、使用方法和最佳实践,也遇到了一些问题和困难,通过查阅资料、请教同行和实...

云原生安全:保护云端应用的新策略与挑战 | 社区征文

// 使用 Spring Security 进行微服务身份验证和授权@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(Http... .oauth2ResourceServer() .jwt(); }}``` 4. 持续集成/持续交付(CI/CD)安全```groovypipeline { agent any stages { stage('Build') { steps { // 执...

Maven依赖冲突避坑指北

你的工程里引入了spring-boot-starter-redis包,然后又有使用分布式锁的需求,但由于spring-boot官方并未提供成型的类库使用,于是你在度娘上找了个xxx-distribution-lock-redis, 顺手贴进了pom 里。写完代码后启动工程准备秀一波,结果 console输出如下信息:``` Cause by: java.lang.NoclassDefFoundError:org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration ...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

允许匿名请求的Spring Boot OAuth2 Feign-优选内容

2022技术盘点之平台云原生架构演进之道|社区征文
原始的Spring Cloud全家桶的微服务架构,经过不断发展,也在演进为基础设施下沉的云原生架构,让应用生于云,长于云,充分利用云上能力,降本增效,削减技术债务,专注业务创新。下图为SmartOps架构全景:![](https://k... Springboot Gateway 使用Spring Cloud Kubernetes 与api Servier的http交互,获取后端 服务 Services / Endpoints,完成服务请求转发。服务注册:spring Cloud应用配置有serivce的服务,启动后k8s集群针对调用该serv...
微服务的学习与实践 主赛道 | 社区征文
我主要学习了 Spring BootSpring Cloud、Docker、Kubernetes、Nacos、Sentinel、OpenFeign、JWT、ElasticSearch 等技术,它们分别涵盖了微服务的开发、构建、部署、注册、发现、配置、熔断、降级、限流、负载均衡、认证、授权、搜索、日志、监控等方面的功能,形成了一个完整的微服务解决方案。我通过阅读官方文档、源码和案例,掌握了这些技术的基本原理、使用方法和最佳实践,也遇到了一些问题和困难,通过查阅资料、请教同行和实...
云原生安全:保护云端应用的新策略与挑战 | 社区征文
// 使用 Spring Security 进行微服务身份验证和授权@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(Http... .oauth2ResourceServer() .jwt(); }}``` 4. 持续集成/持续交付(CI/CD)安全```groovypipeline { agent any stages { stage('Build') { steps { // 执...
Maven依赖冲突避坑指北
你的工程里引入了spring-boot-starter-redis包,然后又有使用分布式锁的需求,但由于spring-boot官方并未提供成型的类库使用,于是你在度娘上找了个xxx-distribution-lock-redis, 顺手贴进了pom 里。写完代码后启动工程准备秀一波,结果 console输出如下信息:``` Cause by: java.lang.NoclassDefFoundError:org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration ...

允许匿名请求的Spring Boot OAuth2 Feign-相关内容

Java应用接入

放置支持的插件的jar包 -- apm-feign-default-http-9.x-plugin-1.0.0-stable.jar -- apm-httpClient-4.x-plugin-1.0.0-stable.jar -- apm-jdbc-commons-1.0.0-stable.jar `-- ...jar 执行以下命令,集成... 如果是spring cloud/dubbo服务,最好与其服务名保持一致。 agent.service_type 是 服务类型。http或rpc。 agent.endpoint 是 上报端点,格式为schema://host:port。 agent.app_key 是 appkey是用户的唯一标...

使用限制

存在开启鉴权后,无法正常使用配置中心的缺陷。 1.4.0~1.4.4+ 建议升级至兼容版本。可使用,但 Nacos 原生版本存在性能差异。 GO 2.2.1~2.2.4 兼容。 2.1.1~2.1.3 兼容。 2.0.0~2.1.0 建议升级至兼容版本。存在内... 框架 版本 JDK 1.8+ feign 9.3.1+ apache httpclient 4.0+ resttemplate 4.3.6+ okhttp 3.0.0+ webclient 5.3+ springmvc 4.3.6+ nacos 1.4+ eureka 1.9+ alibaba-dubbo 2.6+ rocketmq 4.8+ table th:first-of-...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询