Apache ShenYu(神禹)

ApacheShenYu是一个可扩展、高性能的API网关,适用于各种微服务场景。由肖宇创立,是Dromara开源社区的一部分,包括Hmily、Raincat和Myth等分布式事务框架。该项目在2020年发布社区版本,2021年5月进入Apache孵化器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shenyu: Apache ShenYu 国内镜像仓库https://gitee.com/Apache-ShenYu/shenyu

应用于所有微服务场景的,可扩展、高性能、响应式的 API 网关解决方案。

作者

肖宇 :Apache ShenYu(incubating)网关创始人,http://dromara.org开源社区创始人。 Hmily,Raincat,Myth等分布式事务框架作者。追求写优雅代码,乐于分享和帮助他人。

发展历程

2021年6月,诞生

2020年, 发布社区版本

2020年7月5日  Soul gateway release milestone version 2.3.0 New support for grpc

2021年5月3日,经过 Apache Incubator 的投票,正式步入 Apache 基金会孵化器。

Architecture

核心

### Apache ShenYu 中实现租户鉴权的方法和配置 #### 插件机制支持 Apache Shenyu 提供了灵活的插件机制来增强网关功能,其中就包括安全相关的插件用于处理不同场景下的认证授权需求[^1]。 对于租户级别的权限控制,在ShenYu中可以通过OAuth2或JWT(JSON Web Token)等方式实施。具体取决于所选技术栈以及业务系统的集成度。 #### 使用 OAuth2 进行租户鉴权 当采用OAuth2协议时,通常会涉及到客户端凭证交换访问令牌的过程: - 客户端向身份验证服务器发送请求获取token; - 身份验证服务校验通过后返回给客户端一个有效的access token; - 后续API调用携带此token作为参数传递至ShenYu网关层; - 网关接收到带有token的HTTP请求之后解析并验证其合法性; 为了使上述流程生效,需安装`oauth2`插件,并按照官方文档指导完成相应设置。 ```yaml plugin: oauth2: enabled: true urlPattern: /your/api/path/** clientId: your_client_id_here clientSecret: your_secret_key_here accessTokenUri: http://auth-server/oauth/token userAuthorizationUri: http://auth-server/oauth/authorize ``` 以上YAML片段展示了部分核心属性定义,实际应用环境中可能还需要调整更多细节选项以适应特定的安全策略要求。 #### 利用 JWT 实施更细粒度的访问控制 另一种常见做法是利用JWT来进行无状态的身份验证。这种方式下,每次HTTP请求都附带签名后的Token字符串,而无需频繁往返于授权服务器之间。这不仅提高了性能表现也简化了跨域资源分享(CORS)等问题解决难度。 同样地,要启用该特性则应加载名为`jwt`的组件到项目当中去,并参照如下所示模板修改application.properties文件中的对应项: ```properties shenyu.plugin.jwt.rule.match=/api/* shenyu.plugin.jwt.secret=YourSuperSecretKeyHere ``` 这里设置了匹配路径规则与共享密钥两个重要参数,前者决定了哪些接口受保护需要检查传入的token有效性;后者用来解码加密过的payload数据包从而提取出有效载荷内的声明信息以便进一步判断是否有足够的操作许可级别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值