You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tanghc
6f880a3a51
Merge remote-tracking branch 'origin/only-nacos'
# 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
|
5 years ago |
doc
|
2.0
|
5 years ago |
sop-admin
|
2.0
|
5 years ago |
sop-auth
|
2.0
|
5 years ago |
sop-common
|
2.0
|
5 years ago |
sop-example
|
2.0
|
5 years ago |
sop-gateway
|
2.0
|
5 years ago |
sop-sdk
|
2.0
|
5 years ago |
sop-test
|
2.0
|
5 years ago |
sop-website
|
2.0
|
5 years ago |
.gitignore
|
readme
|
6 years ago |
README.md
|
2.0
|
5 years ago |
changelog.md
|
2.0
|
5 years ago |
pom.xml
|
2.0
|
5 years ago |
sop.sql
|
修复中文乱码问题
|
5 years ago |
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