├── .gitattributes
├── .gitignore
├── Dockerfile
├── LICENSE
├── LICENSE-3RD-PARTY
├── README-en.md
├── README.md
├── build.sh
├── docker-build.sh
├── docker-run.sh
├── docs
├── EKK-design.md
├── deploy_guide.md
├── dev.md
├── ms_guide.md
├── safe_guide.md
├── static_files
│ ├── DeskTop.jpg
│ ├── Frm.png
│ ├── Kibana.jpg
│ ├── ark.png
│ ├── audit.png
│ ├── black.png
│ ├── comp.png
│ ├── compmgt.png
│ ├── componentManager.jpg
│ ├── conf1.png
│ ├── conf10.png
│ ├── conf11.png
│ ├── conf12.png
│ ├── conf13.png
│ ├── conf14.png
│ ├── conf15.png
│ ├── conf16.png
│ ├── conf17.png
│ ├── conf2.png
│ ├── conf3.png
│ ├── conf4.png
│ ├── conf5.png
│ ├── conf6.png
│ ├── conf7.png
│ ├── conf8.png
│ ├── conf9.png
│ ├── deploy.png
│ ├── desktop.png
│ ├── dis.png
│ ├── ekk架构.png
│ ├── es.png
│ ├── fenlei.jpg
│ ├── gateway.png
│ ├── gatewayMonitor.jpg
│ ├── gatewaySetting.jpg
│ ├── gatewaySwagger.jpg
│ ├── gatewaytop.png
│ ├── homePage.jpg
│ ├── hystrixManager.jpg
│ ├── jar.png
│ ├── logManager.jpg
│ ├── login.png
│ ├── msa.png
│ ├── newRoute.jpg
│ ├── newlog.jpeg
│ ├── registryManager.jpg
│ ├── route.png
│ ├── routeManager-operation.jpg
│ ├── routeManager-topo.jpg
│ ├── routeManager.jpg
│ ├── routetop.png
│ ├── servicemesh.png
│ ├── stacktrace.png
│ ├── url.png
│ └── zuoyong.jpg
├── third_guide.md
├── user_ekk_zh.md
└── user_guide.md
├── pom.xml
├── sia-gateway-admin-buildcomponent
├── .gitignore
├── bin
│ ├── gw_proc_watcher.sh
│ ├── onekey_start.sh
│ ├── run.sh
│ ├── run4monitor.sh
│ ├── run4service.sh
│ ├── run4stream.sh
│ ├── run4synchspeed.sh
│ ├── shutdown_gateway_admin_test.sh
│ ├── shutdown_gateway_monitor_test.sh
│ ├── shutdown_gateway_service_test.sh
│ ├── shutdown_gateway_stream_test.sh
│ ├── shutdown_gateway_synchspeed_test.sh
│ ├── start_gateway_admin_test.sh
│ ├── start_gateway_monitor_test.sh
│ ├── start_gateway_service_test.sh
│ ├── start_gateway_stream_test.sh
│ ├── start_gateway_synchspeed_test.sh
│ └── stop.sh
├── config
│ ├── gateway_admin_test.yml
│ ├── gateway_monitor_test.yml
│ ├── gateway_service_test.yml
│ ├── gateway_stream_test.yml
│ ├── gateway_synchspeed_test.yml
│ └── logback.xml
└── pom.xml
├── sia-gateway-admin-display
├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
│ ├── build.js
│ ├── check-versions.js
│ ├── dev-client.js
│ ├── dev-server.js
│ ├── utils.js
│ ├── vue-loader.conf.js
│ ├── webpack.base.conf.js
│ ├── webpack.dev.conf.js
│ ├── webpack.prod.conf.js
│ └── webpack.test.conf.js
├── config
│ ├── dev.env.js
│ ├── index.js
│ ├── prod.env.js
│ └── test.env.js
├── eslint.guide.md
├── index.html
├── package-lock.json
├── package.json
├── src
│ ├── App.vue
│ ├── common
│ │ ├── components
│ │ │ ├── breadcrumb.tmpl.vue
│ │ │ └── left-menu.tmpl.vue
│ │ ├── images
│ │ │ ├── arrow-down.png
│ │ │ ├── close.png
│ │ │ ├── current-gateway-icon.png
│ │ │ ├── current-gateway-icon.svg
│ │ │ ├── desktop-icon-ck.svg
│ │ │ ├── desktop-icon.svg
│ │ │ ├── down-active.png
│ │ │ ├── down.png
│ │ │ ├── edit-ck.png
│ │ │ ├── edit.png
│ │ │ ├── eureka-ck.svg
│ │ │ ├── eureka.svg
│ │ │ ├── group-icon-ck.svg
│ │ │ ├── group-icon.svg
│ │ │ ├── guanbi.png
│ │ │ ├── guanbi2.png
│ │ │ ├── home-icon-ck.svg
│ │ │ ├── home-icon.svg
│ │ │ ├── log-icon-ck.svg
│ │ │ ├── log-icon.svg
│ │ │ ├── logo.png
│ │ │ ├── monitor-icon-ck.svg
│ │ │ ├── monitor-icon.svg
│ │ │ ├── nav-border.png
│ │ │ ├── rong-duan-icon-ck.svg
│ │ │ ├── rong-duan-icon.svg
│ │ │ ├── router-connecte-icon-ck.svg
│ │ │ ├── router-connecte-icon.svg
│ │ │ ├── router-icon-ck.svg
│ │ │ ├── router-icon.svg
│ │ │ ├── set-up-icon-ck.svg
│ │ │ ├── set-up-icon.svg
│ │ │ ├── shen-ji-icon-ck.svg
│ │ │ ├── shen-ji-icon.svg
│ │ │ ├── swagger-icon-ck.svg
│ │ │ ├── swagger-icon.svg
│ │ │ ├── system-icon-ck.svg
│ │ │ ├── system-icon.svg
│ │ │ ├── up-active.png
│ │ │ └── up.png
│ │ ├── plugins
│ │ │ ├── http.js
│ │ │ ├── regExpressions.js
│ │ │ └── validator.js
│ │ ├── routers
│ │ │ ├── common.router.js
│ │ │ └── router.index.js
│ │ ├── services
│ │ │ ├── api.provider.js
│ │ │ ├── console.provider.js
│ │ │ ├── helper.provider.js
│ │ │ ├── store.provider.js
│ │ │ └── util.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ ├── breadcrumb.tmpl.less
│ │ │ │ └── left-menu.tmpl.less
│ │ │ ├── global.less
│ │ │ ├── reset.less
│ │ │ ├── theme.less
│ │ │ ├── theme
│ │ │ │ └── default.theme.less
│ │ │ └── transition.less
│ │ └── views
│ │ │ ├── 401.page.vue
│ │ │ └── 404.page.vue
│ ├── connecte-test
│ │ ├── routers
│ │ │ └── connecte-test.router.js
│ │ ├── styles
│ │ │ ├── connecte-test.page.less
│ │ │ └── connecte-test.page.reset.less
│ │ └── views
│ │ │ └── connecte-test.page.vue
│ ├── desktop
│ │ ├── components
│ │ │ └── edit-desc.tmpl.vue
│ │ ├── images
│ │ │ └── bottom-bg.png
│ │ ├── routers
│ │ │ └── desktop.router.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ └── edit-desc.tmpl.less
│ │ │ ├── desktop.page.less
│ │ │ └── desktop.page.reset.less
│ │ └── views
│ │ │ └── desktop.page.vue
│ ├── frame
│ │ ├── routers
│ │ │ └── frame.router.js
│ │ ├── services
│ │ │ └── frame.store.js
│ │ ├── styles
│ │ │ └── index.page.less
│ │ └── views
│ │ │ └── index.page.vue
│ ├── fuse-manage
│ │ ├── components
│ │ │ └── trace-info.tmpl.vue
│ │ ├── routers
│ │ │ └── fuse-manage.router.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ └── trace-info.tmpl.less
│ │ │ ├── fuse-manage.page.less
│ │ │ └── fuse-manage.page.reset.less
│ │ └── views
│ │ │ └── fuse-manage.page.vue
│ ├── ganway-set-up
│ │ ├── routers
│ │ │ └── ganway-set-up.router.js
│ │ ├── styles
│ │ │ ├── ganway-set-up.page.less
│ │ │ └── ganway-set-up.reset.less
│ │ └── views
│ │ │ └── ganway-set-up.page.vue
│ ├── gateway-audit
│ │ ├── routers
│ │ │ └── gateway-audit.router.js
│ │ ├── styles
│ │ │ ├── gateway-audit-list.page.less
│ │ │ └── gateway-audit-list.page.reset.less
│ │ └── views
│ │ │ └── gateway-audit-list.page.vue
│ ├── gateway-eureka
│ │ ├── components
│ │ │ ├── reset-eureka.tmpl.vue
│ │ │ └── set-eureka.tmpl.vue
│ │ ├── routers
│ │ │ └── gateway-eureka.router.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ ├── reset-eureka.tmpl.less
│ │ │ │ └── set-eureka.tmpl.less
│ │ │ ├── gateway-eureka-list.page.less
│ │ │ └── gateway-eureka-list.page.reset.less
│ │ └── views
│ │ │ └── gateway-eureka-list.page.vue
│ ├── gateway-monitor
│ │ ├── components
│ │ │ ├── events-details.tmpl.vue
│ │ │ ├── garbage-collection-details.tmpl.vue
│ │ │ ├── jvm-details.tmpl.vue
│ │ │ ├── log-details.tmpl.vue
│ │ │ └── memory-details.tmpl.vue
│ │ ├── images
│ │ │ ├── events.png
│ │ │ ├── log.png
│ │ │ ├── monitor.png
│ │ │ ├── msg.png
│ │ │ ├── sheji.png
│ │ │ └── warnning.png
│ │ ├── routers
│ │ │ └── gateway-monitor.router.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ ├── common-tmpl.less
│ │ │ │ ├── events-details.tmpl.less
│ │ │ │ ├── garbage-collection-details.tmpl.less
│ │ │ │ ├── jvm-details.tmpl.less
│ │ │ │ └── memory-details.tmpl.less
│ │ │ ├── gateway-log-list.page.less
│ │ │ ├── gateway-monitor.page.less
│ │ │ └── gateway-monitor.page.reset.less
│ │ └── views
│ │ │ ├── gateway-log-list.page.vue
│ │ │ ├── gateway-monitor.page.vue
│ │ │ └── monitor-list.page.vue
│ ├── gateway-swagger
│ │ ├── routers
│ │ │ └── gateway-monitor.router.js
│ │ ├── styles
│ │ │ ├── gateway-swagger.page.less
│ │ │ └── gateway-swagger.page.reset.less
│ │ └── views
│ │ │ └── gateway-swagger.page.vue
│ ├── group-manage
│ │ ├── components
│ │ │ ├── bind-group-list.tmpl.vue
│ │ │ └── third-party-group.tmpl.vue
│ │ ├── images
│ │ │ ├── back-icon.png
│ │ │ ├── bind.png
│ │ │ ├── delete.png
│ │ │ ├── left.png
│ │ │ ├── right.png
│ │ │ └── warnning.png
│ │ ├── routers
│ │ │ └── group-manage.router.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ ├── bind-group-list.tmpl.less
│ │ │ │ └── third-party-group.tmpl.less
│ │ │ ├── group-detail.page.less
│ │ │ ├── group-detail.page.reset.less
│ │ │ ├── group-manage-list.page.less
│ │ │ └── group-manage-list.page.reset.less
│ │ └── views
│ │ │ ├── group-detail.page.vue
│ │ │ └── group-manage-list.page.vue
│ ├── home
│ │ ├── components
│ │ │ ├── gateway-route-detail.tmpl.vue
│ │ │ ├── gateway-status-detail.tmpl.vue
│ │ │ ├── monitor-center-detail.tpml.vue
│ │ │ └── monitor-warning-detail.tpml.vue
│ │ ├── images
│ │ │ ├── number.png
│ │ │ ├── register.png
│ │ │ ├── router-count.png
│ │ │ ├── router-regiter.png
│ │ │ ├── warn-count.png
│ │ │ ├── warning.png
│ │ │ └── wave-line.png
│ │ ├── routers
│ │ │ └── home.router.js
│ │ ├── styles
│ │ │ ├── common
│ │ │ │ └── gateway-status-detail.tmpl.less
│ │ │ ├── home.page.less
│ │ │ └── home.page.reset.less
│ │ └── views
│ │ │ ├── aa.vue
│ │ │ └── home.page.vue
│ ├── log-manage
│ │ ├── routers
│ │ │ └── log-manage.router.js
│ │ ├── styles
│ │ │ ├── log-manage-list.page.less
│ │ │ └── log-manage-list.page.reset.less
│ │ └── views
│ │ │ └── log-manage-list.page.vue
│ ├── login
│ │ ├── images
│ │ │ ├── login-bg.jpg
│ │ │ └── logo.svg
│ │ ├── routers
│ │ │ └── login.router.js
│ │ ├── styles
│ │ │ ├── login.page.less
│ │ │ └── login.page.reset.less
│ │ └── views
│ │ │ └── login.page.vue
│ ├── main.js
│ ├── route-manage
│ │ ├── components
│ │ │ ├── current-limit-group.tmpl.vue
│ │ │ ├── dispose-subgroup.tmpl.vue
│ │ │ ├── gray-public.tmpl.vue
│ │ │ ├── group-list.tmpl.vue
│ │ │ ├── router-instruction.tmpl.vue
│ │ │ ├── router-level.tmpl.vue
│ │ │ └── unload-situat.tmpl.vue
│ │ ├── images
│ │ │ ├── back-icon.png
│ │ │ ├── details.png
│ │ │ ├── tuopo.png
│ │ │ └── tuopo.svg
│ │ ├── routers
│ │ │ └── route-manage.router.js
│ │ ├── styles
│ │ │ ├── black-white-detail.page.less
│ │ │ ├── black-white-detail.page.reset.less
│ │ │ ├── common
│ │ │ │ ├── dispose-subgroup.tmpl.less
│ │ │ │ ├── group-list.tmpl.less
│ │ │ │ ├── router-instruction.tmpl.less
│ │ │ │ ├── router-instruction.tmpl.reset.less
│ │ │ │ └── router-level.tmpl.less
│ │ │ ├── route-create.page.less
│ │ │ ├── route-create.page.reset.less
│ │ │ ├── route-manage-list.page.less
│ │ │ ├── route-manage-list.page.reset.less
│ │ │ ├── route-safe-auth.page.less
│ │ │ ├── route-safe-auth.page.reset.less
│ │ │ └── run-static-detail.page.less
│ │ └── views
│ │ │ ├── black-white-detail.page.vue
│ │ │ ├── route-create.page.vue
│ │ │ ├── route-edit.page.vue
│ │ │ ├── route-manage-list.page.vue
│ │ │ ├── route-safe-auth.page.vue
│ │ │ └── run-static-detail.page.vue
│ └── system-set-up
│ │ ├── routers
│ │ └── system-black-name.router.js
│ │ ├── styles
│ │ ├── system-black-name.page.less
│ │ └── system-black-name.page.reset.less
│ │ └── views
│ │ └── system-black-name.page.vue
├── static
│ ├── .gitkeep
│ ├── img
│ │ ├── apply.png
│ │ ├── browser.png
│ │ ├── group.png
│ │ ├── router.png
│ │ ├── settings.png
│ │ └── title-icon.png
│ └── site-map.js
└── test
│ └── unit
│ ├── .eslintrc
│ ├── index.js
│ └── karma.conf.js
├── sia-gateway-admin
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── creditease
│ │ │ └── gateway
│ │ │ ├── admin
│ │ │ ├── GatewayAdminApplication.java
│ │ │ ├── aspect
│ │ │ │ └── ApiGatewayAuditAspect.java
│ │ │ ├── config
│ │ │ │ ├── AdminConfigMgt.java
│ │ │ │ ├── LocalMetaDataLoader.java
│ │ │ │ ├── MultipartConfig.java
│ │ │ │ ├── SwaggerConfig.java
│ │ │ │ ├── VueRouteInterceptor.java
│ │ │ │ └── WebMvcConfiguration.java
│ │ │ ├── context
│ │ │ │ └── ApplicationContextProvider.java
│ │ │ ├── controller
│ │ │ │ ├── AdminAuthController.java
│ │ │ │ ├── AdminController.java
│ │ │ │ ├── AdminFilterController.java
│ │ │ │ ├── AdminLoginController.java
│ │ │ │ ├── AdminRouteController.java
│ │ │ │ ├── ComponentController.java
│ │ │ │ ├── FallbackController.java
│ │ │ │ ├── FileDownLoadController.java
│ │ │ │ ├── FileUploadController.java
│ │ │ │ ├── GatewayAdminAuditController.java
│ │ │ │ ├── MonitorController.java
│ │ │ │ ├── RouteRateLimitController.java
│ │ │ │ ├── RouteRibbonController.java
│ │ │ │ ├── RouteStatisticController.java
│ │ │ │ ├── RouteTestController.java
│ │ │ │ ├── ServiceRegistryController.java
│ │ │ │ ├── SettingController.java
│ │ │ │ ├── SwaggerController.java
│ │ │ │ ├── TopoAdminController.java
│ │ │ │ ├── URLRecordController.java
│ │ │ │ └── base
│ │ │ │ │ └── BaseAdminController.java
│ │ │ ├── domain
│ │ │ │ ├── AdminInfo.java
│ │ │ │ ├── AuditQuery.java
│ │ │ │ ├── CompAdapter.java
│ │ │ │ ├── DescConstant.java
│ │ │ │ ├── FallbackQuery.java
│ │ │ │ ├── MutiZuul.java
│ │ │ │ ├── QueryObj.java
│ │ │ │ ├── StatisticQuery.java
│ │ │ │ └── common
│ │ │ │ │ ├── PageQuery.java
│ │ │ │ │ └── PaginateList.java
│ │ │ ├── event
│ │ │ │ └── GatewayAuditEvent.java
│ │ │ ├── filter
│ │ │ │ ├── AuthInterceptor.java
│ │ │ │ └── CorsFilter.java
│ │ │ ├── repository
│ │ │ │ ├── AdminDbRepository.java
│ │ │ │ ├── CompDbRepository.java
│ │ │ │ ├── RedisRepository.java
│ │ │ │ ├── RouteDbRepository.java
│ │ │ │ └── base
│ │ │ │ │ └── BaseAdminRepository.java
│ │ │ ├── runner
│ │ │ │ └── ZuulAdminRunner.java
│ │ │ └── service
│ │ │ │ ├── AdminService.java
│ │ │ │ ├── AuditService.java
│ │ │ │ ├── CompTransferService.java
│ │ │ │ ├── ComponentService.java
│ │ │ │ ├── FallbackService.java
│ │ │ │ ├── FileDownloadService.java
│ │ │ │ ├── FileUploadService.java
│ │ │ │ ├── FilterService.java
│ │ │ │ ├── RouteLimitService.java
│ │ │ │ ├── RouteRibbonService.java
│ │ │ │ ├── RouteService.java
│ │ │ │ ├── RouteTestService.java
│ │ │ │ ├── SettingService.java
│ │ │ │ └── base
│ │ │ │ └── BaseAdminService.java
│ │ │ └── oauth
│ │ │ ├── AuthConstants.java
│ │ │ ├── AuthInfo.java
│ │ │ ├── AuthServerRunner.java
│ │ │ ├── admin
│ │ │ ├── OauthAdminController.java
│ │ │ ├── OauthAdminRepository.java
│ │ │ └── OauthAdminService.java
│ │ │ └── server
│ │ │ ├── OauthServer.java
│ │ │ └── OauthServerController.java
│ └── resources
│ │ ├── .gitignore
│ │ ├── application.yml
│ │ ├── component.json
│ │ ├── db
│ │ └── gateway_admin.sql
│ │ └── logback.xml
│ └── test
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ └── test
│ ├── ClientParams.java
│ ├── OauthClient.java
│ ├── OauthUrlClient.java
│ ├── TestHttp.java
│ └── pressuretest
│ └── ConcurrentTest.java
├── sia-gateway-base
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ ├── common
│ └── system
│ │ ├── RedisCacheManager.java
│ │ ├── RedisObjectSerializer.java
│ │ ├── RedisSessionDAO.java
│ │ ├── ShiroCache.java
│ │ ├── entity
│ │ ├── RcPrivilege.java
│ │ └── RcRole.java
│ │ └── shiro
│ │ ├── ShiroSession.java
│ │ └── ShiroUser.java
│ └── creditease
│ └── gateway
│ ├── alarm
│ ├── AlarmContextAware.java
│ └── AlarmService.java
│ ├── annotation
│ └── CatchExcept.java
│ ├── aspect
│ └── ApiGatewayExceptionAspect.java
│ ├── constant
│ ├── GatewayConstant.java
│ ├── SagProtocol.java
│ └── SynchSpeedProtocol.java
│ ├── database
│ ├── BaseRepository.java
│ └── DataSourceConfig.java
│ ├── discovery
│ └── DiscoveryService.java
│ ├── domain
│ ├── AlarmInfo.java
│ ├── BwfilterObj.java
│ ├── CompInfo.java
│ ├── CounterInfo.java
│ ├── CounterPair.java
│ ├── EurekaInfo.java
│ ├── FIFOCache.java
│ ├── Fallback.java
│ ├── GatewayAuditObj.java
│ ├── GatewayListDB.java
│ ├── GatewayListMsg.java
│ ├── RibbonnRule.java
│ ├── RouteCounterInfo.java
│ ├── RouteObj.java
│ ├── RouteObjExtend.java
│ ├── RouteRibbonHolder.java
│ ├── RouteStrategy.java
│ ├── UpstreamObj.java
│ ├── UrlRecordAggregate.java
│ ├── ZuulInfo.java
│ └── topo
│ │ ├── Link.java
│ │ └── RouteTopo.java
│ ├── excpetion
│ └── GatewayException.java
│ ├── helper
│ ├── Base64.java
│ ├── ClasspathPackageScanner.java
│ ├── DataConvertHelper.java
│ ├── DateTimeHelper.java
│ ├── EncodeHelper.java
│ ├── HostNewworkInfo.java
│ ├── IoHelper.java
│ ├── IpUtils.java
│ ├── JsonHelper.java
│ ├── JvmToolHelper.java
│ ├── NetworkHelper.java
│ ├── ReflectionHelper.java
│ ├── RuntimeHelper.java
│ ├── SerializerFeature.java
│ ├── ShellService.java
│ ├── StringHelper.java
│ ├── StringUtil.java
│ └── TimeHelper.java
│ ├── localcache
│ ├── L1Cache.java
│ ├── L1CacheObj.java
│ └── LocalCacheManager.java
│ ├── logger
│ └── LoggerController.java
│ ├── message
│ ├── Message.java
│ └── ZuulHandler.java
│ ├── redis
│ ├── RedisConfig.java
│ └── RedisUtil.java
│ └── zk
│ └── ZkConfigClient.java
├── sia-gateway-buildcomponent
├── .gitignore
├── bin
│ ├── gw_proc_watcher.sh
│ ├── k8s_run.sh
│ ├── k8s_start_gateway_test.sh
│ ├── run.sh
│ ├── shutdown_gateway_test.sh
│ ├── start.sh
│ ├── start_gateway_pro.sh
│ ├── start_gateway_test.sh
│ ├── start_gatewayservice_boot_admin.sh
│ └── stop.sh
├── config
│ ├── gateway_test.yml
│ └── logback.xml
└── pom.xml
├── sia-gateway-core
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── creditease
│ │ └── gateway
│ │ ├── GatewayApplication.java
│ │ ├── cache
│ │ ├── FilterCacheManager.java
│ │ ├── LRUCache.java
│ │ └── UpstreamCacheManager.java
│ │ ├── config
│ │ ├── DocumentationConfig.java
│ │ ├── GatewayConfig.java
│ │ ├── GatewaySupportConfiguration.java
│ │ ├── LocalMetaDataLoader.java
│ │ ├── MultipartConfig.java
│ │ ├── SpringUtil.java
│ │ └── SwaggerConfig.java
│ │ ├── eureka
│ │ ├── EurekaClientRunner.java
│ │ ├── EurekaHandler.java
│ │ └── listener
│ │ │ └── EurekaRefreshListener.java
│ │ ├── filter
│ │ ├── EventCapFilter.java
│ │ ├── GlobalBlackListFilter.java
│ │ ├── StatisticErrorFilter.java
│ │ ├── StatisticFilter.java
│ │ ├── TopoCaptureFilter.java
│ │ ├── UrlRecord.java
│ │ ├── ZuulDebugFilter.java
│ │ ├── abs
│ │ │ └── AbstractGatewayFilter.java
│ │ ├── common
│ │ │ ├── AuthAuthenticateFilter.java
│ │ │ ├── AuthWBListFilter.java
│ │ │ ├── LogRequestFilter.java
│ │ │ ├── LogResponsetFilter.java
│ │ │ ├── RateLimitFilter.java
│ │ │ ├── RibbonBRRouteFilter.java
│ │ │ └── RibbonCanaryRouteFilter.java
│ │ └── dynamic
│ │ │ ├── AbstractClass.java
│ │ │ ├── GatewayClassLoaderFactory.java
│ │ │ ├── GatewayCompile.java
│ │ │ ├── GatewayLoadLineRunner.java
│ │ │ └── JarFileFilter.java
│ │ ├── http
│ │ └── wrapper
│ │ │ ├── HttpHelper.java
│ │ │ ├── HttpServletRequestWrapper.java
│ │ │ └── HttpServletResponseWrapper.java
│ │ ├── hystrix
│ │ ├── FallbackEvent.java
│ │ ├── SAGFallbackProvider.java
│ │ ├── StrategyFactory.java
│ │ └── strategy
│ │ │ ├── FallCommandStrategy.java
│ │ │ ├── FallDefaultStrategy.java
│ │ │ ├── FallbackStrategy.java
│ │ │ ├── HostConnectStrategy.java
│ │ │ ├── HystrixDefaultStrategy.java
│ │ │ ├── RejectedthreadStrategy.java
│ │ │ ├── RequestBadStrategy.java
│ │ │ ├── ShortcircuitStrategy.java
│ │ │ └── TimeoutStrategy.java
│ │ ├── javassist
│ │ ├── EurekaClientJavassist.java
│ │ ├── FilterLoaderJavassit.java
│ │ └── util
│ │ │ └── JavassistProcessor.java
│ │ ├── listener
│ │ └── ApplicationPreparedEventListener.java
│ │ ├── register
│ │ ├── GatewayContextMgt.java
│ │ └── GatewayRunner.java
│ │ ├── repository
│ │ ├── RibbonRepository.java
│ │ ├── RouteRepository.java
│ │ └── ZuulRepository.java
│ │ ├── ribbon
│ │ ├── RibbonDiscoveryRuleAutoConfiguration.java
│ │ ├── RibbonRuleFactory.java
│ │ ├── RibbonServerSource.java
│ │ ├── RibbonUpdaterFactory.java
│ │ ├── RibbonUpdaterInterface.java
│ │ ├── context
│ │ │ ├── DefaultRibbonFilterContext.java
│ │ │ ├── RibbonFilterContext.java
│ │ │ └── RibbonFilterContextHolder.java
│ │ ├── rule
│ │ │ ├── BaseDiscoveryEnabledPredicate.java
│ │ │ ├── BaseDiscoveryEnabledRule.java
│ │ │ ├── MetadataMatchPredicate.java
│ │ │ └── MetadataMatchRule.java
│ │ └── updater
│ │ │ ├── RibbonUpdater.java
│ │ │ ├── RibbonUpdaterEtcd.java
│ │ │ ├── RibbonUpdaterStatic.java
│ │ │ ├── RibbonUpdaterZookeeper.java
│ │ │ └── ZuulListOfServer.java
│ │ ├── route
│ │ ├── RouteBindRunner.java
│ │ ├── RouteLocatorUpdater.java
│ │ ├── RouteManager.java
│ │ └── locator
│ │ │ ├── ZuulDiscovercRouteLocator.java
│ │ │ ├── ZuulListofServerLocator.java
│ │ │ └── ZuulRouteLocator.java
│ │ ├── service
│ │ ├── AuthService.java
│ │ ├── LogService.java
│ │ ├── RateLimitService.java
│ │ ├── RouteOptService.java
│ │ ├── RouteRibbonService.java
│ │ ├── StatisticService.java
│ │ ├── ZuulService.java
│ │ ├── impl
│ │ │ ├── AuthServiceImpl.java
│ │ │ ├── LogServiceImpl.java
│ │ │ ├── RateLimitServiceImpl.java
│ │ │ ├── RouteOptServiceImpl.java
│ │ │ ├── RouteRibbonServiceImpl.java
│ │ │ ├── StatisticServiceImpl.java
│ │ │ ├── UrlAnalysisService.java
│ │ │ └── ZuulServiceImpl.java
│ │ └── wblist
│ │ │ ├── AbstractbwListDispatch.java
│ │ │ ├── FilterByDomainProcessor.java
│ │ │ ├── FilterbwListStrategyManager.java
│ │ │ └── FilterbyipProcessor.java
│ │ ├── spi
│ │ ├── BaseAdminController.java
│ │ └── controller
│ │ │ ├── AuthbwListController.java
│ │ │ ├── ConfigController.java
│ │ │ ├── GatewayConfigWatch.java
│ │ │ ├── RouteCompController.java
│ │ │ ├── RouteCompUploadController.java
│ │ │ ├── RouteMonitorController.java
│ │ │ ├── RouteRateLimitController.java
│ │ │ ├── RouteRefreshController.java
│ │ │ ├── RouteSwitchController.java
│ │ │ ├── RouteWatchController.java
│ │ │ ├── SynchSpeedController.java
│ │ │ ├── TopologyController.java
│ │ │ ├── UrlRecordController.java
│ │ │ └── ZuulCoreController.java
│ │ ├── synch
│ │ └── processor
│ │ │ └── UpstreamProcessor.java
│ │ └── topology
│ │ ├── Event.java
│ │ ├── TopoLogyScheduled.java
│ │ ├── TopologyManager.java
│ │ └── intercept
│ │ ├── InterceptContext.java
│ │ ├── ThreadContext.java
│ │ └── ThreadInterceptProcessor.java
│ └── resources
│ ├── META-INF
│ └── spring.factories
│ ├── application.yml
│ ├── logback.xml
│ └── meta.data
├── sia-gateway-esclient
├── .gitignore
├── LICENSE
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ └── elasticsearch
│ ├── client
│ └── ESClient.java
│ └── index
│ └── ESIndexHelper.java
├── sia-gateway-messaging
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ └── message
│ ├── api
│ ├── BaseMqConsumer.java
│ ├── BaseMqProducer.java
│ ├── MqHandler.java
│ ├── domain
│ │ └── MqMessage.java
│ └── impl
│ │ ├── KafkaConsumer.java
│ │ └── KafkaProducer.java
│ ├── appender
│ ├── JsonTransform.java
│ ├── SagAppenderRunner.java
│ └── SagMqAppender.java
│ └── config
│ ├── ConsumerAutoConfiguration.java
│ ├── EnableSagConsumer.java
│ ├── EnableSagProducer.java
│ ├── ProducerAutoConfiguration.java
│ └── SagMqProperties.java
├── sia-gateway-monitor
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── creditease
│ │ └── gateway
│ │ ├── GatewayMonitorApplication.java
│ │ ├── config
│ │ └── MonitorConfiguration.java
│ │ └── controller
│ │ └── MonitorController.java
│ └── resources
│ └── application.yml
├── sia-gateway-reactive
├── .gitignore
├── LICENSE
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ └── reactive
│ ├── ReactiveExecutable.java
│ ├── ReactiveObservable.java
│ ├── RxScheduler.java
│ ├── RxThreadPool.java
│ ├── impl
│ └── BaseEventInvoke.java
│ └── test
│ └── MainEvent.java
├── sia-gateway-registry
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ ├── repository
│ └── EurekaRepository.java
│ └── service
│ └── EurekaService.java
├── sia-gateway-service
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── creditease
│ │ └── gateway
│ │ ├── GatewayServiceApplication.java
│ │ ├── config
│ │ ├── GatewaySupportConfiguration.java
│ │ ├── LocalMetaDataLoader.java
│ │ └── MySchedulingConfigurer.java
│ │ ├── controller
│ │ ├── SendAlarmEmailController.java
│ │ ├── TopoViewController.java
│ │ └── UrlViewController.java
│ │ ├── scheduler
│ │ ├── GatewayHealthCheckScheduledTask.java
│ │ ├── GatewayMonitorScheduledTask.java
│ │ ├── NotifySuperGatewayScheduledTask.java
│ │ ├── TopoLogyScheduledTask.java
│ │ └── URLMonitorScheduledTask.java
│ │ ├── service
│ │ ├── EmailWithFeignService.java
│ │ ├── SchedulerService.java
│ │ ├── abstractlist
│ │ │ ├── AbstractPostAlarmInfo.java
│ │ │ └── EmailAlarmPostImpl.java
│ │ ├── impl
│ │ │ └── SchedulerServiceImpl.java
│ │ └── repository
│ │ │ ├── AlarmRepository.java
│ │ │ └── SchedulerRepository.java
│ │ └── vo
│ │ └── AlarmEmailVO.java
│ └── resources
│ ├── application.yml
│ └── logback.xml
├── sia-gateway-sink
├── .gitignore
├── LICENSE
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ ├── config
│ ├── EnableSink.java
│ ├── SinkAutoConfiguration.java
│ └── SinkProperties.java
│ ├── handler
│ └── DataConsumerHandler.java
│ ├── runner
│ └── SinkRunner.java
│ └── sink
│ ├── LogDataCollector.java
│ ├── abs
│ └── BaseDataCollector.java
│ ├── es
│ └── EsIndexMgr.java
│ └── starter
│ ├── AbstractSinkStarter.java
│ └── LogSinkStarter.java
├── sia-gateway-stream
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── creditease
│ │ └── gateway
│ │ └── GatewayStreamApplication.java
│ └── resources
│ ├── application.yml
│ └── index-mapping.json
├── sia-gateway-synchspeed
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── creditease
│ │ └── gateway
│ │ ├── GatewaySynchApplication.java
│ │ ├── config
│ │ └── GatewaySynchConfiguration.java
│ │ ├── controller
│ │ └── SynchSpeedController.java
│ │ ├── respository
│ │ └── SynchDbRepository.java
│ │ └── service
│ │ ├── TriggerEvent.java
│ │ └── impl
│ │ └── TriggerEventImpl.java
│ └── resources
│ ├── application.yml
│ └── logback.xml
├── sia-gateway-template
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ ├── annotation
│ ├── FilterAnnotation.java
│ └── ReflectionHelper.java
│ └── template
│ ├── absfilter
│ └── AbstractThirdPartyFilter.java
│ └── context
│ ├── GatewayContextAware.java
│ └── GatewayFilterProtocal.java
├── sia-gateway-testFilter
├── .gitignore
├── LICENSE
├── findbugs.exclude.xml
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── creditease
│ └── gateway
│ └── filter
│ └── biz
│ └── TestFilter.java
└── third-libary
├── docker-start.sh
├── nginx.conf
├── tcl-8.5.13-8.el7.x86_64.rpm
└── tcl-devel-8.5.13-8.el7.x86_64.rpm
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.js linguist-language=java;
2 | *.css linguist-language=java;
3 | *.html linguist-language=java
4 |
--------------------------------------------------------------------------------
/build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | cd ./sia-gateway-admin-buildcomponent/ && mvn clean install -Dmaven.test.skip=true
3 | cd ../sia-gateway-buildcomponent/ && mvn clean install -Dmaven.test.skip=true
4 | cd ../sia-gateway-admin-display/ && sudo npm install -g npm && npm run build
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/docker-build.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | docker build -t reg.caiwu/sia/gateway:v1 .
3 |
--------------------------------------------------------------------------------
/docker-run.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | str=$(cd "$(dirname "$0")";pwd)
3 |
4 | volums_path="-v ${str}/sia-gateway-admin-buildcomponent/config:/app/jar/ROOT/gatewayadmin/config -v ${str}/sia-gateway-buildcomponent/config:/app/jar/ROOT/gateway/config"
5 | # volums_path="-v ${str}/config:/app/jar/ROOT/gatewayadmin/config -v ${str}/config:/app/jar/ROOT/gateway/config"
6 | if [ ! $1 ]; then
7 | volums_path=""
8 | fi
9 |
10 | # -v /etc/localtime:/etc/localtime
11 | docker run --name gateway-test -d ${volums_path} -p 18086:18086 -p 8080:8080 -p 8040:8040 --restart=on-failure:10 --privileged=true reg.caiwu/sia/gateway:v1 /bin/bash -c " /app/jar/ROOT/docker-start.sh "
12 |
13 |
--------------------------------------------------------------------------------
/docs/dev.md:
--------------------------------------------------------------------------------
1 | ## 开发实例
2 | * SIA-GateWay 第三方组件开发指南[示例](/docs/third_guide.md)。
3 | * SIA-GateWay 安全认证客户端开发指南[示例](/docs/safe_guide.md).
4 | * SIA-GateWay 蓝绿部署、金丝雀部署中微服务配置文件指南[示例](/docs/ms_guide.md)
5 | * EKK构建方法[示例](/docs/user_ekk_zh.md).
--------------------------------------------------------------------------------
/docs/ms_guide.md:
--------------------------------------------------------------------------------
1 | # 微服务灰度配置
2 |
3 | ### 网关灰度发布说明
4 |
5 | 目前灰度发布组件包含两种导流方式:蓝绿部署和金丝雀部署, 这两种流量导流策略都需要网关连接的后端服务是SpringBoot微服务并且注册到Eureka注册中心,并且SpringBoot服务需要配置文件中的MetaData版本信息。
6 |
7 | ### 配置文件
8 |
9 | ```yml
10 |
11 | spring.application.name: xxx
12 | server.port: ****
13 | eureka.client.serviceUrl.defaultZone: http://127.0.0.1:19002/eureka/
14 | eureka.instance.preferIpAddress: true
15 | eureka.instance.instance-id: ${spring.cloud.client.ipAddress}:${server.port}
16 | eureka.instance.prefer-ip-address: true
17 | eureka.instance.metadata-map.version: 1
18 |
19 | ```
20 | 上面是一个应用的配置文件,其中表明版本信息的MetaData如下,只需要根据不同版本信息表用节点版本即可。
21 |
22 | ```yml
23 | eureka.instance.metadata-map.version: 1
24 | ```
25 |
--------------------------------------------------------------------------------
/docs/static_files/DeskTop.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/DeskTop.jpg
--------------------------------------------------------------------------------
/docs/static_files/Frm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/Frm.png
--------------------------------------------------------------------------------
/docs/static_files/Kibana.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/Kibana.jpg
--------------------------------------------------------------------------------
/docs/static_files/ark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/ark.png
--------------------------------------------------------------------------------
/docs/static_files/audit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/audit.png
--------------------------------------------------------------------------------
/docs/static_files/black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/black.png
--------------------------------------------------------------------------------
/docs/static_files/comp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/comp.png
--------------------------------------------------------------------------------
/docs/static_files/compmgt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/compmgt.png
--------------------------------------------------------------------------------
/docs/static_files/componentManager.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/componentManager.jpg
--------------------------------------------------------------------------------
/docs/static_files/conf1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf1.png
--------------------------------------------------------------------------------
/docs/static_files/conf10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf10.png
--------------------------------------------------------------------------------
/docs/static_files/conf11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf11.png
--------------------------------------------------------------------------------
/docs/static_files/conf12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf12.png
--------------------------------------------------------------------------------
/docs/static_files/conf13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf13.png
--------------------------------------------------------------------------------
/docs/static_files/conf14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf14.png
--------------------------------------------------------------------------------
/docs/static_files/conf15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf15.png
--------------------------------------------------------------------------------
/docs/static_files/conf16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf16.png
--------------------------------------------------------------------------------
/docs/static_files/conf17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf17.png
--------------------------------------------------------------------------------
/docs/static_files/conf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf2.png
--------------------------------------------------------------------------------
/docs/static_files/conf3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf3.png
--------------------------------------------------------------------------------
/docs/static_files/conf4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf4.png
--------------------------------------------------------------------------------
/docs/static_files/conf5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf5.png
--------------------------------------------------------------------------------
/docs/static_files/conf6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf6.png
--------------------------------------------------------------------------------
/docs/static_files/conf7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf7.png
--------------------------------------------------------------------------------
/docs/static_files/conf8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf8.png
--------------------------------------------------------------------------------
/docs/static_files/conf9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/conf9.png
--------------------------------------------------------------------------------
/docs/static_files/deploy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/deploy.png
--------------------------------------------------------------------------------
/docs/static_files/desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/desktop.png
--------------------------------------------------------------------------------
/docs/static_files/dis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/dis.png
--------------------------------------------------------------------------------
/docs/static_files/ekk架构.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/ekk架构.png
--------------------------------------------------------------------------------
/docs/static_files/es.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/es.png
--------------------------------------------------------------------------------
/docs/static_files/fenlei.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/fenlei.jpg
--------------------------------------------------------------------------------
/docs/static_files/gateway.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/gateway.png
--------------------------------------------------------------------------------
/docs/static_files/gatewayMonitor.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/gatewayMonitor.jpg
--------------------------------------------------------------------------------
/docs/static_files/gatewaySetting.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/gatewaySetting.jpg
--------------------------------------------------------------------------------
/docs/static_files/gatewaySwagger.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/gatewaySwagger.jpg
--------------------------------------------------------------------------------
/docs/static_files/gatewaytop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/gatewaytop.png
--------------------------------------------------------------------------------
/docs/static_files/homePage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/homePage.jpg
--------------------------------------------------------------------------------
/docs/static_files/hystrixManager.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/hystrixManager.jpg
--------------------------------------------------------------------------------
/docs/static_files/jar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/jar.png
--------------------------------------------------------------------------------
/docs/static_files/logManager.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/logManager.jpg
--------------------------------------------------------------------------------
/docs/static_files/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/login.png
--------------------------------------------------------------------------------
/docs/static_files/msa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/msa.png
--------------------------------------------------------------------------------
/docs/static_files/newRoute.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/newRoute.jpg
--------------------------------------------------------------------------------
/docs/static_files/newlog.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/newlog.jpeg
--------------------------------------------------------------------------------
/docs/static_files/registryManager.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/registryManager.jpg
--------------------------------------------------------------------------------
/docs/static_files/route.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/route.png
--------------------------------------------------------------------------------
/docs/static_files/routeManager-operation.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/routeManager-operation.jpg
--------------------------------------------------------------------------------
/docs/static_files/routeManager-topo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/routeManager-topo.jpg
--------------------------------------------------------------------------------
/docs/static_files/routeManager.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/routeManager.jpg
--------------------------------------------------------------------------------
/docs/static_files/routetop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/routetop.png
--------------------------------------------------------------------------------
/docs/static_files/servicemesh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/servicemesh.png
--------------------------------------------------------------------------------
/docs/static_files/stacktrace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/stacktrace.png
--------------------------------------------------------------------------------
/docs/static_files/url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/url.png
--------------------------------------------------------------------------------
/docs/static_files/zuoyong.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/docs/static_files/zuoyong.jpg
--------------------------------------------------------------------------------
/docs/third_guide.md:
--------------------------------------------------------------------------------
1 | # 第三方插件开发指南
2 |
3 | ### 功能介绍
4 |
5 | API网关对ZuulFilter进行了抽象封装,业务系统根据template提供的AbstractThirdPartyFilter抽象类,实现定制化的业务逻辑按照标准规范开发及打包步骤,上传到API网关平台后通过路由绑定组件功能使业务逻辑生效。
6 |
7 |
8 |
9 | ### POM文件命名规范及依赖
10 |
11 | 【规范1】artifactId命名需要与Filter类名一致,并且需要带version信息。
12 |
13 | 【规范2】需要引入 `sia-gateway-template` 依赖
14 |
15 |
16 | ```xml
17 |
18 | com.sia
19 | TestFilter
20 | 1.0
21 |
22 | ........
23 |
24 |
25 | com.sia
26 | sia-gateway-template
27 | 1.0
28 |
29 | ```
30 |
31 | 【规范3】第三方组件工程的依赖包需要放在sia-gateway-template的 POM.xml 加载相关依赖。
32 | 第三方组件工程打包仅包含源码文件,所有第三方JAR包由sia-gateway-template加载依赖
33 |
34 |
35 | ### Demo工程代码实例
36 |
37 | sia-gateway-testFilter 源码工程包含业务第三方组件开发实例。
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | /.project
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/gw_proc_watcher.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | source /etc/profile
3 | process_flag=$1
4 |
5 | working_directory=$2
6 |
7 | start_command=$3
8 |
9 | now=$(date "+%Y-%m-%d %H:%M:%S")
10 | # max log file count
11 | log_file_max=30
12 |
13 | # interval of run
14 | step=15
15 | if [[ "$4" -ge 5 && "$4" -le 60 ]]; then
16 | step=$4
17 | fi
18 |
19 | for(( i = 0; i < 60; i=(i+step) )); do
20 |
21 | # judge process running
22 | count=`ps -fC java | grep $process_flag | wc -l`
23 | if [ $count -eq 0 ]; then
24 | # log
25 | echo "$now $process_flag restart by $start_command">>$working_directory/$(date "+%Y-%m-%d")_restart.out
26 | # start
27 | cd $working_directory
28 | nohup $start_command 1>/dev/null 2>&1 &
29 |
30 | # clear log file
31 | if [ $(find $working_directory -name "*_restart.out" | wc -l) -gt $log_file_max ]; then
32 | rm -rf $(ls $working_directory/*_restart.out|head -n1)
33 | fi
34 | fi
35 |
36 | #
37 | if [ $step -ge 60 ];then
38 | exit 0
39 | else
40 | sleep $step
41 | fi
42 |
43 | done
44 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/onekey_start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | chmod +x *.sh
4 | /app/jar/ROOT/gatewayadmin/bin/start_gateway_admin_test.sh
5 | /app/jar/ROOT/gatewayadmin/bin/start_gateway_service_test.sh
6 | /app/jar/ROOT/gatewayadmin/bin/start_gateway_synchspeed_test.sh
7 | /app/jar/ROOT/gatewayadmin/bin/start_gateway_stream_test.sh
8 | /app/jar/ROOT/gatewayadmin/bin/start_gateway_monitor_test.sh
9 |
10 | echo "启动网关核心"
11 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/shutdown_gateway_admin_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./stop.sh gateway_admin_test >$(pwd)/gateway_admin_test.shutdown 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/shutdown_gateway_monitor_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./stop.sh gateway_monitor_test > /dev/null 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/shutdown_gateway_service_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./stop.sh gateway_service_test >$(pwd)/gateway_service_test.shutdown 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/shutdown_gateway_stream_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./stop.sh gateway_stream_test >$(pwd)/gateway_stream_test.shutdown 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/shutdown_gateway_synchspeed_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./stop.sh gateway_synchspeed_test >/dev/null 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/start_gateway_admin_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run.sh gateway_admin_test sia-gateway-admin-1.0.jar >$(pwd)/gateway_admin_test.start 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/start_gateway_monitor_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run4monitor.sh gateway_monitor_test sia-gateway-monitor-1.0.jar > /dev/null 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/start_gateway_service_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run4service.sh gateway_service_test sia-gateway-service-1.0.jar >$(pwd)/gateway_service_test.start 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/start_gateway_stream_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run4stream.sh gateway_stream_test sia-gateway-stream-1.0.jar >$(pwd)/gateway_stream_test.start 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/start_gateway_synchspeed_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run4synchspeed.sh gateway_synchspeed_test sia-gateway-synchspeed-1.0.jar > /dev/null 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/bin/stop.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # First, delete crontab
4 | process_flag=$1
5 | count=`crontab -l 2>/dev/null | grep "$process_flag" | wc -l`
6 | if [ $count -ne 0 ]; then
7 | cronfile=$(pwd)/$process_flag".cron.stop"
8 | crontab -l | grep -v "$process_flag" > $cronfile
9 | crontab $cronfile
10 | rm $cronfile
11 | fi
12 |
13 | # Second, kill running watcher
14 | runing_watcher=$(ps -ef | grep "gw_proc_watcher.sh" | grep "$process_flag" |grep -v grep | awk '{printf "%s ",$2}')
15 | for pid in $runing_watcher; do
16 | echo "watcher will be killed by kill -9 $pid"
17 | kill -9 "$pid"
18 | done
19 |
20 | # Third, kill application
21 | app_pid=$(ps -ef | grep "$process_flag" |grep -v grep |grep -v "stop.sh"| awk '{printf "%s ",$2}')
22 | for pid in $app_pid; do
23 | echo "application will be killed by kill -9 $pid"
24 | kill -9 "$pid"
25 | done
26 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/config/gateway_monitor_test.yml:
--------------------------------------------------------------------------------
1 | spring.application.name: API-GATEWAY-MONITOR
2 | eureka.client.serviceUrl.defaultZone: http://127.0.0.1:19002/eureka/,http://10.143.131.134:19002/eureka/
3 | eureka.instance.preferIpAddress: true
4 | eureka.instance.instance-id: ${spring.cloud.client.ipAddress}:${server.port}
5 | server.port: 8040
6 |
7 | logging.file: ../logs/${spring.application.name}.log
8 |
9 | # ZUUL actuator功能
10 | management.security.enabled: false
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/config/gateway_synchspeed_test.yml:
--------------------------------------------------------------------------------
1 | ########################################################
2 | ### ZUUL 辅助服务
3 | ########################################################
4 | spring.application.name: SYNCH-EUREKA-SERVICE
5 | eureka.client.serviceUrl.defaultZone: http://127.0.0.1:19002/eureka/
6 | eureka.instance.preferIpAddress: true
7 | eureka.instance.instance-id: ${spring.cloud.client.ipAddress}:${server.port}
8 | server.port: 8060
9 |
10 | # ZUUL actuator功能
11 | management.security.enabled: false
12 |
13 | ########################################################
14 | ### 数据库 mysql基本配置
15 | ########################################################
16 | spring.datasource.skytrain:
17 | url: jdbc:mysql://127.0.0.1:3306/zoner?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false
18 | username: root
19 | password: ****
20 | driverClassName: com.mysql.jdbc.Driver
21 |
22 | ########################################################
23 | ### KAFKA 基本配置
24 | ########################################################
25 | spring.kafka.bootstrap-servers: 127.0.0.1:9092
26 | # 生产者和消费者topic前缀
27 | spring.kafka.topicPrefix: sag.
28 |
29 | spring.kafka.producer.numOfPartition: 4
30 | spring.kafka.producer.retries: 2
31 | # 每次批量发送消息的数量
32 | spring.kafka.producer.batch-size: 16384
33 | spring.kafka.producer.buffer-memory: 33554432
34 |
35 | logging.file: ../logs/${spring.application.name}.log
36 |
37 |
38 | #网关预警服务邮箱接口
39 | ALARM_EMAIL_ADDRESS: # http://127.0.0.1:8070/alarmEmail/sendAlarmEmail
40 |
41 | #eureka-server名字
42 | EUREKA_SERVER_NAME: GANTRY-EUREKA-SERVER
43 |
--------------------------------------------------------------------------------
/sia-gateway-admin-buildcomponent/config/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | ${FILE_LOG_PATTERN}
12 |
13 | ${LOG_FILE}
14 |
15 | ${LOG_FILE}.%i
16 | 1
17 | 10
18 |
19 |
20 | 10MB
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-runtime"],
12 | "env": {
13 | "test": {
14 | "presets": ["env", "stage-2"],
15 | "plugins": ["istanbul"]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 | src/*
4 | static/*
5 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // 默认情况下,ESLint会在所有父级组件中寻找配置文件,一直到根目录。ESLint一旦发现配置文件中有 "root": true,它就会停止在父级目录中寻找。
3 | root: true,
4 | // 对Babel解析器的包装使其与 ESLint 兼容。
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | // 代码是 ECMAScript 模块
8 | sourceType: 'module'
9 | },
10 | env: {
11 | // 预定义的全局变量,这里是浏览器环境
12 | browser: true,
13 | },
14 | // 扩展一个流行的风格指南,即 eslint-config-standard
15 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
16 | extends: 'standard',
17 | // required to lint *.vue files
18 | plugins: [
19 | // 此插件用来识别.html 和 .vue文件中的js代码
20 | 'html',
21 | // standard风格的依赖包
22 | "standard",
23 | // standard风格的依赖包
24 | "promise"
25 | ],
26 | // add your custom rules here http://www.cnblogs.com/hahazexia/p/6393212.html
27 | 'rules': {
28 | // allow paren-less arrow functions
29 | 'arrow-parens': 0,
30 | // allow async-await
31 | 'generator-star-spacing': 0,
32 | // allow debugger during development
33 | 'no-debugger': process.env.NODE_ENV === "production" ? 2 : 0
34 | }
35 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 |
60 | # Compiled files
61 | dist
62 | /dist
63 |
64 | # IED file
65 | .vs
66 | .idea
67 | .vscode
68 |
69 | # unit test result files
70 | test/unit/coverage
71 | test/e2e/reports
72 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/README.md:
--------------------------------------------------------------------------------
1 | ## 前端部署
2 | ### 环境准备
3 | (1)node环境安装 => https://nodejs.org/en/download/
4 |
5 | (2)Nginx安装
6 |
7 | ### 前端项目打包
8 | (1)进入本地的项目执行命令进行打包 => npm run build
9 |
10 | 注:1、打包完成在改文件夹下面生成dist文件夹,改文件夹为前端工程
11 |
12 | 2、dist/static文件夹下面的site.map.js为后端服务配置(ip:port形式),根据项目需求自行更改
13 | ### 前端项目部署
14 | (1)nginx的代理配置
15 |
16 | 进入nginx的目录下nginx.conf,添加如下代理:
17 |
18 |
19 | ```
20 | server {
21 | listen 8080; // 前端页面监听端口
22 | server_name localhost;
23 | location / {
24 | root app/dist; // 前端包存放目录
25 | index index.html index.htm;
26 | try_files $uri $uri/ @router;
27 | }
28 | location @router {
29 | rewrite ^.*$ /index.html last;
30 | }
31 | error_page 500 502 503 504 /50x.html;
32 | location = /50x.html {
33 | root html;
34 | }
35 | }
36 |
37 | server {
38 | listen 80;
39 | server_name localhost;
40 | location / {
41 | proxy_pass http://*.*.*.*:8081; // 后端服务地址
42 | add_header 'Access-Control-Allow-Origin' 'http://*.*.*.*:8080';
43 | add_header 'Access-Control-Allow-Credentials' 'true';
44 | }
45 | }
46 | ```
--------------------------------------------------------------------------------
/sia-gateway-admin-display/build/build.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')()
2 |
3 | process.env.NODE_ENV = 'production'
4 |
5 | var ora = require('ora')
6 | var rm = require('rimraf')
7 | var path = require('path')
8 | var chalk = require('chalk')
9 | var webpack = require('webpack')
10 | var config = require('../config')
11 | var webpackConfig = require('./webpack.prod.conf')
12 |
13 | var spinner = ora('building for production...')
14 | spinner.start()
15 |
16 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
17 | if (err) throw err
18 | webpack(webpackConfig, function (err, stats) {
19 | spinner.stop()
20 | if (err) throw err
21 | process.stdout.write(stats.toString({
22 | colors: true,
23 | modules: false,
24 | children: false,
25 | chunks: false,
26 | chunkModules: false
27 | }) + '\n\n')
28 |
29 | if (stats.hasErrors()) {
30 | console.log(chalk.red(' Build failed with errors.\n'))
31 | process.exit(1)
32 | }
33 |
34 | console.log(chalk.cyan(' Build complete.\n'))
35 | console.log(chalk.yellow(
36 | ' Tip: built files are meant to be served over an HTTP server.\n' +
37 | ' Opening index.html over file:// won\'t work.\n'
38 | ))
39 | })
40 | })
41 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/build/check-versions.js:
--------------------------------------------------------------------------------
1 | var chalk = require('chalk')
2 | var semver = require('semver')
3 | var packageConfig = require('../package.json')
4 | var shell = require('shelljs')
5 | function exec (cmd) {
6 | return require('child_process').execSync(cmd).toString().trim()
7 | }
8 |
9 | var versionRequirements = [
10 | {
11 | name: 'node',
12 | currentVersion: semver.clean(process.version),
13 | versionRequirement: packageConfig.engines.node
14 | }
15 | ]
16 |
17 | if (shell.which('npm')) {
18 | versionRequirements.push({
19 | name: 'npm',
20 | currentVersion: exec('npm --version'),
21 | versionRequirement: packageConfig.engines.npm
22 | })
23 | }
24 |
25 | module.exports = function () {
26 | var warnings = []
27 | for (var i = 0; i < versionRequirements.length; i++) {
28 | var mod = versionRequirements[i]
29 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
30 | warnings.push(mod.name + ': ' +
31 | chalk.red(mod.currentVersion) + ' should be ' +
32 | chalk.green(mod.versionRequirement)
33 | )
34 | }
35 | }
36 |
37 | if (warnings.length) {
38 | console.log('')
39 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
40 | console.log()
41 | for (var i = 0; i < warnings.length; i++) {
42 | var warning = warnings[i]
43 | console.log(' ' + warning)
44 | }
45 | console.log()
46 | process.exit(1)
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/build/dev-client.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | require('eventsource-polyfill')
3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
4 |
5 | hotClient.subscribe(function (event) {
6 | if (event.action === 'reload') {
7 | window.location.reload()
8 | }
9 | })
10 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var config = require('../config')
3 | var isProduction = process.env.NODE_ENV === 'production'
4 |
5 | module.exports = {
6 | loaders: utils.cssLoaders({
7 | sourceMap: isProduction
8 | ? config.build.productionSourceMap
9 | : config.dev.cssSourceMap,
10 | extract: isProduction
11 | }),
12 | transformToRequire: {
13 | video: 'src',
14 | source: 'src',
15 | img: 'src',
16 | image: 'xlink:href'
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var webpack = require('webpack')
3 | var config = require('../config')
4 | var merge = require('webpack-merge')
5 | var baseWebpackConfig = require('./webpack.base.conf')
6 | var HtmlWebpackPlugin = require('html-webpack-plugin')
7 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
8 |
9 | // add hot-reload related code to entry chunks
10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) {
11 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
12 | })
13 |
14 | module.exports = merge(baseWebpackConfig, {
15 | module: {
16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17 | },
18 | // cheap-module-eval-source-map is faster for development
19 | devtool: '#cheap-module-eval-source-map',
20 | plugins: [
21 | new webpack.DefinePlugin({
22 | 'process.env': config.dev.env
23 | }),
24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
25 | new webpack.HotModuleReplacementPlugin(),
26 | new webpack.NoEmitOnErrorsPlugin(),
27 | // https://github.com/ampedandwired/html-webpack-plugin
28 | new HtmlWebpackPlugin({
29 | filename: 'index.html',
30 | template: 'index.html',
31 | inject: true
32 | }),
33 | new FriendlyErrorsPlugin()
34 | ]
35 | })
36 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/build/webpack.test.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // This is the webpack config used for unit tests.
3 |
4 | const utils = require('./utils')
5 | const webpack = require('webpack')
6 | const merge = require('webpack-merge')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 |
9 | const webpackConfig = merge(baseWebpackConfig, {
10 | // use inline sourcemap for karma-sourcemap-loader
11 | module: {
12 | rules: utils.styleLoaders()
13 | },
14 | devtool: '#inline-source-map',
15 | resolveLoader: {
16 | alias: {
17 | // necessary to to make lang="scss" work in test when using vue-loader's ?inject option
18 | // see discussion at https://github.com/vuejs/vue-loader/issues/724
19 | 'scss-loader': 'sass-loader'
20 | }
21 | },
22 | plugins: [
23 | new webpack.DefinePlugin({
24 | 'process.env': require('../config/test.env')
25 | })
26 | ]
27 | })
28 |
29 | // no need for app entry during tests
30 | delete webpackConfig.entry
31 |
32 | module.exports = webpackConfig
33 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"',
6 | CESHI_API_HOST: "'10.143.135.138:8090'",
7 | // CESHI_API_HOST: "'10.10.169.78:8090'",
8 | // CESHI_API_HOST: "'10.143.135.183:8090'",
9 | // CESHI_API_HOST: "'10.10.168.19:8090'",
10 | CESHI_API_HOST_LOG: "'10.143.131.86:5601'"
11 | })
12 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/config/test.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const devEnv = require('./dev.env')
4 |
5 | module.exports = merge(devEnv, {
6 | NODE_ENV: '"testing"',
7 | CESHI_API_HOST: "'10.143.131.85:8090'"
8 | })
9 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/eslint.guide.md:
--------------------------------------------------------------------------------
1 | # VS Code 配置 ESLint 提示
2 | 打开扩展器,搜索"eslint",并安装
3 | “文件”->“首选项”->"设置"->搜索“eslint.validate” ,并编辑为
4 | "eslint.validate": [
5 | "javascript",
6 | "javascriptreact",
7 | "html",
8 | "vue"
9 | ]
--------------------------------------------------------------------------------
/sia-gateway-admin-display/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 网关管理中心
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
14 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/arrow-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/arrow-down.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/close.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/current-gateway-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/current-gateway-icon.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/desktop-icon-ck.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/desktop-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/down-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/down-active.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/down.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/edit-ck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/edit-ck.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/edit.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/eureka-ck.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/eureka.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/guanbi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/guanbi.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/guanbi2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/guanbi2.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/logo.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/monitor-icon-ck.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/monitor-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/nav-border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/nav-border.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/rong-duan-icon-ck.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/rong-duan-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/router-icon-ck.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/router-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/shen-ji-icon-ck.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/shen-ji-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/up-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/up-active.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/images/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/common/images/up.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/plugins/validator.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | import { RegExpressions } from './regExpressions'
3 | const validator = {}
4 |
5 | validator.required = function (tips) {
6 | return {required: true, message: tips, trigger: 'blur'}
7 | }
8 |
9 | validator.range = function (begin, to, tips) {
10 | return {min: begin, max: to, message: tips, trigger: 'blur'}
11 | }
12 |
13 | // type : ['date','array','number']
14 | validator.range = function (type, tips) {
15 | return {type: type, required: true, message: tips, trigger: 'change'}
16 | }
17 |
18 | /**
19 | * 校验字段(字段在非空时校验)
20 | * @param regName(regExpressions 文件中相应的验证正则表达式对象的key)
21 | * @return regExpressions 文件中预定义的错误信息
22 | */
23 | validator.custom = function (regName) {
24 | return {
25 | validator: (rule, value, callback) => {
26 | if (value !== '') {
27 | var pattern = new RegExp(RegExpressions[regName].reg)
28 | if (!pattern.test(value)) {
29 | callback(new Error(RegExpressions[regName].error_msg))
30 | }
31 | callback()
32 | } else {
33 | callback()
34 | }
35 | },
36 | trigger: 'blur'
37 | }
38 | }
39 | export default validator
40 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/routers/common.router.js:
--------------------------------------------------------------------------------
1 | const NotFoundPage = resolve => require(['../views/404.page'], resolve)
2 | const NotPowerPage = resolve => require(['../views/401.page'], resolve)
3 |
4 | const CommonRouter = {}
5 |
6 | CommonRouter.routers = [
7 | {
8 | path: '/404',
9 | component: NotFoundPage,
10 | hidden: true,
11 | meta: {
12 | title: '404',
13 | auth: false
14 | }
15 | },
16 | {
17 | path: '/401',
18 | component: NotPowerPage,
19 | hidden: true,
20 | meta: {
21 | title: '401',
22 | auth: false
23 | }
24 | },
25 | {
26 | path: '*',
27 | hidden: true,
28 | redirect: { path: '/404' }
29 | }
30 | ]
31 |
32 | export default CommonRouter
33 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/routers/router.index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueRouter from 'vue-router'
3 | import CommonRouter from './common.router.js'
4 | import FrameRouter from '../../frame/routers/frame.router.js'
5 | import LoginRouter from '../../login/routers/login.router.js'
6 |
7 | Vue.use(VueRouter)
8 |
9 | let routerArray = []
10 |
11 | routerArray = routerArray.concat(CommonRouter.routers)
12 | routerArray = routerArray.concat(FrameRouter.routers)
13 | routerArray = routerArray.concat(LoginRouter.routers)
14 |
15 | const appRouter = new VueRouter({
16 | mode: 'history',
17 | saveScrollPosition: true,
18 | routes: routerArray
19 | })
20 |
21 | // 路由跳转拦截
22 | appRouter.beforeEach((to, from, next) => {
23 | if (to.meta.auth) {
24 | if (sessionStorage.getItem('login') === 'show') {
25 | next()
26 | } else {
27 | next({
28 | path: '/login',
29 | query: {redirect: to.fullPath}
30 | })
31 | }
32 | } else {
33 | next()
34 | }
35 | // next()
36 | document.title = to.meta.title
37 | })
38 |
39 | export default appRouter
40 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/services/console.provider.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const consoleProvider = {}
3 | consoleProvider.devMode = process.env.NODE_ENV === 'production'
4 | consoleProvider.log = function (key, params) {
5 | if (!this.devMode) {
6 | if (params) {
7 | console.log(key, params)
8 | } else {
9 | console.log(key)
10 | }
11 | }
12 | }
13 | export default consoleProvider
14 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/services/helper.provider.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const helperProvider = {}
3 | helperProvider.handleLoginErrorMsg = function (response) {
4 | if (response.message && response.message.indexOf('Network Error') > -1) {
5 | return '请求超时!'
6 | }
7 | switch (response.data.code) {
8 | case 400:
9 | return '参数错误!'
10 | case 401:
11 | return '限制调用!'
12 | case 402:
13 | return 'token 过期!'
14 | case 403:
15 | return '禁止访问!'
16 | case 404:
17 | return '资源没找到!'
18 | case 406:
19 | return '服务降级中!'
20 | case 407:
21 | return '路由ID已存在!'
22 | case 408:
23 | return '匹配路径已存在!'
24 | case 500:
25 | return '服务器错误!'
26 | default:
27 | return '服务未响应!'
28 | }
29 | }
30 |
31 | export default helperProvider
32 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/services/store.provider.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | import Vue from 'vue'
3 | import Vuex from 'vuex'
4 | import FrameStore from '../../frame/services/frame.store.js'
5 |
6 | Vue.use(Vuex)
7 |
8 | export default new Vuex.Store(
9 | {
10 | strict: process.env.NODE_ENV !== 'production', // [ext] open vuex strict mode
11 | modules: {
12 | frame: FrameStore
13 | }
14 | }
15 | )
16 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/services/util.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | import moment from 'moment'
3 | const formatDates = {}
4 | formatDates.dateFormat = function (time) {
5 | if (time === null || time === 'null' || time === '') {
6 | return ''
7 | } else {
8 | return moment(new Date(time)).format('YYYY-MM-DD HH:mm:ss')
9 | }
10 | }
11 |
12 | /**
13 | * getDay(0) 获取当前日期
14 | * getDay(-3) 获取最近三天
15 | * @param day(当前日期最近几天的参数值)
16 | * @return 返回所求天数的日期
17 | */
18 |
19 | formatDates.getDay = function (day) {
20 | let today = new Date()
21 | let targetdayMilliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day
22 | today.setTime(targetdayMilliseconds)
23 | let tYear = today.getFullYear()
24 | let tMonth = today.getMonth()
25 | let tDate = today.getDate()
26 | tMonth = doHandleMonth(tMonth + 1)
27 | tDate = doHandleMonth(tDate)
28 | return tYear + '-' + tMonth + '-' + tDate
29 | }
30 |
31 | function doHandleMonth (month) {
32 | var m = month
33 | if (month.toString().length === 1) {
34 | m = '0' + month
35 | }
36 | return m
37 | }
38 |
39 | /**
40 | * 获取url参数
41 | * @param urlParams(所求参数的url)
42 | * @return 以对象的形式返回所有参数
43 | */
44 |
45 | formatDates.getUrlParams = function (urlParams) {
46 | let theRequest = {}
47 | if (urlParams.indexOf('?') !== -1) {
48 | let str = urlParams.substr(urlParams.indexOf('?') + 1)
49 | let strs = str.split('&')
50 | for (let i = 0; i < strs.length; i++) {
51 | theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1])
52 | }
53 | }
54 | return theRequest
55 | }
56 |
57 | export default formatDates
58 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/styles/global.less:
--------------------------------------------------------------------------------
1 | @default-section-background: #373C4F; // section-container 内容部分默认背景颜色
2 |
3 | @default-frame-background: #2e313e; // frame-container frame默认背景颜色
4 |
5 | @default-left-menu-background: #393e50; // left-menu 左侧菜单默认背景颜色
6 |
7 | // @default-nav-header-background: #3c8dbc;
8 |
9 | // @default-nav-header-font-color: #fff;
10 |
11 | @default-left-menu-hover-background: #292D40; // 左侧菜单滑过 选中 背景颜色
12 |
13 | @default-left-menu-font-color: #C1C5CF; // 左侧菜单默认 字体颜色
14 |
15 | @default-btn-background: #3C8DBC; // 按钮背景颜色
16 |
17 | @default-btn-border-color: #3bb0d0; // 按钮边框颜色
18 |
19 | @default-table-font-color: #C1C5CF; // table 默认字体颜色
20 | @default-table-background: #373C4F; // table 默认背景颜色
21 |
22 | @default-table-th-background: #4B5061; // table th 默认背景颜色
23 |
24 | @default-font-color: #fff; // 系统默认字体颜色
25 |
26 | @default-font-color-a: #006e62;
27 |
28 | @default-font-color-white: #fff;
29 |
30 | @default-font-color-dark-gray: #666;
31 |
32 | @default-font-color3-light-gray: #999;
33 |
34 | @default-pager-font-color: #337ab7;
35 | @default-pager-active-font-color: white;
36 |
37 | @default-border-color: #bebebe;
38 |
39 | @default-border: solid 1px #cccccc;
40 |
41 | @default-btn-active-background: #38A0FD;
42 |
43 | @default-btn-click-background: #6666CC;
44 |
45 | @default-btn-hover-background: #7193E9;
46 |
47 | @default-btn-disable-background: #ccc;
48 |
49 | @default-btn-text-color: #fff;
50 |
51 | @default-btn-default-border: solid 1px #666;
52 |
53 | @default-btn--default-text-color: #333;
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/styles/theme.less:
--------------------------------------------------------------------------------
1 | @import './global.less';
2 | @import './reset.less';
3 | @import './theme/default.theme.less';
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/styles/transition.less:
--------------------------------------------------------------------------------
1 | /* fade begin */
2 | .fade-enter-active,
3 | .fade-leave-active {
4 | transition: opacity .3s
5 | }
6 | .fade-enter,
7 | .fade-leave-active {
8 | opacity: 0
9 | }
10 | /* fade end */
11 |
12 | /* page-fade begin */
13 | .page-fade-enter-active,
14 | .page-fade-leave-active {
15 | transition: opacity .3s
16 | }
17 |
18 | .page-fade-enter,
19 | .page-fade-leave-active {
20 | opacity: 0;
21 | }
22 | /*page-fade end */
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/views/401.page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 401 , 你没有权限或则权限过期!
4 |
5 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/common/views/404.page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 404 , 找不到该页面!
4 |
5 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/connecte-test/routers/connecte-test.router.js:
--------------------------------------------------------------------------------
1 | const ConnecteTestPage = resolve => require(['../views/connecte-test.page.vue'], resolve)
2 | const ConnecteTestModuleRouter = {}
3 | ConnecteTestModuleRouter.routers = [
4 | {
5 | path: '/router-connecte-test',
6 | component: ConnecteTestPage,
7 | name: 'ConnecteTestPage',
8 | meta: {
9 | title: '路由连通性测试',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default ConnecteTestModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/connecte-test/styles/connecte-test.page.reset.less:
--------------------------------------------------------------------------------
1 | .connecte-test-page.dispatch-system-default {
2 | & > .section-container {
3 | .section-content{
4 | padding-top: 30px;
5 | .el-input-group__append,
6 | .el-input-group__prepend {
7 | background-color: #4B5061;;
8 | border-width: 0px;
9 | }
10 | .params-info-text {
11 | width: 100%;
12 | margin-top: 10px;
13 | height: 100px;
14 | .el-textarea__inner {
15 | width: 100%;
16 | height: 100%;
17 | padding: 10px;
18 | border-radius: 0;
19 | background-color: transparent;
20 | border: 1px solid #4B5061;
21 | resize: none;
22 | color: #fff;
23 | }
24 | }
25 | .test-info {
26 | .el-input {
27 | .el-input-group__append {
28 | .el-button--default {
29 | background: #21A1AE;
30 | border-radius: 0 2px 2px 0;
31 | color: #fff;
32 | }
33 | }
34 | .el-input-group__prepend {
35 | width: 120px;
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/desktop/images/bottom-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/desktop/images/bottom-bg.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/desktop/routers/desktop.router.js:
--------------------------------------------------------------------------------
1 | const DeskTopPage = resolve => require(['../views/desktop.page.vue'], resolve)
2 | const DeskTopModuleRouter = {}
3 | DeskTopModuleRouter.routers = [
4 | {
5 | path: '/desktop',
6 | component: DeskTopPage,
7 | name: 'DeskTopPage',
8 | meta: {
9 | title: 'DeskTop',
10 | auth: 'notShow'
11 | }
12 | }
13 | ]
14 | export default DeskTopModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/desktop/styles/desktop.page.less:
--------------------------------------------------------------------------------
1 | @import '../../common/styles/global.less';
2 | .desktop-page {
3 | .gateway-group:hover,.gateway-group.active{
4 | color: #fff;
5 | border-radius: 3px;
6 | background: #60BECA;
7 | h3 {
8 | color: #fff;
9 | }
10 | ul {
11 | li {
12 | span {
13 | color: #fff;
14 | }
15 | }
16 | }
17 | }
18 | .gateway-group {
19 | width: 300px;
20 | height: 205px;
21 | margin: 0 15px 15px 0;
22 | padding: 17px;
23 | border-radius: 3px;
24 | float: left;
25 | background: #373C4F;
26 | cursor: pointer;
27 | h3 {
28 | margin: 0;
29 | height: 50px;
30 | color: #60BECA; // 标题字体颜色
31 | }
32 | ul {
33 | li {
34 | display: flex;
35 | flex-wrap: wrap;
36 | margin-bottom: 10px;
37 | span {
38 | font-size: 14px;
39 | &:nth-child(1) {
40 | color: #C1C5CF;
41 | width: 78px;
42 | display: inline-block;
43 | }
44 | &:nth-child(2){
45 | flex: 1;
46 | word-break: break-all;
47 | height: auto;
48 | color: #FDFDFD;
49 | }
50 | }
51 | }
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/desktop/styles/desktop.page.reset.less:
--------------------------------------------------------------------------------
1 | .desktop-page.dispatch-system-default {
2 | .el-card__body {
3 | padding: 15px;
4 | }
5 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/frame/services/frame.store.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const frameStore = {}
4 |
5 | /* @usage : store state data shcema
6 | this.$store.state.frame */
7 | frameStore.state = {
8 | // 当前网管组
9 | currentGatewayGroup: sessionStorage.getItem('currentGatewayGroup') || ''
10 | }
11 |
12 | /* @usage : unit operation
13 | this.$store.commit('CHANGE_MENU') */
14 | frameStore.mutations = {
15 | 'CURREN_GATEWAY_GROUP' (state, currentGatewayGroup) {
16 | state.currentGatewayGroup = currentGatewayGroup
17 | sessionStorage.setItem('currentGatewayGroup', currentGatewayGroup)
18 | }
19 | }
20 |
21 | /* @usage : based on state , return state's length or filter state data */
22 | frameStore.getters = {
23 |
24 | }
25 |
26 | /* @usage : basic the operation for view component , this.$store.dispatch('CHANGE_MENU_ACTION') */
27 | frameStore.actions = {
28 | 'CURREN_GATEWAY_GROUP_ACTION' ({ commit }, string) {
29 | return new Promise((resolve, reject) => {
30 | commit('CURREN_GATEWAY_GROUP', string)
31 | resolve()
32 | })
33 | }
34 | }
35 |
36 | export default frameStore
37 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/frame/styles/index.page.less:
--------------------------------------------------------------------------------
1 | .frame {
2 | width: 100%;
3 | height: 100%;
4 | .frame-container {
5 | position: relative;
6 | top: 0px;
7 | left: 200px;
8 | width: calc(~"100% - 200px");
9 | height: 100%;
10 | overflow: hidden;
11 | .crumbs-tab{
12 | height: 36px;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/frame/views/index.page.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
41 |
44 |
48 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/fuse-manage/components/trace-info.tmpl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | stackTrace详情
6 |
7 |
8 |
9 | {{traceInfoParams}}
10 |
11 |
12 |
13 |
14 |
15 |
30 |
33 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/fuse-manage/routers/fuse-manage.router.js:
--------------------------------------------------------------------------------
1 | const fuseManagePage = resolve => require(['../views/fuse-manage.page.vue'], resolve)
2 | const FuseManageModuleRouter = {}
3 | FuseManageModuleRouter.routers = [
4 | {
5 | path: '/fuse-manage',
6 | component: fuseManagePage,
7 | name: 'fuseManagePage',
8 | meta: {
9 | title: '路由管理',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default FuseManageModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/fuse-manage/styles/common/trace-info.tmpl.less:
--------------------------------------------------------------------------------
1 | .trace-info{
2 | z-index: 2000;
3 | background-color: rgba(46,49,62,0.63);
4 | top: 0;
5 | left: 0;
6 | width: 100%;
7 | height: 100%;
8 | position: fixed;
9 | .mask-content{
10 | width: 670px;
11 | margin: 0 auto;
12 | position: relative;
13 | top: 50%;
14 | transform: translateY(-50%);
15 | background-color: #373C4F;
16 | box-shadow: 6px 9px 17px 0 rgba(22,21,21,0.45);
17 | border-radius: 1px;
18 | // padding: 25px;
19 | .mask-main-title{
20 | padding: 20px 15px 0 20px;
21 | font-size: 16px;
22 | color: #fff;
23 | overflow: hidden;
24 | border-radius: 2px 2px 0 0;
25 | text-overflow: ellipsis;
26 | white-space: nowrap;
27 | text-align: left;
28 | .close-icon {
29 | width: 24px;
30 | height: 24px;
31 | float: right;
32 | background: url('../../../common/images/close.png') no-repeat;
33 | cursor: pointer;
34 | }
35 | }
36 | .info {
37 | color: #fff;
38 | width: 100%;
39 | height: 450px;
40 | padding: 20px;
41 | margin: 25px auto 10px;
42 | overflow-y: auto;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/fuse-manage/styles/fuse-manage.page.reset.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/fuse-manage/styles/fuse-manage.page.reset.less
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/ganway-set-up/routers/ganway-set-up.router.js:
--------------------------------------------------------------------------------
1 | const GanwaySetUpPage = resolve => require(['../views/ganway-set-up.page.vue'], resolve)
2 | const GanwaySetUpModuleRouter = {}
3 | GanwaySetUpModuleRouter.routers = [
4 | {
5 | path: '/gateway-set-up',
6 | component: GanwaySetUpPage,
7 | name: 'GanwaySetUpPage',
8 | meta: {
9 | title: '网关设置',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default GanwaySetUpModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/ganway-set-up/styles/ganway-set-up.page.less:
--------------------------------------------------------------------------------
1 | .black-white-detail-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | .section-content{
5 | padding-top: 30px;
6 | }
7 | & > .section-container {
8 | width: 100%;
9 | height: 100%;
10 | overflow: auto;
11 | h3::before{
12 | content: ' ';
13 | display: inline-block;
14 | width: 8px;
15 | height: 8px;
16 | background-image: linear-gradient(-135deg, #2DC9EB 0%, #14D2B8 100%);
17 | border-radius: 100%;
18 | margin-right: 8px;
19 | }
20 | h3{
21 | margin: 0 0 25px 45px;
22 | span{
23 | display: inline-block;
24 | font-size: 16px;
25 | color: #FFFFFF;
26 | font-style: normal;
27 | font-weight: 600;
28 | // line-height: 40px;
29 | }
30 | }
31 | .routeCreateViewForm {
32 | width: 500px;
33 | margin: auto;
34 | .save-btn-form-two {
35 |
36 | }
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/ganway-set-up/styles/ganway-set-up.reset.less:
--------------------------------------------------------------------------------
1 | .black-white-detail-page.dispatch-system-default {
2 | .section-content > .el-form {
3 | width: 500px;
4 | margin: 30px auto 0 auto;
5 | }
6 | .el-form-item.radio-text > .el-form-item__content {
7 | text-align: left;
8 | }
9 | .el-form-item > .el-form-item__label {
10 | width: 160px;
11 | }
12 | .el-form-item > .el-form-item__content {
13 | display: flex;
14 | height: 35px;
15 | line-height: 35px;
16 | margin-left: 160px;
17 | text-align: center;
18 | .el-icon-question {
19 | width: 22px;
20 | margin-top: 11px;
21 | }
22 | .el-select {
23 | width: 100%;
24 | }
25 | .el-select>.el-input {
26 | width: 100%;
27 | height: 35px;
28 | line-height: 35px;
29 | }
30 | // 单选按钮
31 | .el-radio-group {
32 | line-height: 46px;
33 | }
34 | }
35 | .right-btn-two {
36 | display: flex;
37 | justify-content: flex-end;
38 | text-align: right;
39 | }
40 | .el-form-item > .el-form-item__content > span {
41 | text-align: left;
42 | display: inline-block;
43 | width: 100%;
44 | }
45 | .el-form-item.save-btn-form > .el-form-item__content {
46 | margin-left: 40px;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-audit/routers/gateway-audit.router.js:
--------------------------------------------------------------------------------
1 | const gatewayAuditListPage = resolve => require(['../views/gateway-audit-list.page.vue'], resolve)
2 | const GatewayAuditModuleRouter = {}
3 | GatewayAuditModuleRouter.routers = [
4 | {
5 | path: '/gateway-audit',
6 | component: gatewayAuditListPage,
7 | name: 'gatewayAuditListPage',
8 | meta: {
9 | title: '路由管理',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default GatewayAuditModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-audit/styles/gateway-audit-list.page.reset.less:
--------------------------------------------------------------------------------
1 | .el-checkbox__inner {
2 | background: transparent;
3 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-eureka/routers/gateway-eureka.router.js:
--------------------------------------------------------------------------------
1 | const gatewayEurekaListPage = resolve => require(['../views/gateway-eureka-list.page.vue'], resolve)
2 | const GatewayEurekaModuleRouter = {}
3 | GatewayEurekaModuleRouter.routers = [
4 | {
5 | path: '/gateway-eureka',
6 | component: gatewayEurekaListPage,
7 | name: 'gatewayEurekaListPage',
8 | meta: {
9 | title: '网关注册中心',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default GatewayEurekaModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-eureka/styles/gateway-eureka-list.page.reset.less:
--------------------------------------------------------------------------------
1 | .el-popper.tooltip::-webkit-scrollbar {width:10px; height:10px; background-color:transparent;} /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
2 | .el-popper.tooltip::-webkit-scrollbar-track {background-color:#292D40; -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3);} /*定义滚动条轨道 内阴影+圆角*/
3 | .el-popper.tooltip::-webkit-scrollbar-thumb {background-color:#4B5061; -webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);} /*定义滑块 内阴影+圆角*/
4 | .el-popover.el-popper.tooltip {
5 | border: 1px solid #242731;
6 | border-radius: 2px;
7 | background: #2E313E;
8 | color: #fff;
9 | cursor: pointer;
10 | height: 200px;
11 | overflow-y: auto;
12 | .tooltip-box {
13 | // width: 570px;
14 | p{
15 | height: 35px;
16 | line-height: 35px;
17 | margin: 0;
18 | padding: 0;
19 | border-top: 1px solid rgba(193, 197, 207, 0.15);
20 | &:nth-child(1) {
21 | border-top-width: 0;
22 | }
23 | }
24 | }
25 | }
26 | #app .gateway-eureka-list-page .is-disabled .el-input__inner{
27 | height: 32px;
28 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/components/log-details.tmpl.vue:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/components/log-details.tmpl.vue
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/images/events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/images/events.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/images/log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/images/log.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/images/monitor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/images/monitor.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/images/msg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/images/msg.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/images/sheji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/images/sheji.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/images/warnning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/gateway-monitor/images/warnning.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/routers/gateway-monitor.router.js:
--------------------------------------------------------------------------------
1 | const GatewayMonitorPage = resolve => require(['../views/gateway-monitor.page.vue'], resolve)
2 | const GatewayLogPage = resolve => require(['../views/gateway-log-list.page.vue'], resolve)
3 | const MonitorListPage = resolve => require(['../views/monitor-list.page.vue'], resolve)
4 | const GatewayMonitorModuleRouter = {}
5 | GatewayMonitorModuleRouter.routers = [
6 | {
7 | path: '/gateway-monitor',
8 | component: GatewayMonitorPage,
9 | name: 'GatewayMonitorPage',
10 | meta: {
11 | title: '网关监控',
12 | auth: 'show'
13 | }
14 | },
15 | {
16 | path: '/gateway-log-list',
17 | component: GatewayLogPage,
18 | name: 'GatewayLogPage',
19 | meta: {
20 | title: '日志列表',
21 | auth: 'show'
22 | }
23 | },
24 | {
25 | path: '/monitor-list',
26 | component: MonitorListPage,
27 | name: 'MonitorListPage',
28 | meta: {
29 | title: '监控列表',
30 | auth: 'show'
31 | }
32 | }
33 | ]
34 | export default GatewayMonitorModuleRouter
35 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/styles/gateway-log-list.page.less:
--------------------------------------------------------------------------------
1 | .gateway-log-page {
2 | height: calc(~"100% - 55px");
3 | &>.section-container.scroll-bar {
4 | background: #fff;
5 | }
6 | .section-content {
7 | height: calc(~"100% - 70px");
8 | padding: 10px;
9 | background: #fff;
10 | // textarea {
11 | // width: 100%;
12 | // height: 100%;
13 | // resize: none;
14 | // color: #fff;
15 | // border: 1px solid #4B5061;
16 | // }
17 | // textarea.respones-info-text:disabled {
18 | // background: transparent;
19 | // }
20 | }
21 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/views/gateway-log-list.page.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
35 |
38 |
41 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-monitor/views/monitor-list.page.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
36 |
39 |
42 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-swagger/routers/gateway-monitor.router.js:
--------------------------------------------------------------------------------
1 | const GatewaySwaggerPage = resolve => require(['../views/gateway-swagger.page.vue'], resolve)
2 | const GatewaySwaggerModuleRouter = {}
3 | GatewaySwaggerModuleRouter.routers = [
4 | {
5 | path: '/gateway-swagger',
6 | component: GatewaySwaggerPage,
7 | name: 'GatewaySwaggerPage',
8 | meta: {
9 | title: '网关swagger',
10 | auth: 'notShow'
11 | }
12 | }
13 | ]
14 | export default GatewaySwaggerModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-swagger/styles/gateway-swagger.page.less:
--------------------------------------------------------------------------------
1 | .gateway-swagger-page{
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | &>.section-container {
5 | width: 100%;
6 | height: 100%;
7 | padding: 0;
8 | .section-header{
9 | .el-select{
10 | width: 160px;
11 | }
12 | .select-item{
13 | font-size: 16px;
14 | margin-right: 10px;
15 | }
16 | .ml{
17 | margin-left: 15px;
18 | }
19 | .el-input{
20 | width: 200px;
21 | }
22 | }
23 | .task-manage-table{
24 | margin-top: 10px;
25 | height: 100%;
26 | .el-table__body-wrapper{
27 | height: calc(~"100% - 55px");
28 | overflow-y: auto;
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-swagger/styles/gateway-swagger.page.reset.less:
--------------------------------------------------------------------------------
1 | .gateway-swagger-page{
2 | &>.section-container {
3 | .task-manage-table{
4 | .el-table__body-wrapper{
5 | height: calc(~"100% - 55px");
6 | overflow-y: auto;
7 | }
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/gateway-swagger/views/gateway-swagger.page.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
36 |
39 |
42 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/components/third-party-group.tmpl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 第三方组件
6 |
7 |
8 |
9 |
说明:组件ID是组件的唯一标识!
10 |
11 | -
12 | 组件ID:{{item.compFilterName}}
13 | 组件名称:{{item.compName}}
14 | 网关组名称:{{item.zuulGroupName}}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
33 |
36 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/images/back-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/group-manage/images/back-icon.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/images/bind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/group-manage/images/bind.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/group-manage/images/delete.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/images/left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/group-manage/images/left.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/images/right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/group-manage/images/right.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/images/warnning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/group-manage/images/warnning.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/routers/group-manage.router.js:
--------------------------------------------------------------------------------
1 | const GroupManageListPage = resolve => require(['../views/group-manage-list.page.vue'], resolve)
2 | const GroupDetailPage = resolve => require(['../views/group-detail.page.vue'], resolve)
3 | const TaskManageModuleRouter = {}
4 | TaskManageModuleRouter.routers = [
5 | {
6 | path: '/group-manage-list',
7 | component: GroupManageListPage,
8 | name: 'GroupManageListPage',
9 | meta: {
10 | title: '组件管理',
11 | auth: 'show'
12 | }
13 | },
14 | {
15 | path: '/group-detail',
16 | component: GroupDetailPage,
17 | name: 'GroupDetailPage',
18 | meta: {
19 | title: '组件详情',
20 | auth: 'show',
21 | parentnode: {'组件管理': '/group-manage-list'}
22 | }
23 | }
24 | ]
25 | export default TaskManageModuleRouter
26 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/styles/group-detail.page.less:
--------------------------------------------------------------------------------
1 | .route-create-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | .section-header {
5 | .button.blue-button{
6 | margin-left: auto;
7 | }
8 | }
9 | .section-content{
10 | padding-top: 30px;
11 | }
12 | & > .section-container {
13 | width: 100%;
14 | height: 100%;
15 | overflow: auto;
16 | .routeCreateViewForm {
17 | width: 500px;
18 | margin: auto;
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/styles/group-detail.page.reset.less:
--------------------------------------------------------------------------------
1 | .route-create-page.dispatch-system-default {
2 | .section-content > .el-form {
3 | width: 500px;
4 | margin: 30px auto 0 auto;
5 | }
6 | .el-carousel__indicator button {
7 | width: 10px;
8 | height: 10px;
9 | border-radius: 10px;
10 | overflow: hidden;
11 | }
12 | .el-form-item > .el-form-item__label {
13 | width: 160px;
14 | }
15 | .el-form-item > .el-form-item__content {
16 | margin-left: 160px;
17 | .router-list {
18 | padding: 0;
19 | margin: 0;
20 | span{
21 | display: inline-block;
22 | height: 25px;
23 | line-height: 21px;
24 | border: 2px solid #67c23a;
25 | border-radius: 20px;
26 | padding: 0px 8px;
27 | margin-right: 6px;
28 | i {
29 | font-style: normal;
30 | }
31 | }
32 | }
33 | .el-button {
34 | margin-top: 30px;
35 | width: 120px;
36 | }
37 | }
38 | .el-select{
39 | width: 100%;
40 | }
41 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/group-manage/styles/group-manage-list.page.reset.less:
--------------------------------------------------------------------------------
1 | .task-manage-list-page{
2 | &>.section-container {
3 | &>.section-content {
4 | .el-tabs {
5 | // tabs切换头部样式
6 | .el-tabs__header {
7 | margin: 0 0 25px;
8 | background: #292D40;
9 | // 头部下边框隐藏
10 | .el-tabs__nav-wrap::after {
11 | z-index: -1;
12 | }
13 | .el-tabs__nav-scroll {
14 | padding-left: 25px;
15 | }
16 | // tabs每一项
17 | .el-tabs__nav {
18 | // 每一项字体颜色
19 | .el-tabs__item {
20 | color: #fff;
21 | font-size: 15px;
22 | }
23 | // 选择tab字体样色
24 | .el-tabs__item.is-active{
25 | color: #60BECA;
26 | }
27 | // 选中边框颜色
28 | .el-tabs__active-bar {
29 | background-color: #60BECA;
30 | }
31 | }
32 | }
33 | }
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/components/gateway-route-detail.tmpl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 路由详情
6 |
7 |
8 |
9 |
10 | {{item}}
11 |
12 |
13 | 暂无数据
14 |
15 |
16 |
17 |
18 |
19 |
20 |
47 |
50 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/number.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/number.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/register.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/register.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/router-count.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/router-count.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/router-regiter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/router-regiter.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/warn-count.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/warn-count.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/warning.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/images/wave-line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/home/images/wave-line.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/routers/home.router.js:
--------------------------------------------------------------------------------
1 | const HomePage = resolve => require(['../views/home.page.vue'], resolve)
2 | const HomeModuleRouter = {}
3 | HomeModuleRouter.routers = [
4 | {
5 | path: '/home',
6 | component: HomePage,
7 | name: 'HomePage',
8 | meta: {
9 | title: '首页',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default HomeModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/home/styles/home.page.reset.less:
--------------------------------------------------------------------------------
1 | .home-page{
2 | .monitor-list {
3 | .el-radio-group {
4 | display: flex;
5 | flex-direction: column;
6 | padding: 20px;
7 | .el-radio+.el-radio {
8 | margin-left: 0;
9 | }
10 | .el-radio{
11 | border: 1px solid #5C6171;
12 | border-radius: 1px;
13 | padding: 5px 10px;
14 | &:not(:last-child){
15 | border-bottom-width: 0px;
16 | }
17 | }
18 | .el-radio.is-checked {
19 | background: #4B5061;
20 | }
21 | }
22 | }
23 | .gateway-status-table{
24 | height: 100%;
25 | .el-table__body-wrapper{
26 | height: calc(~"100% - 55px");
27 | overflow-y: auto;
28 | }
29 | }
30 | .el-table {
31 | background: #373C4F;
32 | tr {
33 | background: #373C4F;
34 | td{
35 | color: #C1C5CF;
36 | padding: 6px 0;
37 | border-bottom: 1px solid rgba(193,197,207,0.15);
38 | }
39 | }
40 | tr:hover>td {
41 | background: #4B5061;
42 | }
43 | th {
44 | padding: 5px 0;
45 | background: #4B5061;
46 | font-size: 14px;
47 | color: #C1C5CF;
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/log-manage/routers/log-manage.router.js:
--------------------------------------------------------------------------------
1 | const LogManageListPage = resolve => require(['../views/log-manage-list.page.vue'], resolve)
2 | const logManageModuleRouter = {}
3 | logManageModuleRouter.routers = [
4 | {
5 | path: '/log-manage-list',
6 | component: LogManageListPage,
7 | name: 'LogManageListPage',
8 | meta: {
9 | title: '日志管理',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default logManageModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/log-manage/styles/log-manage-list.page.less:
--------------------------------------------------------------------------------
1 | .log-manage-list-page{
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | &>.section-container {
5 | width: 100%;
6 | height: 100%;
7 | padding: 0;
8 | .section-header{
9 | .el-select{
10 | width: 160px;
11 | }
12 | .select-item{
13 | font-size: 16px;
14 | margin-right: 10px;
15 | }
16 | .ml{
17 | margin-left: 15px;
18 | }
19 | .el-input{
20 | width: 200px;
21 | }
22 | }
23 | .task-manage-table{
24 | margin-top: 10px;
25 | height: 100%;
26 | .el-table__body-wrapper{
27 | height: calc(~"100% - 55px");
28 | overflow-y: auto;
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/log-manage/styles/log-manage-list.page.reset.less:
--------------------------------------------------------------------------------
1 | .log-manage-list-page{
2 | &>.section-container {
3 | .task-manage-table{
4 | .el-table__body-wrapper{
5 | height: calc(~"100% - 55px");
6 | overflow-y: auto;
7 | }
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/login/images/login-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/login/images/login-bg.jpg
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/login/routers/login.router.js:
--------------------------------------------------------------------------------
1 | const LoginIndexPage = resolve => require(['../views/login.page'], resolve)
2 |
3 | const LoginRouter = {}
4 |
5 | LoginRouter.routers = [
6 | {
7 | path: '/login',
8 | component: LoginIndexPage,
9 | name: 'LoginIndexPage',
10 | meta: {
11 | title: '登录页',
12 | auth: false,
13 | access: {
14 | module: 'login',
15 | page: 'login'
16 | }
17 | }
18 | }
19 | ]
20 |
21 | export default LoginRouter
22 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/components/group-list.tmpl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{groupListParams}} ~ 组件详情
6 |
7 |
8 |
9 |
10 | {{item}}
11 |
12 |
13 | 暂无数据
14 |
15 |
16 |
17 |
18 |
19 |
20 |
47 |
50 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/components/unload-situat.tmpl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 路由上传情况
6 |
7 |
8 |
9 |
10 | 成功路由ID:
11 | {{item}}
12 |
13 |
14 | 失败路由ID:
15 | {{item}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
39 |
42 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/images/back-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/route-manage/images/back-icon.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/images/details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/route-manage/images/details.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/images/tuopo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/src/route-manage/images/tuopo.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/black-white-detail.page.less:
--------------------------------------------------------------------------------
1 | .black-white-detail-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | .section-header {
5 | .delete-btn {
6 | margin: 0 0px 0 10px;
7 | }
8 | .el-button+.el-button {
9 | margin: 0px 0 0 5px;
10 | }
11 | }
12 | .section-content{
13 | padding-top: 30px;
14 | .delete-btn {
15 | float: right;
16 | }
17 | }
18 | & > .section-container {
19 | width: 100%;
20 | height: 100%;
21 | overflow: auto;
22 | .nameListViewForm {
23 | width: 600px;
24 | margin: auto;
25 | h3::before{
26 | content: ' ';
27 | display: inline-block;
28 | width: 8px;
29 | height: 8px;
30 | background-image: linear-gradient(-135deg, #2DC9EB 0%, #14D2B8 100%);
31 | border-radius: 100%;
32 | margin-right: 8px;
33 | }
34 | h3{
35 | margin: 0 0 25px 45px;
36 | // background: #4B5061;
37 | // height: 40px;
38 | // padding-left: 10px;
39 | // border-left: 3px solid #15D8E3;
40 | span{
41 | display: inline-block;
42 | font-size: 16px;
43 | color: #FFFFFF;
44 | font-style: normal;
45 | font-weight: 600;
46 | // line-height: 40px;
47 | }
48 | }
49 | .two-h3 {
50 | margin-top: 50px;
51 | }
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/black-white-detail.page.reset.less:
--------------------------------------------------------------------------------
1 | .black-white-detail-page.dispatch-system-default {
2 | .section-content > .el-form {
3 | width: 600px;
4 | margin: 30px auto 0 auto;
5 | }
6 | .el-carousel__indicator button {
7 | width: 10px;
8 | height: 10px;
9 | border-radius: 10px;
10 | overflow: hidden;
11 | }
12 | .el-form-item.radio-text > .el-form-item__content {
13 | text-align: left;
14 | }
15 | .el-radio__input.is-disabled.is-checked .el-radio__inner{
16 | border-color: #409EFF;
17 | background: #409EFF;
18 | }
19 | .el-form-item > .el-form-item__label {
20 | width: 160px;
21 | font-size: 13px;
22 | }
23 | .el-form-item > .el-form-item__content {
24 | margin-left: 160px;
25 | .el-button {
26 | margin-top: 30px;
27 | width: 120px;
28 | }
29 | }
30 | .el-form-item.save-btn-form > .el-form-item__content {
31 | margin-left: 40px;
32 | }
33 | .el-select{
34 | width: 100%;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/common/router-instruction.tmpl.reset.less:
--------------------------------------------------------------------------------
1 | .mask-router-instruction{
2 | .task-list-table{
3 | height: 100%;
4 | .el-table__body-wrapper{
5 | height: calc(~"100% - 55px");
6 | overflow-y: auto;
7 | }
8 | th.is-leaf {
9 | background-color: #cee2e0;
10 | border-bottom: 0;
11 | border-right: 1px solid #fff;
12 | color: #333333;
13 | height: 50px;
14 | padding: 0;
15 | }
16 | th.is-center.is-leaf:last-child:not(.gutter) {
17 | border-right: 0;
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/route-create.page.less:
--------------------------------------------------------------------------------
1 | .route-create-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | .section-header {
5 | }
6 | .section-content{
7 | padding-top: 30px;
8 | overflow: auto;
9 | }
10 | & > .section-container {
11 | width: 100%;
12 | height: 100%;
13 | .routeCreateViewForm {
14 | width: 550px;
15 | margin: auto;
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/route-create.page.reset.less:
--------------------------------------------------------------------------------
1 | .route-create-page.dispatch-system-default {
2 | .section-content > .el-form {
3 | width: 600px;
4 | margin: 30px auto 0 auto;
5 | }
6 | .el-carousel__indicator button {
7 | width: 10px;
8 | height: 10px;
9 | border-radius: 10px;
10 | overflow: hidden;
11 | }
12 | .el-form-item > .el-form-item__label {
13 | width: 160px;
14 | }
15 | .el-form-item > .el-form-item__content {
16 | margin-left: 160px;
17 | .el-button {
18 | margin-top: 30px;
19 | width: 120px;
20 | }
21 | }
22 | .el-select{
23 | width: 100%;
24 | }
25 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/route-manage-list.page.reset.less:
--------------------------------------------------------------------------------
1 | .el-checkbox__inner {
2 | background: transparent;
3 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/route-safe-auth.page.less:
--------------------------------------------------------------------------------
1 | .safe-auth-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | .section-header {
5 | .button.blue-button{
6 | margin-left: auto;
7 | }
8 | }
9 | .section-content{
10 | padding-top: 30px;
11 | }
12 | & > .section-container {
13 | width: 100%;
14 | height: 100%;
15 | overflow: auto;
16 | .routeCreateViewForm {
17 | width: 550px;
18 | margin: auto;
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/route-safe-auth.page.reset.less:
--------------------------------------------------------------------------------
1 | .safe-auth-page.dispatch-system-default {
2 | .section-content > .el-form {
3 | width: 600px;
4 | margin: 30px auto 0 auto;
5 | }
6 | .el-carousel__indicator button {
7 | width: 10px;
8 | height: 10px;
9 | border-radius: 10px;
10 | overflow: hidden;
11 | }
12 | .el-form-item > .el-form-item__label {
13 | width: 160px;
14 | }
15 | .el-form-item > .el-form-item__content {
16 | display: flex;
17 | margin-left: 160px;
18 | span.start-end {
19 | margin: 0 10px;
20 | }
21 | .el-button {
22 | margin-top: 30px;
23 | width: 120px;
24 | }
25 | }
26 | .el-select{
27 | width: 100%;
28 | }
29 | .el-input--prefix .el-input__inner {
30 | padding-left: 38px;
31 | }
32 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/route-manage/styles/run-static-detail.page.less:
--------------------------------------------------------------------------------
1 | .run-static-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 | & > .section-container {
5 | width: 100%;
6 | height: 100%;
7 | overflow: hidden;
8 | .section-content{
9 | padding-top: 10px;
10 | height: calc(~"100% - 65px");
11 | overflow: auto;
12 | .btn-box {
13 | .el-button {
14 | &:not(:nth-child(1)){
15 | margin-left: 10px;
16 | }
17 | }
18 | .upload-demo {
19 | margin-left: 10px;
20 | .el-button {
21 | padding: 8px 16px;
22 | }
23 | }
24 | }
25 | .task-manage-table{
26 | margin-top: 10px;
27 | height: calc(~'100% - 65px');
28 | .router-link {
29 | color: #15D8E3;
30 | cursor: pointer;
31 | display: inline-block;
32 | width: 100%;
33 | }
34 | .box-color {
35 | display: flex;
36 | flex-direction: column;
37 | span {
38 | &:nth-child(2) {
39 | position: relative;
40 | height: 5px;
41 | width: 110px;
42 | border-radius: 10px;
43 | background: #ccc;
44 | i {
45 | position: absolute;
46 | height: 5px;
47 | top: 0;
48 | left: 0px;
49 | border-radius: 10px;
50 | }
51 | }
52 | }
53 | }
54 | }
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/system-set-up/routers/system-black-name.router.js:
--------------------------------------------------------------------------------
1 | const SystemBlackNamePage = resolve => require(['../views/system-black-name.page.vue'], resolve)
2 | const SystemSetUpModuleRouter = {}
3 | SystemSetUpModuleRouter.routers = [
4 | {
5 | path: '/system-black-name',
6 | component: SystemBlackNamePage,
7 | name: 'SystemBlackNamePage',
8 | meta: {
9 | title: '系统黑名单',
10 | auth: 'show'
11 | }
12 | }
13 | ]
14 | export default SystemSetUpModuleRouter
15 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/system-set-up/styles/system-black-name.page.less:
--------------------------------------------------------------------------------
1 | .black-white-detail-page {
2 | width: 100%;
3 | height: calc(~"100% - 55px");
4 |
5 | & > .section-container {
6 | width: 100%;
7 | height: 100%;
8 | overflow: auto;
9 | .routeCreateViewForm {
10 | width: 500px;
11 | margin: auto;
12 | h3::before{
13 | content: ' ';
14 | display: inline-block;
15 | width: 8px;
16 | height: 8px;
17 | background-image: linear-gradient(-135deg, #2DC9EB 0%, #14D2B8 100%);
18 | border-radius: 100%;
19 | margin-right: 8px;
20 | }
21 | h3{
22 | margin: 0 0 25px 45px;
23 | // background: #4B5061;
24 | // height: 40px;
25 | // padding-left: 10px;
26 | // border-left: 3px solid #15D8E3;
27 | span{
28 | display: inline-block;
29 | font-size: 16px;
30 | color: #FFFFFF;
31 | font-style: normal;
32 | font-weight: 600;
33 | // line-height: 40px;
34 | }
35 | }
36 | }
37 | }
38 | .section-content{
39 | padding-top: 30px;
40 | }
41 | }
--------------------------------------------------------------------------------
/sia-gateway-admin-display/src/system-set-up/styles/system-black-name.page.reset.less:
--------------------------------------------------------------------------------
1 | .black-white-detail-page.dispatch-system-default {
2 | .section-content > .el-form {
3 | width: 500px;
4 | margin: 30px auto 0 auto;
5 | }
6 | .el-carousel__indicator button {
7 | width: 10px;
8 | height: 10px;
9 | border-radius: 10px;
10 | overflow: hidden;
11 | }
12 | .el-form-item.radio-text > .el-form-item__content {
13 | text-align: left;
14 | }
15 | .el-form-item > .el-form-item__label {
16 | width: 160px;
17 | }
18 | .el-form-item > .el-form-item__content {
19 | margin-left: 160px;
20 | text-align: center;
21 | .el-button {
22 | margin-top: 30px;
23 | width: 120px;
24 | }
25 | }
26 | .el-form-item > .el-form-item__content > span {
27 | text-align: left;
28 | display: inline-block;
29 | width: 100%;
30 | }
31 | .el-form-item.save-btn-form > .el-form-item__content {
32 | margin-left: 40px;
33 | }
34 | .el-select{
35 | width: 100%;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/.gitkeep
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/img/apply.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/img/apply.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/img/browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/img/browser.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/img/group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/img/group.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/img/router.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/img/router.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/img/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/img/settings.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/img/title-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/siaorg/sia-gateway/80f3487d94350296de37a9c7b2e9889fc70fb148/sia-gateway-admin-display/static/img/title-icon.png
--------------------------------------------------------------------------------
/sia-gateway-admin-display/static/site-map.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | window.API = {
3 | /**
4 | * vmware部署: 127.0.0.1 ----> nginx的ip地址
5 | * docker镜像部署: 127.0.0.1 ----> docker容器的宿主机ip
6 | */
7 | 'CESHI_API_HOST': '127.0.0.1:18086/vv1',
8 | /**
9 | * 127.0.0.1 ----> kibana的ip地址
10 | */
11 | 'CESHI_API_HOST_LOG': '127.0.0.1:5601'
12 | }
13 | Object.freeze(window.API)
14 | Object.defineProperty(window, 'API', {
15 | configurable: false,
16 | writable: false
17 | })
18 | })()
19 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/test/unit/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "mocha": true
4 | },
5 | "globals": {
6 | "expect": true,
7 | "sinon": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/test/unit/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import 'babel-polyfill'
3 | // [ext] http/axios inject
4 | import HttpPlugIn from '../../src/common/plugins/http.js'
5 |
6 | // [ext] api inject
7 | import ApiProvider from '../../src/common/services/api.provider.js'
8 |
9 | // [ext] helper inject
10 | import HelperProvider from '../../src/common/services/helper.provider.js'
11 |
12 | // [ext] element-ui inject
13 | import ElementUI from 'element-ui'
14 | import 'element-ui/lib/theme-chalk/index.css'
15 |
16 | // [ext] extent element-ui validate inject
17 | import Validator from '../../src/common/plugins/validator.js'
18 |
19 | // [ext] theme provider inject
20 | import ThemeProvider from '../../src/common/services/theme.provider.js'
21 |
22 | Vue.prototype.$theme = ThemeProvider
23 | Vue.prototype.$http = HttpPlugIn
24 | Vue.prototype.$api = ApiProvider
25 | Vue.prototype.$helper = HelperProvider
26 | Vue.use(ElementUI)
27 | Vue.prototype.$validator = Validator
28 |
29 | Vue.config.productionTip = false
30 |
31 | // require all test files (files that ends with .spec.js)
32 | const testsContext = require.context('./specs', true, /\.spec$/)
33 | testsContext.keys().forEach(testsContext)
34 |
35 | // require all vue files in src for coverage.
36 | // you can also change this to match only the subset of files that
37 | // you want coverage for.
38 | const srcContext = require.context('../../src', false, /^\.vue$/)
39 | srcContext.keys().forEach(srcContext)
40 |
--------------------------------------------------------------------------------
/sia-gateway-admin-display/test/unit/karma.conf.js:
--------------------------------------------------------------------------------
1 | // This is a karma config file. For more details see
2 | // http://karma-runner.github.io/0.13/config/configuration-file.html
3 | // we are also using it with karma-webpack
4 | // https://github.com/webpack/karma-webpack
5 |
6 | var webpackConfig = require('../../build/webpack.test.conf')
7 |
8 | module.exports = function (config) {
9 | config.set({
10 | // to run in additional browsers:
11 | // 1. install corresponding karma launcher
12 | // http://karma-runner.github.io/0.13/config/browsers.html
13 | // 2. add it to the `browsers` array below.
14 | client: {
15 | mocha: {
16 | timeout: 10000
17 | }
18 | },
19 | browsers: ['PhantomJS'],
20 | frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
21 | reporters: ['spec', 'coverage'],
22 | files: ['./index.js'],
23 | preprocessors: {
24 | './index.js': ['webpack', 'sourcemap']
25 | },
26 | webpack: webpackConfig,
27 | webpackMiddleware: {
28 | noInfo: true
29 | },
30 | coverageReporter: {
31 | dir: './coverage',
32 | reporters: [
33 | { type: 'lcov', subdir: '.' },
34 | { type: 'text-summary' }
35 | ]
36 | }
37 | })
38 | }
39 |
--------------------------------------------------------------------------------
/sia-gateway-admin/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | /bin/
3 | /.classpath
4 | /.project
--------------------------------------------------------------------------------
/sia-gateway-admin/findbugs.exclude.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/sia-gateway-admin/src/main/java/com/creditease/gateway/admin/domain/DescConstant.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.admin.domain;
23 |
24 |
25 | /**
26 | * 查詢對象
27 | *
28 | * @author peihua
29 | *
30 | * */
31 |
32 | public class DescConstant {
33 |
34 | private static String REQUESTLOG = "请求日志组件";
35 | private static String RSPONSELOG = "响应日志组件";
36 | private static String BLUEGREEN = "蓝绿部署";
37 | private static String TOCKENSECURITY = "TOKEN安全认证";
38 | private static String STATISTIC = "路由统计";
39 | private static String LIMIT = "流量限流";
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/sia-gateway-admin/src/main/java/com/creditease/gateway/admin/domain/StatisticQuery.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.admin.domain;
23 |
24 |
25 | /**
26 | * 统计對象
27 | *
28 | * @author peihua
29 | *
30 | * */
31 |
32 | public class StatisticQuery {
33 |
34 | private String routeid;
35 |
36 | private String starttime;
37 |
38 | private String endtime;
39 |
40 | public String getRouteid() {
41 | return routeid;
42 | }
43 |
44 | public void setRouteid(String routeid) {
45 | this.routeid = routeid;
46 | }
47 |
48 | public String getStarttime() {
49 | return starttime;
50 | }
51 |
52 | public void setStarttime(String starttime) {
53 | this.starttime = starttime;
54 | }
55 |
56 | public String getEndtime() {
57 | return endtime;
58 | }
59 |
60 | public void setEndtime(String endtime) {
61 | this.endtime = endtime;
62 | }
63 |
64 |
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/sia-gateway-admin/src/main/java/com/creditease/gateway/oauth/AuthConstants.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.oauth;
23 |
24 | /**
25 | *@author peihua
26 | *
27 | * */
28 |
29 | public class AuthConstants {
30 | public static final String RESOURCE_SERVER_NAME = "oauth-server";
31 | public static final String INVALID_CLIENT_ID = "客户端验证失败,如错误的client_id/client_secret。";
32 | public static final String INVALID_TIME = "客户端验证失败,安全口令时间无效";
33 | public static final String INVALID_ACCESS_TOKEN = "accessToken无效或已过期。";
34 | public static final String INVALID_REDIRECT_URI = "缺少授权成功后的回调地址。";
35 | public static final String INVALID_AUTH_CODE = "错误的授权码。";
36 | }
37 |
--------------------------------------------------------------------------------
/sia-gateway-admin/src/main/resources/.gitignore:
--------------------------------------------------------------------------------
1 | /static/
2 |
--------------------------------------------------------------------------------
/sia-gateway-admin/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | ${FILE_LOG_PATTERN}
12 |
13 | ${LOG_FILE}
14 |
15 | ${LOG_FILE}.%i
16 | 1
17 | 10
18 |
19 |
20 | 10MB
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/sia-gateway-base/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | /bin/
3 | /.settings/
4 | /.classpath
5 | /.project
--------------------------------------------------------------------------------
/sia-gateway-base/findbugs.exclude.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/sia-gateway-base/src/main/java/com/creditease/gateway/annotation/CatchExcept.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.annotation;
23 |
24 | import java.lang.annotation.Documented;
25 | import java.lang.annotation.ElementType;
26 | import java.lang.annotation.Inherited;
27 | import java.lang.annotation.Retention;
28 | import java.lang.annotation.RetentionPolicy;
29 | import java.lang.annotation.Target;
30 |
31 | @Target(ElementType.METHOD)
32 | @Retention(RetentionPolicy.RUNTIME)
33 | @Documented
34 | @Inherited
35 | public @interface CatchExcept {
36 |
37 | /**
38 | * ApiGatewayException的描述信息
39 | *
40 | * @return
41 | */
42 |
43 | String note() default "";
44 | }
45 |
--------------------------------------------------------------------------------
/sia-gateway-base/src/main/java/com/creditease/gateway/constant/SynchSpeedProtocol.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.constant;
23 |
24 | /**
25 | * @description: 常量
26 | * @author: guohuixie2
27 | * @create: 2019-04-16 15:17
28 | **/
29 |
30 | public class SynchSpeedProtocol {
31 |
32 | public static final String OFFLINEINTERFACE = "/siagateway/setOfflineService";
33 |
34 | public static final String ONLINEINTERFACE = "/siagateway/setonlineService";
35 | }
36 |
--------------------------------------------------------------------------------
/sia-gateway-base/src/main/java/com/creditease/gateway/domain/RibbonnRule.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.domain;
23 |
24 | /**
25 | *
26 | * @author peihua
27 | *
28 | */
29 |
30 | public class RibbonnRule {
31 |
32 | public static final String ROUNDROUBIN = "ROUNDROUBIN";
33 |
34 | public static final String METADATARULE = "METADATARULE";
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/sia-gateway-base/src/main/java/com/creditease/gateway/domain/RouteStrategy.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.domain;
23 |
24 | public enum RouteStrategy {
25 |
26 | SERVICEID("SERVICEID"), SERVICEURL("SERVICEURL"), LISTOFSERVER("LISTOFSERVER");
27 |
28 | public static RouteStrategy getDefault() {
29 | return SERVICEID;
30 | }
31 | private String name;
32 |
33 | RouteStrategy(String name) {
34 | this.name = name;
35 | }
36 |
37 | @Override
38 | public String toString() {
39 |
40 | return name;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/sia-gateway-base/src/main/java/com/creditease/gateway/domain/UpstreamObj.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.domain;
23 |
24 | /**
25 | * @description: 下游服务OBJ
26 | * @author: guohuixie2
27 | * @modify: peihua
28 | * @create: 2019-04-24 18:02
29 | **/
30 |
31 | public class UpstreamObj {
32 |
33 | private String appName;
34 | private String instanceId;
35 |
36 | public UpstreamObj(String appName, String instanceId) {
37 | this.appName = appName;
38 | this.instanceId = instanceId;
39 | }
40 |
41 | public String getAppName() {
42 |
43 | return appName;
44 | }
45 |
46 | public void setAppName(String appName) {
47 |
48 | this.appName = appName;
49 | }
50 |
51 | public String getInstanceId() {
52 |
53 | return instanceId;
54 | }
55 |
56 | public void setInstanceId(String instanceId) {
57 |
58 | this.instanceId = instanceId;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/sia-gateway-base/src/main/java/com/creditease/gateway/localcache/L1CacheObj.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.localcache;
23 |
24 | import com.creditease.gateway.localcache.LocalCacheManager.L1CacheState;
25 | /***
26 | *
27 | * @author admin
28 | *
29 | */
30 | public class L1CacheObj {
31 |
32 | private Object obj;
33 |
34 | protected L1CacheState state;
35 |
36 | public L1CacheObj(Object obj, L1CacheState state) {
37 | this.obj = obj;
38 | this.state = state;
39 | }
40 |
41 | public Object getObj() {
42 |
43 | return obj;
44 | }
45 |
46 | public L1CacheState getState() {
47 |
48 | return state;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/gw_proc_watcher.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | source /etc/profile
3 |
4 |
5 | process_flag=$1
6 |
7 | working_directory=$2
8 |
9 | start_command=$3
10 |
11 | now=$(date "+%Y-%m-%d %H:%M:%S")
12 | # max log file count
13 | log_file_max=30
14 |
15 | # interval of run
16 | step=15
17 | if [[ "$4" -ge 5 && "$4" -le 60 ]]; then
18 | step=$4
19 | fi
20 |
21 | for(( i = 0; i < 60; i=(i+step) )); do
22 |
23 | # judge process running
24 | count=`ps -fC java | grep $process_flag | wc -l`
25 | if [ $count -eq 0 ]; then
26 | # log
27 | echo "$now $process_flag restart by $start_command">> /dev/null
28 | # start
29 | cd $working_directory
30 | nohup $start_command 1>/dev/null 2>&1 &
31 |
32 | # clear log file
33 | if [ $(find $working_directory -name "*_restart.out" | wc -l) -gt $log_file_max ]; then
34 | rm -rf $(ls $working_directory/*_restart.out|head -n1)
35 | fi
36 | fi
37 |
38 | #
39 | if [ $step -ge 60 ];then
40 | exit 0
41 | else
42 | sleep $step
43 | fi
44 |
45 | done
46 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/k8s_start_gateway_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ $# -eq 0 ]; then
3 | sh /app/jar/ROOT/gateway/bin/k8s_run.sh gateway_test sia-gateway-core-1.0.jar
4 | else
5 | sh /app/jar/ROOT/gateway/bin/k8s_run.sh $1 sia-gateway-core-1.0.jar
6 | fi
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/shutdown_gateway_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./stop.sh gateway_test > /dev/null 2>&1 &
3 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #while true;do
3 | #echo aaa
4 | #sleep 10
5 | #done
6 |
7 | mkdir -p /app/jar/logs/{{HOSTNAME}}/applog
8 | mkdir -p /app/jar/logs/{{HOSTNAME}}/logbak
9 |
10 | sh /app/jar/ROOT/gateway/bin/k8s_start_gateway_test.sh
11 |
12 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/start_gateway_pro.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run.sh gateway_pro gantry-gateway-core-1.0.jar $1 > /dev/null 2>&1 &
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/start_gateway_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | nohup ./run.sh gateway_test sia-gateway-core-1.0.jar > /dev/null 2>&1 &
3 |
4 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/start_gatewayservice_boot_admin.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | java -server -Xms128m -Xmx256m -Xss256k -jar /app/gantrygw/gantry-boot-admin-1.0-SNAPSHOT.jar --group.name=gantry --server.port=10000
3 | &
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/bin/stop.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # First, delete crontab
4 | process_flag=$1
5 | count=`crontab -l 2>/dev/null | grep "$process_flag" | wc -l`
6 | if [ $count -ne 0 ]; then
7 | cronfile=$(pwd)/$process_flag".cron.stop"
8 | crontab -l | grep -v "$process_flag" > $cronfile
9 | crontab $cronfile
10 | rm $cronfile
11 | fi
12 |
13 | # Second, kill running watcher
14 | runing_watcher=$(ps -ef | grep "gw_proc_watcher.sh" | grep "$process_flag" |grep -v grep | awk '{printf "%s ",$2}')
15 | for pid in $runing_watcher; do
16 | echo "watcher will be killed by kill -9 $pid"
17 | kill -9 "$pid"
18 | done
19 |
20 | # Third, kill application
21 | app_pid=$(ps -ef | grep "$process_flag" |grep -v grep |grep -v "stop.sh"| awk '{printf "%s ",$2}')
22 | for pid in $app_pid; do
23 | echo "application will be killed by kill -9 $pid"
24 | kill -9 "$pid"
25 | done
26 |
--------------------------------------------------------------------------------
/sia-gateway-buildcomponent/config/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | ${FILE_LOG_PATTERN}
12 |
13 | ${LOG_FILE}
14 |
15 | ${LOG_FILE}.%i
16 | 1
17 | 10
18 |
19 |
20 | 10MB
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/sia-gateway-core/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | /bin/
3 | /.classpath
4 |
--------------------------------------------------------------------------------
/sia-gateway-core/findbugs.exclude.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/cache/LRUCache.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.cache;
23 |
24 | import java.util.LinkedHashMap;
25 |
26 | /**
27 | * LRU最近最少使用CACHE
28 | *
29 | * @author peihua
30 | *
31 | */
32 | public class LRUCache extends LinkedHashMap {
33 |
34 | /**
35 | *
36 | */
37 | private static final long serialVersionUID = 1L;
38 | private final int SIZE;
39 |
40 | public LRUCache(int size) {
41 | /**
42 | * int initialCapacity, float loadFactor, boolean accessOrder 这3个分别表示容量,加载因子和是否启用LRU规则
43 | */
44 | super(size, 0.75f, true);
45 | SIZE = size;
46 | }
47 |
48 | @Override
49 | protected boolean removeEldestEntry(java.util.Map.Entry eldest) {
50 |
51 | return size() > SIZE;
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/config/LocalMetaDataLoader.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.config;
23 |
24 | import org.slf4j.Logger;
25 | import org.slf4j.LoggerFactory;
26 | import org.springframework.boot.CommandLineRunner;
27 | import org.springframework.stereotype.Component;
28 |
29 |
30 | /**
31 | * 读取本地缓存用(保留功能)
32 |
33 | * @author peihua
34 | *
35 | **/
36 |
37 | @Component
38 | public class LocalMetaDataLoader implements CommandLineRunner {
39 |
40 | private static final Logger LOGGER = LoggerFactory.getLogger(LocalMetaDataLoader.class);
41 |
42 | @Override
43 | public void run(String... args) {
44 |
45 | LOGGER.info("LocalMetaDataLoaderTask 启动!" );
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/config/SwaggerConfig.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.config;
23 |
24 | import org.springframework.cloud.netflix.zuul.filters.discovery.PatternServiceRouteMapper;
25 | import org.springframework.context.annotation.Bean;
26 | import org.springframework.context.annotation.Configuration;
27 |
28 |
29 | /**
30 | * Swagger匹配
31 | *
32 | * @author peihua
33 | *
34 | **/
35 |
36 | @Configuration
37 | public class SwaggerConfig {
38 | //自定义 serviceId 和路由之间的相互映射
39 | @Bean
40 | public PatternServiceRouteMapper serviceRouteMapper() {
41 | return new PatternServiceRouteMapper(
42 | "(?^.+)-(?.+$)",
43 | "${project}/${subProject}");
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/filter/dynamic/AbstractClass.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.filter.dynamic;
23 |
24 | /**
25 | * @author peihua
26 | */
27 | public abstract class AbstractClass {
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/filter/dynamic/JarFileFilter.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.filter.dynamic;
23 |
24 | import java.io.File;
25 | import java.io.FilenameFilter;
26 |
27 | /**
28 | * @author peihua
29 | *
30 | * JavaFileFilter description: JAR格式验证
31 | *
32 | */
33 | public class JarFileFilter implements FilenameFilter {
34 |
35 | @Override
36 | public boolean accept(File dir, String name) {
37 | // 验证文件是否已.jar文件结尾
38 | return name.endsWith(".jar");
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/hystrix/strategy/FallbackStrategy.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.hystrix.strategy;
23 |
24 | import com.creditease.gateway.hystrix.FallbackEvent;
25 |
26 | /**
27 | * 熔断管理策略抽象类
28 | *
29 | * @author peihua
30 | *
31 | */
32 |
33 | public abstract class FallbackStrategy {
34 |
35 | FallbackEvent event;
36 |
37 | public void executeStrategy() {
38 |
39 | event.setFallbackType(getFallbackType());
40 |
41 | strategy(event);
42 |
43 | event.emit();
44 | }
45 |
46 | public FallbackStrategy(FallbackEvent event) {
47 | this.event = event;
48 | }
49 |
50 | public abstract void strategy(FallbackEvent event);
51 |
52 | public abstract String getFallbackType();
53 | }
54 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/ribbon/RibbonServerSource.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.ribbon;
23 |
24 | /**
25 | * Ribbon数据源定义
26 | *
27 | * @author peihua
28 | *
29 | */
30 |
31 | public enum RibbonServerSource {
32 |
33 | LISTOFSERERROUNDROBIN("LISTOFSERERROUNDROBIN"), LISTOFSERVERETCD("LISTOFSERVERETCD"), LISTOFSERVERZK(
34 | "LISTOFSERVERZK");
35 |
36 | public static RibbonServerSource getDefault() {
37 |
38 | return LISTOFSERERROUNDROBIN;
39 | }
40 |
41 | private String name;
42 |
43 | RibbonServerSource(String name) {
44 | this.name = name;
45 | }
46 |
47 | @Override
48 | public String toString() {
49 |
50 | return name;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/ribbon/context/RibbonFilterContext.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.ribbon.context;
23 |
24 | import java.util.Map;
25 |
26 | /**
27 | *
28 | * @author peihua
29 | *
30 | * Ribbon discovery filter context stores the attributes based on which the server matching will be performed.
31 | *
32 | */
33 | public interface RibbonFilterContext {
34 |
35 | /**
36 | * Adds the context attribute.
37 | *
38 | */
39 | RibbonFilterContext add(String key, String value);
40 |
41 | /**
42 | * Retrieves the context attribute.
43 | */
44 | String get(String key);
45 |
46 | /**
47 | * Removes the context attribute.
48 | *
49 | */
50 | RibbonFilterContext remove(String key);
51 |
52 | /**
53 | * Retrieves the attributes.
54 | */
55 | Map getAttributes();
56 | }
57 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/ribbon/context/RibbonFilterContextHolder.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.ribbon.context;
23 |
24 | /**
25 | * @author peihua
26 | *
27 | */
28 | public class RibbonFilterContextHolder {
29 |
30 | private static final ThreadLocal CONTEXTHOLDER = new InheritableThreadLocal() {
31 |
32 | @Override
33 | protected RibbonFilterContext initialValue() {
34 |
35 | return new DefaultRibbonFilterContext();
36 | }
37 | };
38 |
39 | public static RibbonFilterContext getCurrentContext() {
40 |
41 | return CONTEXTHOLDER.get();
42 | }
43 |
44 | /**
45 | * Clears the current context.
46 | */
47 | public static void clearCurrentContext() {
48 |
49 | CONTEXTHOLDER.remove();
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/ribbon/rule/MetadataMatchRule.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.ribbon.rule;
23 |
24 | /**
25 | *
26 | * 根据元数据匹配 Original server规则
27 | *
28 | * @author peihua
29 | *
30 | * */
31 | public class MetadataMatchRule extends BaseDiscoveryEnabledRule {
32 |
33 | public MetadataMatchRule() {
34 |
35 | this(new MetadataMatchPredicate());
36 | }
37 |
38 | /**
39 | * Creates new instance of with specific predicate.
40 | *
41 | */
42 | public MetadataMatchRule(BaseDiscoveryEnabledPredicate predicate) {
43 | super(predicate);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/service/LogService.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.service;
23 |
24 | import com.netflix.zuul.context.RequestContext;
25 |
26 | /**
27 | * 日志服务
28 | *
29 | * @author peihua
30 | *
31 | * */
32 | public interface LogService {
33 |
34 | /**
35 | * 记录请求日志
36 | * @param ctx
37 | * @param routeid
38 | * @return void
39 | *
40 | * */
41 | void recordRequest(RequestContext ctx, String routeid);
42 |
43 | /**
44 | * 记录响应日志
45 | * @param ctx
46 | * @param routeid
47 | * @return void
48 | *
49 | * */
50 | void recordResponse(RequestContext ctx, String routeid);
51 | }
52 |
--------------------------------------------------------------------------------
/sia-gateway-core/src/main/java/com/creditease/gateway/service/RateLimitService.java:
--------------------------------------------------------------------------------
1 | /*-
2 | * <<
3 | * sag
4 | * ==
5 | * Copyright (C) 2019 sia
6 | * ==
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | * >>
19 | */
20 |
21 |
22 | package com.creditease.gateway.service;
23 |
24 | import java.util.List;
25 | import java.util.Map;
26 | import com.netflix.zuul.context.RequestContext;
27 |
28 | /**
29 | * 限流服務
30 | *
31 | * @author peihua
32 | *
33 | */
34 | public interface RateLimitService {
35 |
36 | /**
37 | * 做限流处理
38 | * @param ctx
39 | * @param routeid
40 | * @return void
41 | *
42 | * */
43 | void runRateLimit(RequestContext ctx, String routeid);
44 |
45 | /**
46 | * 设置限流参数
47 | * @param routlimitMap
48 | * @return void
49 | *
50 | * */
51 | void setRoutlimitMap(List