Kevin's blog Kevin's blog
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档

Kevin

你可以迷茫,但不可以虚度
首页
  • AI基础
  • RAG技术
  • 提示词工程
  • Wireshark抓包
  • 常见问题
  • 数据库
  • 代码技巧
  • 浏览器
  • 手册教程
  • 技术应用
  • 流程规范
  • github技巧
  • git笔记
  • vpn笔记
  • 知识概念
  • 学习笔记
  • 环境搭建
  • linux&运维
  • 微服务
  • 经验技巧
  • 实用手册
  • arthas常用
  • spring应用
  • javaAgent技术
  • 网站
友情链接
  • 分类
  • 标签
  • 归档
  • 微服务架构筑基础
  • Feign支持BasicAuth验证
    • Feign与OpenFeign
    • Feign请求压缩与超时等配置
    • OAUTH2.0协议
    • 分布式配置中心-apollo

    • alibaba-nacos

    • 微服务
    kevin
    2022-05-24
    目录

    Feign支持BasicAuth验证

    # Feign支持BasicAuth验证

    # 一、背景

    一些比较重要的微服务,我们暴露的接口可能会希望安全性更高一些,此时,我们会给这些接口增加一些鉴权,如比较简单且方便的鉴权方式Basic Auth鉴权,此时,针对这些有Basic Auth鉴权的接口,我们该如何写Feign,其实是通过覆盖Feign的默认配置来支持鉴权。

    # 二、 步骤

    FeignClient的属性configuration增加自定义配置HeadingConfiguration.class

    @FeignClient(name = "heading-server", configuration = HeadingConfiguration.class)
    public interface HeadingClient {
        //..
    }
    
    1
    2
    3
    4

    HeadingConfiguration.class如下(特别注意,别加@Configuration注解,避免扫包扫到导致给全局的Feign都增加了BasicAuthRequestInterceptor拦截器):

    import feign.auth.BasicAuthRequestInterceptor;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * basic验证配置
     */
    @EnableConfigurationProperties({HeaDingProperties.class})
    public class HeadingConfiguration {
        @Autowired
        private HeaDingProperties properties;
    
        public HeadingConfiguration() {
        }
    
        @Bean
        public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
            return new BasicAuthRequestInterceptor(properties.getUsername(), properties.getPassword());
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    其中HeaDingProperties.java为

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    /**
     * basic验证配置
     */
    @ConfigurationProperties(prefix = "heading")
    @Data
    public class HeaDingProperties {
        private String username;
        private String password;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    application.yaml增加basic auth账号密码配置如下:

    heading:
        username: test
        password: 123456
    
    1
    2
    3
    上次更新: 2022/06/13, 18:30:58
    微服务架构筑基础
    Feign与OpenFeign

    ← 微服务架构筑基础 Feign与OpenFeign→

    最近更新
    01
    AI是如何学习的
    06-05
    02
    chatGpt提示原则
    06-05
    03
    提示词工程实践指南
    06-05
    更多文章>
    | Copyright © 2022-2025 Kevin | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式