Proxy: Support for Apache Dubbo, Spring Cloud, gRPC, Motan, SOFA, TARS, WebSocket, MQTT
Security: Sign, OAuth 2.0, JSON Web Tokens, WAF plugin
API governance: Request, response, parameter mapping, Hystrix, RateLimiter plugin
Observability: Tracing, metrics, logging plugin
Dashboard: Dynamic traffic control, visual backend for user menu permissions
Extensions: Plugin hot-swapping, dynamic loading
Cluster: NGINX, Docker, Kubernetes
Language: provides .NET, Python, Go, Java client for API registe
避免重复造轮子,并且官方文档比较丰富,提供了中文,涉及到官网有的直接提供链接。
https://shenyu.apache.org/zh/projects/shenyu/overview/
官方文档:
https://shenyu.apache.org/zh/projects/shenyu/shenyu-set-up/
官方提供多种方式,为了比较直观,我们采用本地构建的方式
下载代码:
git clone https://github.com/apache/incubator-sh
Apache ShenYu 是一个异步的,高性能的,跨语言的,响应式的 API 网关。
ShenYu 网关使用 dubbo 插件完成对 dubbo服务的调用。你可以查看官方文档 Dubbo快速开始 了解如何使用该插件。
本文基于shenyu-2.4.3版本进行源码分析,官网的介绍请参考 Dubbo服务接入 。
1. 服务注册
以官网提供的例子为例 shenyu-examples-dubbo 。 假如你的dubbo服务定义如下(spring-dubbo.xml):
<beans xmlns="h.
如何修改response的header和body如何修改response的header和body修改header修改statusCode修改body
如何修改response的header和body
shenyu是基于 webflux 的响应式编程项目,由于之前没有接触过,我在开发 modifyResponse插件的时候,开始有点摸不着头脑,然后大佬推荐了一个链接:
https://htmlpreview.github.io/?https://github.com/get-set/reactor-core/
shenyu插件开发shenyu插件开发成为Contributor接任务完成任务如何开发一个shenyu自定义插件定义插件定义插件starter自定义插件使用tips
shenyu插件开发
年初学习 soul 网关的时候,写了一系列入门文章。最近发现 soul 项目进入了 apache 孵化基金会,并且改名为shenyu。当时发现 shenyu 发了几个issue,我接了其中一个,由于当时正在迁移仓库到apache,加上我不熟悉插件开发流程,最后我花了2个月才完成这个任务。下面说下我完成issue的经历。
公司、个人开发的系统上线后,系统中 API 暴露到网络上会存在一定的安全风险,比如:爬虫、恶意访问、错误访问等。API没有安全性,用户可以任意注册即可无限次访问和调用API,且没有请求与特定用户数据关联的简单方法,就无法防止恶意用户的恶意请求等。
常用 API 接口安全措施如下几种:
(1)数据加密
数据在互联网传输过程很容易被抓包,如果直接传输,那么用户数据可能被其他人获取,导致系统安全性等问题,所以必须对数据加密。常见的做法是对关键字段加密,比如用户密码直接通过 md5 加密。
(2)数据签名
针对不同环境修改api url,例如: http://192.168.1.100:8000 : http://192.168.1.100:8000 : http://192.168.1.100:8000
# install dependencies in this project root path.
npm install
# start
npm start
# install dependencies in this project root path.
npm install
# build for production
npm run build
# copy to shenyu-admin
cp -rf dist/ * shen
OAuth2.0介绍 OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方 应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他 们数据的所有内容。OAuth在全世界得到广泛应用,目前的版本是2.0版。
OAuth协议:https://tools.ietf.org/html/rfc6749 协议特点:简单:不管是OAuth服务提供者还是应用开发者,都很易于理解与使
Sa-Token 介绍
Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题
框架集成简单、开箱即用、API设计清爽,通过Sa-Token,你将以一种极其简单的方式实现系统的权限认证部分
登录认证 —— 单端登录、多端登录、同端互斥登录、七天内免登录
权限认证 —— 权限认证、角色认证、会话二级认证
Session会话 —— 全端共享Session、单端独享Session、自定义Session
踢人下线 —— 根据账号id踢人下线、根据Token值踢人下线
账号封禁 —— 指定天数封禁、永久封禁、设定解封时间
持久层扩展 —— 可集成Redis、Memcached等专业缓存中间件,重启数
这个错误通常是因为找不到或加载不了Shenyu Admin Bootstrap应用程序的主类所导致的。可能的原因包括:
1. 没有正确设置CLASSPATH环境变量,或者CLASSPATH环境变量中没有包含必要的类路径。
2. 找不到或加载不了Shenyu Admin Bootstrap应用程序的主类所依赖的类库。
3. Shenyu Admin Bootstrap应用程序的主类中有语法错误或编译错误。
你可以检查以上三个方面,尝试解决问题。另外,也可以检查你的操作系统和Java环境是否符合Shenyu Admin Bootstrap的要求。如果问题仍然存在,你可以提供更多的错误信息或上下文,以便更好地理解和解决问题。
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
18086