JAVA全系列 教程
3762个小节阅读:7088k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用。当一个客户端向一个需要认证的HTTP服务器进行数据请求时,,HTTP服务器会返回401状态码,要求客户端输入用户名和密码。用户输入用户名和密码后,用户名和密码会经过BASE64加密附加到请求信息中再次请求HTTP服务器,HTTP服务器会根据请求头携带的认证信息,决定是否认证成功及做出相应的响应。
basic-auth
插件实现了基于 HTTP Basic Auth 标准进行认证鉴权的功能
全局配置
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
---|---|---|---|---|
consumers | array of object | 必填 | - | 配置服务的调用者,用于对请求进行认证 |
global_auth | bool | 选填 | - | 若配置为true,则全局生效认证机制; 若配置为false,则只对做了配置的域名和路由生效认证机制; 若不配置则仅当没有域名和路由配置时全局生效(兼容机制) |
consumers
中每一项的配置字段说明如下:
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
---|---|---|---|---|
credential | string | 必填 | - | 配置该consumer的访问凭证 |
name | string | 必填 | - | 配置该consumer的名称 |
域名和路由级配置
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
---|---|---|---|---|
allow | array of string | 必填 | - | 对于符合匹配条件的请求,配置允许访问的consumer名称 |
注意:
- 对于通过认证鉴权的请求,请求的header会被添加一个
X-Mse-Consumer
字段,用以标识调用者的名称。
1、对特定路由或域名开启认证和鉴权
以下配置将对网关特定路由或域名开启 Basic Auth 认证和鉴权,注意凭证信息中的用户名和密码之间使用":"分隔,credential
字段不能重复。
全局配置
xxxxxxxxxx
consumers:
- credential: 'admin:123456'
name: consumer1
- credential: 'guest:abc'
name: consumer2
global_auth: false
路由级配置
对 route-a 和 route-b 这两个路由做如下配置:
xxxxxxxxxx
allow:
- consumer1
若是在控制台进行配置,此例指定的 route-a
和 route-b
即在控制台创建路由时填写的路由名称,当匹配到这两个路由时,将允许name
为consumer1
的调用者访问,其他调用者不允许访问;此例指定的 *.example.com
和 test.com
用于匹配请求的域名,当发现域名匹配时,将允许name
为consumer2
的调用者访问,其他调用者不允许访问。
HTTP 状态码 | 出错信息 | 原因说明 |
---|---|---|
401 | Request denied by Basic Auth check. No Basic Authentication information found. | 请求未提供凭证 |
401 | Request denied by Basic Auth check. Invalid username and/or password | 请求凭证无效 |
403 | Request denied by Basic Auth check. Unauthorized consumer | 请求的调用方无访问权限 |