mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
6f880a3a51093da02175d4383e219fe04c65ba1c
# Conflicts: # doc/docs/_sidebar.md # sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/HttpTool.java # sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/RouteDefinition.java # sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInfo.java # sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInstance.java # sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/RegistryService.java # sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java # sop-admin/sop-admin-server/src/main/resources/public/static/css/app.c6dfb7ee.css # sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-2c1f2e8f.0314067f.css # sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-4de1c2b6.a37cd815.css # sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-510c5a69.5e48e29a.css # sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-c3ce42fe.6b789903.css # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-2d2085ef.2e46d1f4.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-2d221c34.0db10350.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-4de1c2b6.0188bd8f.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-510c5a69.c3dd05bb.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-6f78c9fe.bec8af48.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-9f479afe.6b795525.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-elementUI.298ac98c.js # sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-libs.75deb05f.js # sop-auth/.gitignore # sop-auth/pom.xml # sop-auth/readme.md # sop-auth/src/main/java/com/gitee/sop/sopauth/SopAuthApplication.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/AccessToken.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/AppIdManager.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/FetchTokenParam.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/FetchTokenResult.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OAuth2Config.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OAuth2Manager.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OAuth2Service.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OpenUser.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/RefreshToken.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/TokenPair.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/exception/LoginErrorException.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/AppIdManagerImpl.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/OAuth2ManagerCache.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/OAuth2ManagerRedis.java # sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/OAuth2ServiceImpl.java # sop-auth/src/main/java/com/gitee/sop/sopauth/config/OpenServiceConfig.java # sop-auth/src/main/java/com/gitee/sop/sopauth/controller/CallbackController.java # sop-auth/src/main/java/com/gitee/sop/sopauth/controller/OAuth2Controller.java # sop-auth/src/main/java/com/gitee/sop/sopauth/entity/IsvInfo.java # sop-auth/src/main/java/com/gitee/sop/sopauth/entity/UserInfo.java # sop-auth/src/main/java/com/gitee/sop/sopauth/mapper/IsvInfoMapper.java # sop-auth/src/main/java/com/gitee/sop/sopauth/mapper/UserInfoMapper.java # sop-auth/src/main/resources/application.properties # sop-auth/src/main/resources/templates/oauth2login.html # sop-auth/src/test/java/com/gitee/sop/sopauth/RefreshTokenTest.java # sop-auth/src/test/java/com/gitee/sop/sopauth/SopAuthApplicationTests.java # sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/GatewayFilterDefinition.java # sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/RouteDefinition.java # sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/PreEnvGrayFilter.java # sop-example/sop-easyopen/src/main/resources/application.properties # sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/result/FileUploadResult.java # sop-website/.gitignore # sop-website/src/main/java/com/gitee/sop/websiteserver/WebsiteServerApplication.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocInfo.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocItem.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocModule.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocParameter.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocParserContext.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaApplication.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaApplications.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaApps.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaInstance.java # sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaUri.java # sop-website/src/main/java/com/gitee/sop/websiteserver/config/CorsConfig.java # sop-website/src/main/java/com/gitee/sop/websiteserver/config/WebsiteConfig.java # sop-website/src/main/java/com/gitee/sop/websiteserver/controller/DocController.java # sop-website/src/main/java/com/gitee/sop/websiteserver/controller/SandboxController.java # sop-website/src/main/java/com/gitee/sop/websiteserver/manager/DocManager.java # sop-website/src/main/java/com/gitee/sop/websiteserver/manager/DocParser.java # sop-website/src/main/java/com/gitee/sop/websiteserver/manager/EasyopenDocParser.java # sop-website/src/main/java/com/gitee/sop/websiteserver/manager/SwaggerDocParser.java # sop-website/src/main/java/com/gitee/sop/websiteserver/sign/AlipayApiException.java # sop-website/src/main/java/com/gitee/sop/websiteserver/sign/AlipayConstants.java # sop-website/src/main/java/com/gitee/sop/websiteserver/sign/AlipaySignature.java # sop-website/src/main/java/com/gitee/sop/websiteserver/sign/StreamUtil.java # sop-website/src/main/java/com/gitee/sop/websiteserver/sign/StringUtils.java # sop-website/src/main/java/com/gitee/sop/websiteserver/util/UploadUtil.java # sop-website/src/main/java/com/gitee/sop/websiteserver/vo/DocBaseInfoVO.java # sop-website/src/main/java/com/gitee/sop/websiteserver/vo/DocInfoVO.java # sop-website/src/main/java/com/gitee/sop/websiteserver/vo/ServiceInfoVO.java # sop-website/src/main/resources/api.json # sop-website/src/main/resources/public/assets/css/global.css # sop-website/src/main/resources/public/assets/image/auth.png # sop-website/src/main/resources/public/assets/js/format.js # sop-website/src/main/resources/public/assets/js/inputcache.js # sop-website/src/main/resources/public/assets/lib/jquery/3.2.1/jquery.min.js # sop-website/src/main/resources/public/assets/lib/layui/css/layui.css # sop-website/src/main/resources/public/assets/lib/layui/css/layui.mobile.css # sop-website/src/main/resources/public/assets/lib/layui/css/modules/code.css # sop-website/src/main/resources/public/assets/lib/layui/css/modules/laydate/default/laydate.css # sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/icon-ext.png # sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/icon.png # sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/layer.css # sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/loading-0.gif # sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/loading-1.gif # sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/loading-2.gif # sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.eot # sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.svg # sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.ttf # sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.woff # sop-website/src/main/resources/public/assets/lib/layui/images/face/0.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/1.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/10.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/11.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/12.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/13.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/14.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/15.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/16.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/17.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/18.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/19.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/2.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/20.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/21.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/22.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/23.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/24.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/25.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/26.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/27.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/28.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/29.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/3.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/30.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/31.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/32.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/33.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/34.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/35.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/36.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/37.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/38.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/39.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/4.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/40.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/41.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/42.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/43.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/44.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/45.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/46.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/47.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/48.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/49.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/5.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/50.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/51.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/52.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/53.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/54.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/55.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/56.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/57.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/58.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/59.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/6.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/60.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/61.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/62.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/63.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/64.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/65.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/66.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/67.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/68.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/69.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/7.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/70.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/71.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/8.gif # sop-website/src/main/resources/public/assets/lib/layui/images/face/9.gif # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/carousel.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/code.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/colorpicker.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/element.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/flow.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/form.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/jquery.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/laydate.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/layedit.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/layer.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/laypage.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/laytpl.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/mobile.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/rate.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/slider.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/table.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/tree.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/upload.js # sop-website/src/main/resources/public/assets/lib/layui/lay/modules/util.js # sop-website/src/main/resources/public/assets/lib/layui/layui.all.js # sop-website/src/main/resources/public/assets/lib/layui/layui.js # sop-website/src/main/resources/public/assets/lib/layuiext/Form.js # sop-website/src/main/resources/public/assets/lib/layuiext/module/treetable-lay/treetable.css # sop-website/src/main/resources/public/assets/lib/layuiext/module/treetable-lay/treetable.js # sop-website/src/main/resources/public/config/config.js # sop-website/src/main/resources/public/index.html # sop-website/src/main/resources/public/pages/doc/auth.html # sop-website/src/main/resources/public/pages/doc/code.html # sop-website/src/main/resources/public/pages/doc/doc.html # sop-website/src/main/resources/public/pages/doc/doc.js # sop-website/src/main/resources/public/pages/doc/docEvent.js # sop-website/src/main/resources/public/pages/doc/sign.html # sop-website/src/main/resources/public/pages/sandbox/sandbox.html # sop-website/src/main/resources/public/pages/sandbox/sandbox.js # sop-website/src/test/java/com/gitee/sop/websiteserver/WebsiteServerApplicationTests.java
SOP(Simple Open Platform)
一个开放平台解决方案项目,基于Spring Cloud实现,目标是能够让用户快速得搭建起自己的开放平台。
SOP提供了两种接口调用方式,分别是:支付宝开放平台的调用方式和淘宝开放平台的调用方式。 通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。
SOP封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理等,未来还会实现更多功能。
项目特点
- 接入方式简单,与老项目不冲突,老项目注册到注册中心,然后在方法上加上注解即可。
- 架构松耦合,业务代码实现在各自微服务上,SOP不参与业务实现,这也是Spring Cloud微服务体系带来的好处。
- 扩展简单,开放平台对应的功能各自独立,可以自定义实现自己的需求,如:更改参数,更改签名规则等。
谁可以使用这个项目
- 有现成的项目,想改造成开放平台供他人调用
- 有现成的项目,想暴露其中几个接口并通过开放平台供他人调用
- 想搭一个开放平台新项目,并结合微服务的方式去维护
- 对开放平台感兴趣的朋友
以上情况都可以考虑使用SOP
架构图
已完成列表
- 签名验证
- 统一异常处理
- 统一返回内容
- session管理
- 秘钥管理
- 微服务端自动验证(JSR-303)
- 支持Spring Cloud Gateway
- Admin管理平台,统一管理微服务配置,管理路由管理,微服务上下线
- 接入方管理+秘钥管理
- 接口权限分配
- 文件上传/下载
- SDK
- 接口限流
- 文档整合
- 应用授权
- 监控日志
- 支持nacos
- 网关动态修改参数
界面预览
工程说明
运行环境:JDK8,Maven3,Nacos
- doc:开发文档
- sop-common:公共模块,封装常用功能,包含签名校验、错误处理、限流等功能
- sop-gateway:网关,统一访问入口,Spring Cloud Zuul实现,可切换成Spring Cloud Gateway
- sop-example:微服务示例,含springboot,springmvc示例
- sop-website:开放平台对应网站,提供文档API、沙箱测试等内容
- sop-auth:应用授权服务
- sop-admin:后台管理
- sop-sdk:基础sdk,含Java、C#版本
- sop-test:接口调用测试用例
分支说明
- master:发版分支
- spring-cloud-gateway:Spring Cloud Gateway作为网关
- develop:日常开发分支
- 1.x:老的1.x版本代码
相关文档
沟通交流
Q群:328419269
Description
Languages
Java
46.2%
TypeScript
21.2%
Vue
13.7%
C++
9.9%
C#
2.7%
Other
6.2%