From 3eb965f380b239fb4de243fa83133ea0f2387b63 Mon Sep 17 00:00:00 2001 From: JOETION <1322874562@qq.com> Date: Wed, 20 Jan 2021 18:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 21 ++ auth/authentication-client/.gitignore | 16 ++ auth/authentication-client/pom.xml | 83 ++++++++ .../auth/client/config/FeignOkHttpConfig.java | 37 ++++ .../auth/client/provider/AuthProvider.java | 54 ++++++ .../auth/client/service/IAuthService.java | 60 ++++++ .../auth/client/service/impl/AuthService.java | 92 +++++++++ .../client/service/impl/AuthServiceTest.java | 111 +++++++++++ auth/authentication-server/.gitignore | 16 ++ auth/authentication-server/pom.xml | 107 +++++++++++ .../Oauth2AuthenticationApplication.java | 24 +++ .../auth/authentication/config/BusConfig.java | 104 ++++++++++ .../config/InterceptConfig.java | 21 ++ .../config/LoadResourceDefine.java | 19 ++ .../config/NacosRegisterConfig.java | 56 ++++++ .../config/ResourceServerConfig.java | 51 +++++ .../auth/authentication/entity/License.java | 26 +++ .../auth/authentication/entity/Popedom.java | 32 ++++ .../authentication/events/BusReceiver.java | 30 +++ .../provider/PopedomProvider.java | 24 +++ .../provider/PopedomProviderFallback.java | 36 ++++ .../rest/AuthenticationController.java | 34 ++++ .../rest/HttpServletRequestAuthWrapper.java | 22 +++ .../service/AuthenticationService.java | 17 ++ .../service/NewMvcRequestMatcher.java | 31 +++ .../service/PopedomService.java | 52 +++++ .../impl/AuthenticationServiceImpl.java | 84 ++++++++ .../service/impl/PopedomServiceImpl.java | 127 +++++++++++++ .../auth/authentication/ApplicationTests.java | 54 ++++++ .../impl/AuthenticationServiceImplTest.java | 31 +++ .../service/impl/PopedomServiceImplTest.java | 73 +++++++ auth/authorization-server/.gitignore | 16 ++ auth/authorization-server/pom.xml | 114 +++++++++++ .../Oauth2AuthorizationApplication.java | 23 +++ .../config/AuthorizationServerConfig.java | 179 ++++++++++++++++++ .../authorization/config/InterceptConfig.java | 21 ++ .../config/NacosRegisterConfig.java | 56 ++++++ .../config/WebServerSecurityConfig.java | 83 ++++++++ .../auth/authorization/entity/Company.java | 24 +++ .../auth/authorization/entity/User.java | 31 +++ .../exception/AuthErrorType.java | 38 ++++ .../exception/CustomOauthException.java | 20 ++ .../CustomOauthExceptionSerializer.java | 18 ++ .../CustomWebResponseExceptionTranslator.java | 16 ++ .../GlobalExceptionHandlerAdvice.java | 11 ++ .../oauth2/CustomUserDetailsService.java | 49 +++++ .../oauth2/MobileUserDetailsService.java | 42 ++++ .../authority/CustomGrantedAuthority.java | 36 ++++ .../oauth2/enhancer/CustomTokenEnhancer.java | 25 +++ .../granter/MobileAuthenticationProvider.java | 16 ++ .../granter/MobileAuthenticationToken.java | 11 ++ .../oauth2/granter/MobileTokenGranter.java | 53 ++++++ .../provider/OrganizationProvider.java | 21 ++ .../OrganizationProviderFallback.java | 23 +++ .../provider/SmsCodeProvider.java | 19 ++ .../provider/SmsCodeProviderFallback.java | 18 ++ .../authorization/service/UserService.java | 22 +++ .../service/impl/UserServiceImpl.java | 27 +++ .../auth/authorization/ApplicationTests.java | 15 ++ auth/pom.xml | 68 +++++++ common/core/.gitignore | 25 +++ common/core/pom.xml | 40 ++++ .../cloud/common/core/entity/vo/Result.java | 167 ++++++++++++++++ .../common/core/exception/BaseException.java | 32 ++++ .../common/core/exception/ErrorType.java | 17 ++ .../core/exception/ServiceException.java | 11 ++ .../core/exception/SystemErrorType.java | 34 ++++ .../common/core/util/UserContextHolder.java | 84 ++++++++ common/pom.xml | 46 +++++ common/web/pom.xml | 102 ++++++++++ .../common/web/entity/form/BaseForm.java | 43 +++++ .../common/web/entity/form/BaseQueryForm.java | 44 +++++ .../common/web/entity/param/BaseParam.java | 21 ++ .../cloud/common/web/entity/po/BasePo.java | 29 +++ .../cloud/common/web/entity/vo/BaseVo.java | 13 ++ .../DefaultGlobalExceptionHandlerAdvice.java | 59 ++++++ .../web/handler/PoMetaObjectHandler.java | 36 ++++ .../FeignBasicAuthRequestInterceptor.java | 46 +++++ .../web/interceptor/UserInterceptor.java | 87 +++++++++ .../cloud/common/web/redis/RedisConfig.java | 48 +++++ ...faultGlobalExceptionHandlerAdviceTest.java | 12 ++ .../web/interceptor/UserInterceptorTest.java | 27 +++ doc/连锁ERP架构.xmind | Bin 0 -> 222059 bytes doc/连锁ERP架构说明书.docx | Bin 0 -> 841396 bytes gateway/gateway-admin/.gitignore | 16 ++ gateway/gateway-admin/pom.xml | 33 ++++ gateway/gateway-admin/src/main/db/db.sql | 66 +++++++ .../admin/GatewayAdminApplication.java | 20 ++ .../cloud/gateway/admin/config/BusConfig.java | 50 +++++ .../admin/config/MyMetaObjectHandler.java | 9 + .../gateway/admin/config/MyRedisConfig.java | 10 + .../gateway/admin/config/MybatisConfig.java | 21 ++ .../gateway/admin/config/SwaggerConfig.java | 35 ++++ .../config/WebServerMvcConfigurerAdapter.java | 22 +++ .../gateway/admin/dao/GatewayRouteMapper.java | 11 ++ .../admin/entity/form/GatewayRouteForm.java | 61 ++++++ .../entity/form/GatewayRouteQueryForm.java | 31 +++ .../admin/entity/ov/GatewayRouteVo.java | 56 ++++++ .../entity/param/GatewayRouteQueryParam.java | 16 ++ .../admin/entity/po/FilterDefinition.java | 16 ++ .../gateway/admin/entity/po/GatewayRoute.java | 19 ++ .../admin/entity/po/PredicateDefinition.java | 16 ++ .../gateway/admin/events/EventSender.java | 31 +++ .../GlobalExceptionHandlerAdvice.java | 10 + .../admin/rest/GatewayRouteController.java | 91 +++++++++ .../admin/service/IGatewayRouteService.java | 53 ++++++ .../service/impl/GatewayRouteService.java | 117 ++++++++++++ .../admin/GatewayAdminApplicationTests.java | 16 ++ gateway/gateway-web/.gitignore | 25 +++ gateway/gateway-web/pom.xml | 79 ++++++++ .../cloud/gateway/GatewayApplication.java | 23 +++ .../cloud/gateway/config/BusConfig.java | 69 +++++++ .../config/DefaultRedisRateLimiter.java | 32 ++++ .../config/RequestRateLimiterConfig.java | 46 +++++ .../cloud/gateway/config/SwaggerHandler.java | 48 +++++ .../cloud/gateway/config/SwaggerProvider.java | 45 +++++ .../cloud/gateway/events/BusReceiver.java | 22 +++ .../CustomErrorWebExceptionHandler.java | 52 +++++ .../exception/ExceptionAutoConfiguration.java | 64 +++++++ .../GateWayExceptionHandlerAdvice.java | 92 +++++++++ .../gateway/filter/AccessGatewayFilter.java | 110 +++++++++++ .../gateway/filter/SwaggerHeaderFilter.java | 37 ++++ .../RedisRouteDefinitionRepository.java | 39 ++++ .../gateway/service/PermissionService.java | 12 ++ .../cloud/gateway/service/RouteService.java | 13 ++ .../service/impl/PermissionServiceImpl.java | 21 ++ .../service/impl/RouteServiceImpl.java | 82 ++++++++ .../gateway/GatewayApplicationTests.java | 18 ++ gateway/pom.xml | 41 ++++ monitor/admin/.gitignore | 16 ++ monitor/admin/pom.xml | 35 ++++ .../springboot/admin/AdminApplication.java | 15 ++ .../com/springboot/admin/SecurityConfig.java | 37 ++++ .../admin/ConsumerApplicationTests.java | 16 ++ monitor/pom.xml | 30 +++ pom.xml | 144 ++++++++++++++ sysadmin/organization/pom.xml | 85 +++++++++ .../organization/OrganizationApplication.java | 27 +++ .../organization/config/BusConfig.java | 76 ++++++++ .../config/MyMetaObjectHandler.java | 9 + .../organization/config/MyRedisConfig.java | 11 ++ .../organization/config/MybatisConfig.java | 29 +++ .../config/NacosRegisterConfig.java | 56 ++++++ .../organization/config/SwaggerConfig.java | 35 ++++ .../config/WebServerMvcConfigurerAdapter.java | 22 +++ .../organization/dao/GatewayRouteMapper.java | 11 ++ .../sysadmin/organization/dao/UserMapper.java | 11 ++ .../application/ApplicationGradeMapper.java | 18 ++ .../ApplicationGradePopedomMapper.java | 18 ++ .../dao/application/ApplicationMapper.java | 18 ++ .../application/ApplicationPopedomMapper.java | 18 ++ .../CompanyApplicationLicenseMapper.java | 18 ++ .../CompanyApplicationPopedomMapper.java | 18 ++ .../dao/company/CompanyMapper.java | 18 ++ .../dao/company/CompanyRoleMapper.java | 18 ++ .../dao/company/CompanyRolePopedomMapper.java | 19 ++ .../dao/company/CompanyRoleUserMapper.java | 18 ++ .../dao/company/CompanyUserMapper.java | 18 ++ .../organization/entity/po/GatewayRoute.java | 21 ++ .../sysadmin/organization/entity/po/User.java | 35 ++++ .../entity/po/application/Application.java | 29 +++ .../po/application/ApplicationGrade.java | 23 +++ .../application/ApplicationGradePopedom.java | 21 ++ .../po/application/ApplicationPopedom.java | 34 ++++ .../entity/po/company/Company.java | 55 ++++++ .../po/company/CompanyApplicationLicense.java | 28 +++ .../po/company/CompanyApplicationPopedom.java | 21 ++ .../entity/po/company/CompanyRole.java | 22 +++ .../entity/po/company/CompanyRolePopedom.java | 22 +++ .../entity/po/company/CompanyRoleUser.java | 22 +++ .../entity/po/company/CompanyUser.java | 27 +++ .../sysadmin/organization/entity/vo/Menu.java | 66 +++++++ .../organization/entity/vo/Popedom.java | 47 +++++ .../organization/events/EventSender.java | 31 +++ .../GlobalExceptionHandlerAdvice.java | 18 ++ .../exception/OrganizationErrorType.java | 25 +++ .../exception/RoleNotFoundException.java | 13 ++ .../exception/UserNotFoundException.java | 13 ++ .../organization/rest/CompanyController.java | 92 +++++++++ .../sysadmin/organization/rest/HrDemo.java | 35 ++++ .../organization/rest/MenuController.java | 34 ++++ .../organization/rest/RoleController.java | 29 +++ .../organization/rest/UserController.java | 29 +++ .../service/ApplicationService.java | 22 +++ .../organization/service/CompanyService.java | 72 +++++++ .../organization/service/GatewayService.java | 11 ++ .../organization/service/MenuService.java | 24 +++ .../organization/service/UserService.java | 14 ++ .../ApplicationPopedomService.java | 23 +++ .../impl/ApplicationPopedomServiceImpl.java | 31 +++ .../CompanyApplicationLicenseService.java | 23 +++ .../CompanyApplicationPopedomService.java | 29 +++ .../company/CompanyRolePopedomService.java | 33 ++++ .../company/CompanyRoleUserService.java | 25 +++ .../service/company/CompanyUserService.java | 33 ++++ .../CompanyApplicationLicenseServiceImpl.java | 28 +++ .../CompanyApplicationPopedomServiceImpl.java | 38 ++++ .../impl/CompanyRolePopedomServiceImpl.java | 38 ++++ .../impl/CompanyRoleUserServiceImpl.java | 33 ++++ .../company/impl/CompanyUserServiceImpl.java | 42 ++++ .../service/impl/ApplicationServiceImpl.java | 27 +++ .../service/impl/CompanyServiceImpl.java | 112 +++++++++++ .../service/impl/GatewayServiceImpl.java | 73 +++++++ .../service/impl/MenuServiceImpl.java | 63 ++++++ .../service/impl/UserServiceImpl.java | 36 ++++ sysadmin/pom.xml | 23 +++ webapps/pom.xml | 104 ++++++++++ webapps/webapp-parent/pom.xml | 31 +++ 208 files changed, 8103 insertions(+) create mode 100644 .gitignore create mode 100644 auth/authentication-client/.gitignore create mode 100644 auth/authentication-client/pom.xml create mode 100644 auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/config/FeignOkHttpConfig.java create mode 100644 auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/provider/AuthProvider.java create mode 100644 auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/IAuthService.java create mode 100644 auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/impl/AuthService.java create mode 100644 auth/authentication-client/src/test/java/com/springboot/cloud/auth/client/service/impl/AuthServiceTest.java create mode 100644 auth/authentication-server/.gitignore create mode 100644 auth/authentication-server/pom.xml create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/Oauth2AuthenticationApplication.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/BusConfig.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/InterceptConfig.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/LoadResourceDefine.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/NacosRegisterConfig.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/ResourceServerConfig.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/License.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/Popedom.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/events/BusReceiver.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProvider.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProviderFallback.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/AuthenticationController.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/HttpServletRequestAuthWrapper.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/AuthenticationService.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/NewMvcRequestMatcher.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/PopedomService.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImpl.java create mode 100644 auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImpl.java create mode 100644 auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/ApplicationTests.java create mode 100644 auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImplTest.java create mode 100644 auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImplTest.java create mode 100644 auth/authorization-server/.gitignore create mode 100644 auth/authorization-server/pom.xml create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/Oauth2AuthorizationApplication.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/AuthorizationServerConfig.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/InterceptConfig.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/NacosRegisterConfig.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/WebServerSecurityConfig.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/Company.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/User.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/AuthErrorType.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthException.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthExceptionSerializer.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomWebResponseExceptionTranslator.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/GlobalExceptionHandlerAdvice.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/CustomUserDetailsService.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/MobileUserDetailsService.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/authority/CustomGrantedAuthority.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/enhancer/CustomTokenEnhancer.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationProvider.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationToken.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileTokenGranter.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProvider.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProviderFallback.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProvider.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProviderFallback.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/UserService.java create mode 100644 auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/impl/UserServiceImpl.java create mode 100644 auth/authorization-server/src/test/java/com/springboot/auth/authorization/ApplicationTests.java create mode 100644 auth/pom.xml create mode 100644 common/core/.gitignore create mode 100644 common/core/pom.xml create mode 100644 common/core/src/main/java/com/springboot/cloud/common/core/entity/vo/Result.java create mode 100644 common/core/src/main/java/com/springboot/cloud/common/core/exception/BaseException.java create mode 100644 common/core/src/main/java/com/springboot/cloud/common/core/exception/ErrorType.java create mode 100644 common/core/src/main/java/com/springboot/cloud/common/core/exception/ServiceException.java create mode 100644 common/core/src/main/java/com/springboot/cloud/common/core/exception/SystemErrorType.java create mode 100644 common/core/src/main/java/com/springboot/cloud/common/core/util/UserContextHolder.java create mode 100644 common/pom.xml create mode 100644 common/web/pom.xml create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseForm.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/interceptor/FeignBasicAuthRequestInterceptor.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java create mode 100644 common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java create mode 100644 common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java create mode 100644 common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java create mode 100644 doc/连锁ERP架构.xmind create mode 100644 doc/连锁ERP架构说明书.docx create mode 100644 gateway/gateway-admin/.gitignore create mode 100644 gateway/gateway-admin/pom.xml create mode 100644 gateway/gateway-admin/src/main/db/db.sql create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java create mode 100644 gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java create mode 100644 gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java create mode 100644 gateway/gateway-web/.gitignore create mode 100644 gateway/gateway-web/pom.xml create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/PermissionService.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/RouteService.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionServiceImpl.java create mode 100644 gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteServiceImpl.java create mode 100644 gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java create mode 100644 gateway/pom.xml create mode 100644 monitor/admin/.gitignore create mode 100644 monitor/admin/pom.xml create mode 100644 monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java create mode 100644 monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java create mode 100644 monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java create mode 100644 monitor/pom.xml create mode 100644 pom.xml create mode 100644 sysadmin/organization/pom.xml create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/NacosRegisterConfig.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GatewayRouteMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/UserMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradeMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradePopedomMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationPopedomMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationLicenseMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationPopedomMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRolePopedomMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleUserMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyUserMapper.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/GatewayRoute.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/User.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/Application.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGrade.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGradePopedom.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationPopedom.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/Company.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationLicense.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationPopedom.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRole.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRolePopedom.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRoleUser.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyUser.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Menu.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Popedom.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/events/EventSender.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/GlobalExceptionHandlerAdvice.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/OrganizationErrorType.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/RoleNotFoundException.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/UserNotFoundException.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/CompanyController.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/HrDemo.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/MenuController.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/RoleController.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/UserController.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/ApplicationService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/CompanyService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/GatewayService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/MenuService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/UserService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/ApplicationPopedomService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/impl/ApplicationPopedomServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationLicenseService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationPopedomService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRolePopedomService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRoleUserService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyUserService.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationLicenseServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationPopedomServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRolePopedomServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRoleUserServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyUserServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/ApplicationServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/CompanyServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/GatewayServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/MenuServiceImpl.java create mode 100644 sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/UserServiceImpl.java create mode 100644 sysadmin/pom.xml create mode 100644 webapps/pom.xml create mode 100644 webapps/webapp-parent/pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbbb146 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +target/ +**/target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +*.iml +.idea +modules/log +modules/logs +.project +.settings +.classpath +logs +out +application.yml +bootstrap.yml diff --git a/auth/authentication-client/.gitignore b/auth/authentication-client/.gitignore new file mode 100644 index 0000000..3a05198 --- /dev/null +++ b/auth/authentication-client/.gitignore @@ -0,0 +1,16 @@ +target/ +logs/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr diff --git a/auth/authentication-client/pom.xml b/auth/authentication-client/pom.xml new file mode 100644 index 0000000..640c967 --- /dev/null +++ b/auth/authentication-client/pom.xml @@ -0,0 +1,83 @@ + + + 4.0.0 + + business.chaoran + authentication-client + 0.0.1-SNAPSHOT + jar + + authentication-client + Demo Oauth2 project for Spring Cloud Oauth2 Authentication Client + + + UTF-8 + UTF-8 + 1.8 + 1.8 + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/libs-milestone + + false + + + + + + + + org.springframework.cloud + spring-cloud-openfeign + 2.0.0.RC2 + pom + import + + + + + + + business.chaoran + core + 0.0.1-SNAPSHOT + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + io.github.openfeign + feign-okhttp + + + org.projectlombok + lombok + RELEASE + provided + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + junit + junit + 4.12 + test + + + org.mockito + mockito-core + 1.10.19 + + + diff --git a/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/config/FeignOkHttpConfig.java b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/config/FeignOkHttpConfig.java new file mode 100644 index 0000000..d78dced --- /dev/null +++ b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/config/FeignOkHttpConfig.java @@ -0,0 +1,37 @@ +package com.springboot.cloud.auth.client.config; + +import feign.Feign; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.cloud.openfeign.FeignAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.TimeUnit; + +@AutoConfigureBefore(FeignAutoConfiguration.class) +@Configuration +@ConditionalOnClass(Feign.class) +/**** + * 需要修改成OKHTTP的客户端,需要在配置文件增加 + * feign.httpclient.enabled=false + feign.okhttp.enabled=true + */ +public class FeignOkHttpConfig { + + private int feignOkHttpReadTimeout = 60; + private int feignConnectTimeout = 60; + private int feignWriteTimeout = 120; + + //如果此处定义拦截器,则服务之间相互调用控制不了,此模块仅用于远程授权 + @Bean + public okhttp3.OkHttpClient okHttpClient() { + return new okhttp3.OkHttpClient.Builder() + .readTimeout(feignOkHttpReadTimeout, TimeUnit.SECONDS) + .connectTimeout(feignConnectTimeout, TimeUnit.SECONDS) + .writeTimeout(feignWriteTimeout, TimeUnit.SECONDS) +// .connectionPool(new ConnectionPool(int maxIdleConnections, long keepAliveDuration, TimeUnit timeUnit)) //自定义链接池 +// .addInterceptor(XXXXXXXInterceptor) //自定义拦截器 + .build(); + } +} diff --git a/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/provider/AuthProvider.java b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/provider/AuthProvider.java new file mode 100644 index 0000000..1ced0a9 --- /dev/null +++ b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/provider/AuthProvider.java @@ -0,0 +1,54 @@ +package com.springboot.cloud.auth.client.provider; + +import com.springboot.cloud.common.core.entity.vo.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; + +@Component +@FeignClient(name = "authentication-server", fallback = AuthProvider.AuthProviderFallback.class, path = "authentication-server") +//@FeignClient(name = "authentication-server", fallback = AuthProvider.AuthProviderFallback.class) +public interface AuthProvider { + /** + * 调用签权服务,判断用户是否有权限 + * + * @param authentication + * @param url + * @param companyId + * @return
+     * Result:
+     * {
+     *   code:"000000"
+     *   mesg:"请求成功"
+     *   data: true/false
+     * }
+     * 
+ */ + @PostMapping(value = "/auth/permission") + Result auth(@RequestParam("companyId") String companyId, @RequestHeader(HttpHeaders.AUTHORIZATION) String authentication, @RequestParam("url") String url); + + @Component + class AuthProviderFallback implements AuthProvider { + /** + * 降级统一返回无权限 + * + * @param authentication + * @param url + * @param companyId + * @return
+         * Result:
+         * {
+         *   code:"-1"
+         *   mesg:"系统异常"
+         * }
+         * 
+ */ + @Override + public Result auth(String authentication, String url, String companyId) { + return Result.fail(); + } + } +} diff --git a/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/IAuthService.java b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/IAuthService.java new file mode 100644 index 0000000..8ae9bab --- /dev/null +++ b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/IAuthService.java @@ -0,0 +1,60 @@ +package com.springboot.cloud.auth.client.service; + +import com.springboot.cloud.common.core.entity.vo.Result; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jws; + +public interface IAuthService { + /** + * 调用签权服务,判断用户是否有权限 + * + * @param authentication + * @param url + * @return Result + */ + Result authenticate(String companyId,String authentication, String url); + + /** + * 判断url是否在忽略的范围内 + * 只要是配置中的开头,即返回true + * + * @param url + * @return + */ + boolean ignoreAuthentication(String url); + + /** + * 查看签权服务器返回结果,有权限返回true + * + * @param authResult + * @return + */ + boolean hasPermission(Result authResult); + + /** + * 调用签权服务,判断用户是否有权限 + * + * + * @param companyId + * @param authentication + * @param url + * @return true/false + */ + boolean hasPermission(String companyId,String authentication, String url); + + /** + * 是否无效authentication + * + * @param authentication + * @return + */ + boolean invalidJwtAccessToken(String authentication); + + /** + * 从认证信息中提取jwt token 对象 + * + * @param jwtToken toke信息 header.payload.signature + * @return Jws对象 + */ + Jws getJwt(String jwtToken); +} diff --git a/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/impl/AuthService.java b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/impl/AuthService.java new file mode 100644 index 0000000..270ddeb --- /dev/null +++ b/auth/authentication-client/src/main/java/com/springboot/cloud/auth/client/service/impl/AuthService.java @@ -0,0 +1,92 @@ +package com.springboot.cloud.auth.client.service.impl; + +import com.springboot.cloud.auth.client.provider.AuthProvider; +import com.springboot.cloud.auth.client.service.IAuthService; +import com.springboot.cloud.common.core.entity.vo.Result; +import io.jsonwebtoken.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.stream.Stream; + +@Service +@Slf4j +public class AuthService implements IAuthService { + /** + * Authorization认证开头是"bearer " + */ + private static final String BEARER = "Bearer "; + + @Autowired + private AuthProvider authProvider; + + /** + * jwt token 密钥,主要用于token解析,签名验证 + */ + @Value("${spring.security.oauth2.jwt.signingKey}") + private String signingKey; + + /** + * 不需要网关签权的url配置(/oauth,/open) + * 默认/oauth开头是不需要的 + */ + @Value("${gate.ignore.authentication.startWith}") + private String ignoreUrls = "/oauth"; + + @Override + public Result authenticate(String companyId,String authentication, String url) { + return authProvider.auth(companyId,authentication, url); + } + + @Override + public boolean ignoreAuthentication(String url) { + return Stream.of(this.ignoreUrls.split(",")).anyMatch(ignoreUrl -> url.startsWith(StringUtils.trim(ignoreUrl))); + } + + @Override + public boolean hasPermission(Result authResult) { + log.debug("签权结果:{}", authResult.getData()); + return authResult.isSuccess() && (boolean) authResult.getData(); + } + + @Override + public boolean hasPermission(String companyId, String authentication, String url) { + // 如果请求未携带token信息, 直接权限 + if (StringUtils.isBlank(authentication) || !authentication.startsWith(BEARER)) { + log.error("user token is null"); + return Boolean.FALSE; + } + //token是否有效,在网关进行校验,无效/过期等 + if (invalidJwtAccessToken(authentication)) { + return Boolean.FALSE; + } + //从认证服务获取是否有权限,远程调用 + return hasPermission(authenticate(companyId,authentication, url)); + } + + @Override + public Jws getJwt(String jwtToken) { + if (jwtToken.startsWith(BEARER)) { + jwtToken = StringUtils.substring(jwtToken, BEARER.length()); + } + return Jwts.parser() //得到DefaultJwtParser + .setSigningKey(signingKey.getBytes()) //设置签名的秘钥 + .parseClaimsJws(jwtToken); + } + + @Override + public boolean invalidJwtAccessToken(String authentication) { + // 是否无效true表示无效 + boolean invalid = Boolean.TRUE; + try { + getJwt(authentication); + invalid = Boolean.FALSE; + } catch (SignatureException | ExpiredJwtException | MalformedJwtException ex) { + log.error("user token error :{}", ex.getMessage()); + } + return invalid; + } +} diff --git a/auth/authentication-client/src/test/java/com/springboot/cloud/auth/client/service/impl/AuthServiceTest.java b/auth/authentication-client/src/test/java/com/springboot/cloud/auth/client/service/impl/AuthServiceTest.java new file mode 100644 index 0000000..1c2d190 --- /dev/null +++ b/auth/authentication-client/src/test/java/com/springboot/cloud/auth/client/service/impl/AuthServiceTest.java @@ -0,0 +1,111 @@ +package com.springboot.cloud.auth.client.service.impl; + +import com.springboot.cloud.auth.client.provider.AuthProvider; +import com.springboot.cloud.auth.client.service.IAuthService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.lang.reflect.Field; + +public class AuthServiceTest { + + @InjectMocks + IAuthService authService; + + @Mock + AuthProvider authProvider; + + private static final String VALID_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbInJlYWQiXSwib3JnYW5pemF0aW9uIjoiYWRtaW4iLCJleHAiOjEzNTcyMDIxNjM3LCJhdXRob3JpdGllcyI6WyJBRE1JTiJdLCJqdGkiOiI4MzcyMzI0Ny00ZDA5LTQ0YjYtYTNlOS01OGUzYzZiMGUzYjIiLCJjbGllbnRfaWQiOiJ0ZXN0X2NsaWVudCJ9.IkOtKapS5PJLKU1NfiqVSCgsQngE7qGnIx1NziJMvVA"; + private static final String BEARER = "Bearer "; + + @Before + public void before() throws NoSuchFieldException, IllegalAccessException { + authService = new AuthService(); + setInstancePrivateField(authService, "signingKey", "123456"); + setInstancePrivateField(authService, "ignoreUrls", "/oauth,/open"); + MockitoAnnotations.initMocks(this); + } + + private void setInstancePrivateField(Object instance, String fieldName, Object value) throws NoSuchFieldException, IllegalAccessException { + Field signingKeyField = instance.getClass().getDeclaredField(fieldName); + signingKeyField.setAccessible(true); + signingKeyField.set(instance, value); + } + + @Test + public void testInvalidJwtAccessToken_假如授权服务通过给定密钥生成了token_当输入该token组成的authentication_那么返回false表示token有效() { + Assert.assertFalse(authService.invalidJwtAccessToken(BEARER + VALID_TOKEN)); + } + + @Test + public void testInvalidJwtAccessToken_假如_当输入随机字串_那么返回true表示token无效() { + String authentication = BEARER + "im random string"; + Assert.assertTrue(authService.invalidJwtAccessToken(authentication)); + } + + @Test + public void testInvalidJwtAccessToken_假如有人获取用户token_当输入篡改过playload中信息_那么返回true表示token无效() { + String authentication = BEARER + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.111eyJGc2VyX25hbWUiOiJ6aG91dGFvbyIsInNjb3BlIjpbInJlYWQiXSwib3JnYW5pemF0aW9uIjoiemhvdXRhb28iLCJleHAiOjE1Mjc0NTM5NDQsImF1dGhvcml0aWVzIjpbIkFETUlOIiwiSVQiXSwianRpIjoiZTZiNzM5ZmUtYWEzZC00Y2RmLWIxZjUtNzZkMmVlMjU0ODU1IiwiY2xpZW50X2lkIjoidGVzdF9jbGllbnQifQ.l6PQrs98zT40H6Ad4NHE7NSXyeWnMn-ZhURw3zO-EfE"; + Assert.assertTrue(authService.invalidJwtAccessToken(authentication)); + } + + @Test + public void testInvalidJwtAccessToken_假如有人获取用户token_当输入token去掉了signature_那么返回true表示token无效() { + String authentication = BEARER + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJ6aG91dGFvbyIsInNjb3BlIjpbInJlYWQiXSwib3JnYW5pemF0aW9uIjoiemhvdXRhb28iLCJleHAiOjE1Mjc0NTM5NDQsImF1dGhvcml0aWVzIjpbIkFETUlOIiwiSVQiXSwianRpIjoiZTZiNzM5ZmUtYWEzZC00Y2RmLWIxZjUtNzZkMmVlMjU0ODU1IiwiY2xpZW50X2lkIjoidGVzdF9jbGllbnQifQ"; + Assert.assertTrue(authService.invalidJwtAccessToken(authentication)); + } + + @Test + public void testAuthenticate_假如用户authentication正确且有对请求url有权限_当用户请求该url_那么返回成功有权限() { +// when(authProvider.auth(BEARER + VALID_TOKEN, "/users", , "POST")).thenReturn(Result.success(true)); + Assert.assertTrue((Boolean) authService.authenticate(BEARER + VALID_TOKEN, "/users", "POST").getData()); + } + + @Test + public void testAuthenticate_假如用户authentication正确且有对请求url只有POST权限_当用户请求该url的GET_那么返回成功无权限() { +// when(authProvider.auth(BEARER + VALID_TOKEN, "/users", , "GET")).thenReturn(Result.success(false)); + Assert.assertFalse((Boolean) authService.authenticate(BEARER + VALID_TOKEN, "/users", "GET").getData()); + } + + @Test + public void testHasPermission_假如_当传入无效token_那么返回无权限() { +// Assert.assertFalse(authService.hasPermission(, "invalid token", "/users")); + } + + @Test + public void testHasPermission_假如用户authentication正确且有对请求url有权限_当用户请求该url_那么返回成功有权限() { +// when(authProvider.auth(BEARER + VALID_TOKEN, "/users", , "POST")).thenReturn(Result.success(true)); +// Assert.assertTrue(authService.hasPermission(, BEARER + VALID_TOKEN, "/users")); + } + + @Test + public void testHasPermission_假如用户authentication正确且有对请求url只有POST权限_当用户请求该url的GET_那么返回成功无权限() { +// when(authProvider.auth(BEARER + VALID_TOKEN, "/users", , "GET")).thenReturn(Result.success(false)); +// Assert.assertFalse(authService.hasPermission(, BEARER + VALID_TOKEN, "/users")); + } + + @Test + public void testIgnoreAuthentication_假如配置的忽略前缀为oauth和open_当用户请求以oauth开头的url_那么返回返回true() { + Assert.assertTrue(authService.ignoreAuthentication("/oauth/token?test=123")); + } + + @Test + public void testIgnoreAuthentication_假如配置的忽略前缀为oauth和open_当用户请求以open开头的url_那么返回返回true() { + Assert.assertTrue(authService.ignoreAuthentication("/open/")); + } + + @Test + public void testIgnoreAuthentication_假如配置的忽略前缀为oauth和open_当用户请求以test开头的url_那么返回返回true() { + Assert.assertFalse(authService.ignoreAuthentication("/test")); + } + + @Test + public void testIgnoreAuthentication_假如配置的忽略前缀为oauth和open_当用户请求以open结尾的url_那么返回返回true() { + Assert.assertFalse(authService.ignoreAuthentication("/test/open")); + } + +} \ No newline at end of file diff --git a/auth/authentication-server/.gitignore b/auth/authentication-server/.gitignore new file mode 100644 index 0000000..3a05198 --- /dev/null +++ b/auth/authentication-server/.gitignore @@ -0,0 +1,16 @@ +target/ +logs/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr diff --git a/auth/authentication-server/pom.xml b/auth/authentication-server/pom.xml new file mode 100644 index 0000000..fb14c2f --- /dev/null +++ b/auth/authentication-server/pom.xml @@ -0,0 +1,107 @@ + + + 4.0.0 + + business.chaoran + authentication-server + 0.0.1-SNAPSHOT + war + + + authentication-server + Demo Oauth2 project for Spring Cloud Oauth2 Authentication Server + + + business.chaoran + auth + 0.0.1-SNAPSHOT + + + + + business.chaoran + web + 0.0.1-SNAPSHOT + + + + org.springframework.cloud + spring-cloud-security + + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-swagger-ui + + + + com.alicp.jetcache + jetcache-starter-redis + + + + + + + + + + + + org.slf4j + slf4j-simple + compile + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + org.springframework.boot + spring-boot-starter-logging + + + + + javax.servlet + javax.servlet-api + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.4.RELEASE + + + + build-info + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.0.0 + + + authentication-server + + + + diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/Oauth2AuthenticationApplication.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/Oauth2AuthenticationApplication.java new file mode 100644 index 0000000..b9861c4 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/Oauth2AuthenticationApplication.java @@ -0,0 +1,24 @@ +package com.springboot.cloud.auth.authentication; + +import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +@EnableCreateCacheAnnotation +public class Oauth2AuthenticationApplication extends SpringBootServletInitializer{ + public static void main(String[] args) { + SpringApplication.run(Oauth2AuthenticationApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(Oauth2AuthenticationApplication.class); + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/BusConfig.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/BusConfig.java new file mode 100644 index 0000000..5372fbc --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/BusConfig.java @@ -0,0 +1,104 @@ +package com.springboot.cloud.auth.authentication.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.auth.authentication.events.BusReceiver; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.*; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; +import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; +import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 消息设置 + */ +@Configuration +@Slf4j +public class BusConfig { + + private static final String EXCHANGE_NAME = "spring-boot-exchange"; + private static final String ROUTING_KEY = "organization-popedom"; + + @Value("${spring.application.name}") + private String appName; + + + /** + * 配置监听队列,mq只能直接监听队列,不能直接监听交换机 + * @return 队列 + */ + @Bean + Queue queue() { + String queueName = new Base64UrlNamingStrategy(appName + ".").generateName(); + log.info("queue name:{}", queueName); + return new Queue(queueName, false); + } + + /** + * 采用主题交换机 + * @return 主题交换机 + */ + @Bean + TopicExchange exchange() { + log.info("exchange:{}", EXCHANGE_NAME); + return new TopicExchange(EXCHANGE_NAME); + } + + /** + * 将队列绑定到主题交换机上,以router_key作为键 + * @param queue + * @param exchange + * @return + */ + @Bean + Binding binding(Queue queue, TopicExchange exchange) { + log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY); + return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); + } + + /** + * 设置消息处理监听器 + * @param connectionFactory mq连接工厂,用于配置mq服务器地址,端口,连接关闭或者断开监听器等等 + * @param messageListenerAdapter 消息监听适配器,用于收到消息后对消息进行处理,或者是代理到其他对象进行处理的适配器,默认处理方法为handleMessage + * @param queue 消息接收队列,可以配置多个队列 + * @return 消息监听容器,可以设置消费者数量、最大最小数量、批量消费等等 + */ + @Bean + SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory, MessageListenerAdapter messageListenerAdapter, Queue queue) { + log.info("init simpleMessageListenerContainer {}", queue.getName()); + SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory); + container.setQueueNames(queue.getName()); + container.setMessageListener(messageListenerAdapter); + return container; + } + + /** + * 设置消息监听适配器 + * @param busReceiver 处理消息的代理对象 + * @param messageConverter 消息转换器,此处用Jackson作为json转换工具类 + * @return + */ + @Bean + MessageListenerAdapter messageListenerAdapter(BusReceiver busReceiver, MessageConverter messageConverter) { + log.info("new listener"); + return new MessageListenerAdapter(busReceiver, messageConverter); + } + + /** + * 消息转换器 + * @return Jackson转换器 + */ + @Bean + public MessageConverter messageConverter() { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper)); + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/InterceptConfig.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/InterceptConfig.java new file mode 100644 index 0000000..82e83ae --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/InterceptConfig.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.auth.authentication.config; + +/* + ********************************************** + * DATE PERSON REASON + * 2020/12/7 FXY Created + ********************************************** + */ + +import com.springboot.cloud.common.web.interceptor.FeignBasicAuthRequestInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class InterceptConfig { + + @Bean + public FeignBasicAuthRequestInterceptor interceptor(){ + return new FeignBasicAuthRequestInterceptor(); + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/LoadResourceDefine.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/LoadResourceDefine.java new file mode 100644 index 0000000..431c362 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/LoadResourceDefine.java @@ -0,0 +1,19 @@ +package com.springboot.cloud.auth.authentication.config; + +import com.springboot.cloud.auth.authentication.service.PopedomService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +class LoadResourceDefine { + + @Autowired + private PopedomService popedomService; + + @PostConstruct + public void resourceConfigAttributes() { + popedomService.loadPopedom(); + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/NacosRegisterConfig.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/NacosRegisterConfig.java new file mode 100644 index 0000000..dcc6432 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/NacosRegisterConfig.java @@ -0,0 +1,56 @@ +package com.springboot.cloud.auth.authentication.config; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-24 FXY Created + ********************************************** + */ + +import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.context.annotation.Configuration; + +import javax.management.MBeanServer; +import javax.management.ObjectName; +import javax.management.Query; +import java.lang.management.ManagementFactory; +import java.util.Set; + +@Configuration +@Slf4j +public class NacosRegisterConfig implements ApplicationRunner { + + @Autowired(required = false) + private NacosAutoServiceRegistration registration; + + private Integer port; + + public NacosRegisterConfig() { + try { + this.port = Integer.parseInt(getTomcatPort()); + } catch (Exception e) { + log.error("获取tomcat端口出错了,原因:{}", e.toString()); + } + } + + @Override + public void run(ApplicationArguments args) { + if (registration != null && port != null) { + registration.setPort(port); + registration.start(); + } + } + + //获取tomcat端口 + private String getTomcatPort() throws Exception { + MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer(); + Set objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"))); + String port = objectNames.iterator().next().getKeyProperty("port"); + return port; + } + +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/ResourceServerConfig.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/ResourceServerConfig.java new file mode 100644 index 0000000..7bbf9d7 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/config/ResourceServerConfig.java @@ -0,0 +1,51 @@ +package com.springboot.cloud.auth.authentication.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; +import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; +import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer; +import org.springframework.security.oauth2.provider.token.TokenStore; +import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter; +import org.springframework.security.oauth2.provider.token.store.JwtTokenStore; + +@Slf4j +@Configuration +@EnableResourceServer +public class ResourceServerConfig extends ResourceServerConfigurerAdapter { + + @Value("${spring.security.oauth2.jwt.signingKey}") + private String signingKey; + + @Override + public void configure(ResourceServerSecurityConfigurer resourceServerSecurityConfigurer) { + resourceServerSecurityConfigurer + .tokenStore(tokenStore()) + .resourceId("WEBS"); + } + + @Override + public void configure(HttpSecurity http) throws Exception { + log.debug("HttpSecurity configure method"); + http.csrf().disable(); + http.authorizeRequests() + .antMatchers("/actuator/**").permitAll() + .antMatchers("/v2/api-docs").permitAll() + .anyRequest().authenticated(); + } + + @Bean + public TokenStore tokenStore() { + return new JwtTokenStore(accessTokenConverter()); + } + + @Bean + public JwtAccessTokenConverter accessTokenConverter() { + JwtAccessTokenConverter converter = new JwtAccessTokenConverter(); + converter.setSigningKey(signingKey); + return converter; + } +} \ No newline at end of file diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/License.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/License.java new file mode 100644 index 0000000..a1921f6 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/License.java @@ -0,0 +1,26 @@ +package com.springboot.cloud.auth.authentication.entity; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@NoArgsConstructor +public class License { + private String companyId; + private String franchiserId; + private String applicationCode; + private String grade; + private Date expireDate; + private boolean isForever; + private String state; +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/Popedom.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/Popedom.java new file mode 100644 index 0000000..60c0d27 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/entity/Popedom.java @@ -0,0 +1,32 @@ +package com.springboot.cloud.auth.authentication.entity; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +public class Popedom { + private String id; + private String applicationCode; + private String name; + private String parentId; + private String url; + private String icon; + private String isMenu; + private String description; + private String path; + private String redirect; + private String component; + private String title; + private boolean alwaysShow; + private boolean hidden; + private String companyId; + private Integer orderNo; +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/events/BusReceiver.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/events/BusReceiver.java new file mode 100644 index 0000000..eb5d8f2 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/events/BusReceiver.java @@ -0,0 +1,30 @@ +package com.springboot.cloud.auth.authentication.events; + +import com.springboot.cloud.auth.authentication.entity.Popedom; +import com.springboot.cloud.auth.authentication.service.PopedomService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 消息接收者,收到消息后进行处理,内部反射调用,默认回调方法handleMessage,方法参数由消息 + * 发送方和接收方约定,方法参数尽可能作为一个对象,多个参数向上封装成一个对象 + * + * @see MessageListenerAdapter + * @see org.springframework.amqp.core.MessageListener + */ +@Component +@Slf4j +public class BusReceiver { + + @Autowired + private PopedomService popedomService; + + public void handleMessage(List popedoms) { + log.info("Received Message:<{}>", popedoms); + popedomService.savePopedom(popedoms); + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProvider.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProvider.java new file mode 100644 index 0000000..62cd975 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProvider.java @@ -0,0 +1,24 @@ +package com.springboot.cloud.auth.authentication.provider; + +import com.springboot.cloud.auth.authentication.entity.License; +import com.springboot.cloud.auth.authentication.entity.Popedom; +import com.springboot.cloud.common.core.entity.vo.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient(name = "organization", fallback = PopedomProviderFallback.class, path = "organization") +//@FeignClient(name = "organization", fallback = PopedomProviderFallback.class) +public interface PopedomProvider { + + @GetMapping(value = "/company/getAllPopedom") + Result> popedoms(); + + @GetMapping(value = "/company/getPopedom") + Result> popedoms(@RequestParam("companyId") String companyId,@RequestParam("username")String username); + + @GetMapping(value = "/company/license") + Result license(@RequestParam("companyId")String companyId,@RequestParam("applicationCode")String applicationCode); +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProviderFallback.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProviderFallback.java new file mode 100644 index 0000000..c38a6e0 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/provider/PopedomProviderFallback.java @@ -0,0 +1,36 @@ +package com.springboot.cloud.auth.authentication.provider; + +import com.springboot.cloud.auth.authentication.entity.License; +import com.springboot.cloud.auth.authentication.entity.Popedom; +import com.springboot.cloud.common.core.entity.vo.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Component +@Slf4j +public class PopedomProviderFallback implements PopedomProvider { + + @Override + public Result> popedoms() { + log.error("认证服务启动时加载资源异常!未加载到资源!"); + return Result.fail(); + } + + @Override + public Result> popedoms(String companyId, String username) { + log.error("认证服务查询用户异常!查询用户资源为空!"); + return Result.success(new ArrayList()); + } + + @Override + public Result license(String companyId, String applicationCode) { + log.error("认证服务查询企业应用有效期异常!企业应用过期!"); + return Result.success(new License()); + } + +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/AuthenticationController.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/AuthenticationController.java new file mode 100644 index 0000000..ee672e3 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/AuthenticationController.java @@ -0,0 +1,34 @@ +package com.springboot.cloud.auth.authentication.rest; + +import com.springboot.cloud.auth.authentication.service.AuthenticationService; +import com.springboot.cloud.common.core.entity.vo.Result; +import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@Api("auth") +@Slf4j +public class AuthenticationController { + + @Autowired + AuthenticationService authenticationService; + + @ApiOperation(value = "权限验证", notes = "根据用户token,访问的url和method判断用户是否有权限访问") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "url", value = "访问的url", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "query", name = "method", value = "访问的method", required = true, dataType = "string") + }) + @ApiResponses(@ApiResponse(code = 200, message = "处理成功", response = Result.class)) + @PostMapping(value = "/auth/permission") + public Result decide(@RequestParam String url, HttpServletRequest request) { + boolean decide = authenticationService.decide(new HttpServletRequestAuthWrapper(request, url)); + return Result.success(decide); + } + +} \ No newline at end of file diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/HttpServletRequestAuthWrapper.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/HttpServletRequestAuthWrapper.java new file mode 100644 index 0000000..797b6f3 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/rest/HttpServletRequestAuthWrapper.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.auth.authentication.rest; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +public class HttpServletRequestAuthWrapper extends HttpServletRequestWrapper { + + private String url; + + /** + * @param url + */ + public HttpServletRequestAuthWrapper(HttpServletRequest request, String url) { + super(request); + this.url = url; + } + + @Override + public String getServletPath() { + return this.url; + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/AuthenticationService.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/AuthenticationService.java new file mode 100644 index 0000000..1cc0ee3 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/AuthenticationService.java @@ -0,0 +1,17 @@ +package com.springboot.cloud.auth.authentication.service; + +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; + +@Service +public interface AuthenticationService { + /** + * 校验权限 + * + * @param authRequest + * @return 是否有权限 + */ + boolean decide(HttpServletRequest authRequest); + +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/NewMvcRequestMatcher.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/NewMvcRequestMatcher.java new file mode 100644 index 0000000..98d607a --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/NewMvcRequestMatcher.java @@ -0,0 +1,31 @@ +package com.springboot.cloud.auth.authentication.service; + +import com.google.common.base.Objects; +import lombok.Getter; +import org.springframework.http.HttpMethod; +import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher; +import org.springframework.web.servlet.handler.HandlerMappingIntrospector; + +@Getter +public class NewMvcRequestMatcher extends MvcRequestMatcher { + + private String pattern; + + public NewMvcRequestMatcher(HandlerMappingIntrospector introspector, String pattern) { + super(introspector, pattern); + this.pattern = pattern; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + NewMvcRequestMatcher that = (NewMvcRequestMatcher) o; + return Objects.equal(pattern, that.pattern); + } + + @Override + public int hashCode() { + return Objects.hashCode(pattern); + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/PopedomService.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/PopedomService.java new file mode 100644 index 0000000..77aa046 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/PopedomService.java @@ -0,0 +1,52 @@ +package com.springboot.cloud.auth.authentication.service; + +import com.springboot.cloud.auth.authentication.entity.Popedom; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@Service +public interface PopedomService { + + /** + * 动态新增更新权限 + * + * @param popedoms + */ + void savePopedom(List popedoms); + + /** + * 动态删除权限 + * + * @param popedom + */ + void removePopedom(Popedom popedom); + + /** + * 加载权限资源数据 + */ + void loadPopedom(); + + /** + * 根据url和method查询到对应的权限信息 + * + * @param authRequest + * @return + */ + List findConfigAttributesByUrl(HttpServletRequest authRequest); + + /** + * 根据用户名查询 该用户所拥有的角色对应的资源信息 + * @param companyId + * @param username + * @return + */ + List queryByUsername(String companyId,String username); + + /** + * 资源对应的应用是否过期 + */ + boolean license(String companyId, String applicationCode); +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImpl.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImpl.java new file mode 100644 index 0000000..e46fe15 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImpl.java @@ -0,0 +1,84 @@ +package com.springboot.cloud.auth.authentication.service.impl; + +import com.springboot.cloud.auth.authentication.entity.Popedom; +import com.springboot.cloud.auth.authentication.service.AuthenticationService; +import com.springboot.cloud.auth.authentication.service.PopedomService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.access.SecurityConfig; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Optional; + +@Service +@Slf4j +public class AuthenticationServiceImpl implements AuthenticationService { + + @Autowired + private PopedomService popedomService; + + /** + * @param authRequest 访问的url,method + * @return 有权限true, 无权限或全局资源中未找到请求url返回否 + */ + @Override + public boolean decide(HttpServletRequest authRequest) { + log.debug("正在访问的url是:{}", authRequest.getServletPath()); + //获取用户认证信息 + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + //获取此url访问对应的权限资源信息 + List configAttributes = popedomService.findConfigAttributesByUrl(authRequest); + if (configAttributes.size() == 0) { + //如果未匹配到资源,则返回未授权 + return false; + } else if (configAttributes.size() == 1) { + //默认授权所有资源,所有资源都会匹配,如果仅匹配到一个资源,则必定不是功能接口 + return true; + } else { + String companyId = Optional.ofNullable(authRequest.getParameter("companyId")).orElseGet(String::new); +// String companyId = Optional.ofNullable(UserContextHolder.getInstance().getCurrentCompany()).orElseGet(String::new); + //获取此访问用户所有角色拥有的权限资源 + List userPopedoms = findPopedomByUsername(companyId, authentication.getName()); + //用户拥有权限资源 与 url要求的资源进行对比 + return isMatch(companyId,configAttributes, userPopedoms); + } + + } + + /** + * url对应资源与用户拥有资源进行匹配 + * 前端传入所在公司 + * @param userPopedoms + * @return + */ + public boolean isMatch(String companyId,List urlConfigAttributes, List userPopedoms) { + //首先检查用户所属角色是否有资源权限 + Optional optionalPopedom = userPopedoms.stream().filter(popedom -> urlConfigAttributes.contains(new SecurityConfig(popedom.getId()))).findAny(); + if(optionalPopedom.isPresent()){ + //再检查用户所在公司应用是否过期 + return popedomService.license(companyId, optionalPopedom.orElseGet(Popedom::new).getApplicationCode()); + }else{ + return false; + } + } + + /** + * 根据用户所被授予的角色,查询到用户所拥有的资源 + * + * @param username + * @return + */ + private List findPopedomByUsername(String companyId, String username) { + //用户被授予的角色资源 + List popedoms = popedomService.queryByUsername(companyId, username); + if (log.isDebugEnabled()) { + log.debug("用户被授予角色的资源数量是:{}, 资源集合信息为:{}", popedoms.size(), popedoms); + } + return popedoms; + } +} diff --git a/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImpl.java b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImpl.java new file mode 100644 index 0000000..416c3f5 --- /dev/null +++ b/auth/authentication-server/src/main/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImpl.java @@ -0,0 +1,127 @@ +package com.springboot.cloud.auth.authentication.service.impl; + +import com.springboot.cloud.auth.authentication.entity.License; +import com.springboot.cloud.auth.authentication.entity.Popedom; +import com.springboot.cloud.auth.authentication.provider.PopedomProvider; +import com.springboot.cloud.auth.authentication.service.NewMvcRequestMatcher; +import com.springboot.cloud.auth.authentication.service.PopedomService; +import com.springboot.cloud.common.core.entity.vo.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.access.SecurityConfig; +import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher; +import org.springframework.security.web.util.matcher.RequestMatcher; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.handler.HandlerMappingIntrospector; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class PopedomServiceImpl implements PopedomService { + + @Autowired + private HandlerMappingIntrospector mvcHandlerMappingIntrospector; + + @Autowired + private PopedomProvider popedomProvider; + + /** + * 系统中权限分组集合 + * key:companyId,value:{key:url,value:config} + */ + private static final Map> popedomConfigAttributes = new HashMap<>(); + + @Override + public synchronized void savePopedom(List popedoms) { + popedoms.stream().forEach(popedom -> { + if (popedomConfigAttributes.containsKey(popedom.getCompanyId())) { + //如果包含company对应的权限表,则更新 + Map attributeMap = popedomConfigAttributes.get(popedom.getCompanyId()); + attributeMap.put(this.newMvcRequestMatcher(popedom.getUrl()), new SecurityConfig(popedom.getId())); + } else { + //如果不包含company对应的权限表,则新增 + Map map = new HashMap<>(); + map.put(this.newMvcRequestMatcher(popedom.getUrl()), new SecurityConfig(popedom.getId())); + popedomConfigAttributes.put(popedom.getCompanyId(), map); + } + }); + log.info("popedomConfigAttributes size:{}", popedomConfigAttributes.size()); + } + + @Override + public synchronized void removePopedom(Popedom popedom) { + if (popedomConfigAttributes.containsKey(popedom.getCompanyId())) { + Map attributeMap = popedomConfigAttributes.get(popedom.getCompanyId()); + attributeMap.remove(this.newMvcRequestMatcher(popedom.getUrl())); + } + log.info("resourceConfigAttributes size:{}", popedomConfigAttributes.size()); + } + + @Override + public synchronized void loadPopedom() { + Result> resourcesResult = popedomProvider.popedoms(); + if (resourcesResult.isFail()) { + System.exit(1); + } + List popedoms = resourcesResult.getData(); + //先根据公司分组,然后放入内存 + Map> map = popedoms.stream().filter(a -> null != a.getUrl() && !a.getUrl().equals("")).collect(Collectors.groupingBy(Popedom::getCompanyId, Collectors.toMap(a -> newMvcRequestMatcher(a.getUrl()), a -> new SecurityConfig(a.getId())))); + popedomConfigAttributes.putAll(map); + log.debug("init resourceConfigAttributes:{}", popedomConfigAttributes); + } + + @Override + public List findConfigAttributesByUrl(HttpServletRequest authRequest) { + String companyId = Optional.ofNullable(authRequest.getParameter("companyId")).orElseGet(String::new); +// String companyId = Optional.ofNullable(UserContextHolder.getInstance().getCurrentCompany()).orElseGet(String::new); + if (popedomConfigAttributes.containsKey(companyId)) { + Map attributeMap = popedomConfigAttributes.get(companyId); + return attributeMap.keySet().stream() + .filter(requestMatcher -> requestMatcher.matches(authRequest)) + .map(requestMatcher -> attributeMap.get(requestMatcher)) + .peek(urlConfigAttribute -> log.debug("url在资源池中配置:{}", urlConfigAttribute.getAttribute())) + .collect(Collectors.toList()); + } else { + return Collections.emptyList(); + } + } + + @Override + public List queryByUsername(String companyId, String username) { + return popedomProvider.popedoms(companyId, username).getData(); + } + + @Override + public boolean license(String companyId, String applicationCode) { + Result licenseResult = popedomProvider.license(companyId, applicationCode); + if (licenseResult.isFail()) { + return false; + } + License data = licenseResult.getData(); + if (null == data) { + return false; + } + if (data.isForever()) { + return true; + } + if (data.getExpireDate().getTime() > new Date().getTime()) { + return true; + } else { + return false; + } + } + + /** + * 创建RequestMatcher + * + * @param url + * @return + */ + private MvcRequestMatcher newMvcRequestMatcher(String url) { + return new NewMvcRequestMatcher(mvcHandlerMappingIntrospector, url); + } +} \ No newline at end of file diff --git a/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/ApplicationTests.java b/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/ApplicationTests.java new file mode 100644 index 0000000..bc7aeef --- /dev/null +++ b/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/ApplicationTests.java @@ -0,0 +1,54 @@ +package com.springboot.cloud.auth.authentication; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import org.junit.Test; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher; +import org.springframework.web.servlet.handler.HandlerMappingIntrospector; + +import java.util.List; +import java.util.stream.Collectors; + + +public class ApplicationTests { + + @Test + public void testMethod() { + List authorities; + SimpleGrantedAuthority admin = new SimpleGrantedAuthority("ADMIN"); + SimpleGrantedAuthority user = new SimpleGrantedAuthority("USER"); + authorities = Lists.newArrayList(admin, user); + authorities.stream().map(authority -> authority.getAuthority()).collect(Collectors.toList()); + } + + @Test + public void testMethod1() throws JsonProcessingException { + +// Resource resource = new Resource(); +// resource.setCode("user_manager:all"); +// resource.setMethod("GET"); +// resource.setUrl("/users/a"); +// +// ObjectMapper objectMapper = new ObjectMapper(); +// objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); +// +// System.out.println(objectMapper.writeValueAsString(resource)); + } + + @Test + public void testMatcher() { + MvcRequestMatcher mvcRequestMatcher = new MvcRequestMatcher(new HandlerMappingIntrospector(), "/users/{id}"); + System.out.println(mvcRequestMatcher.matches(new MockHttpServletRequest("GET", "/users/1"))); + System.out.println(mvcRequestMatcher.matches(new MockHttpServletRequest("GET", "/users/aaa"))); + System.out.println(mvcRequestMatcher.matches(new MockHttpServletRequest("GET", "/users"))); + System.out.println(mvcRequestMatcher.matches(new MockHttpServletRequest("POST", "/users/1"))); + System.out.println(mvcRequestMatcher.matches(new MockHttpServletRequest("PUT", "/users/1"))); + System.out.println(mvcRequestMatcher.matches(new MockHttpServletRequest("DELETE", "/users/1"))); + } + +} diff --git a/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImplTest.java b/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImplTest.java new file mode 100644 index 0000000..8300238 --- /dev/null +++ b/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/AuthenticationServiceImplTest.java @@ -0,0 +1,31 @@ +package com.springboot.cloud.auth.authentication.service.impl; + +import com.google.common.collect.Sets; +import com.springboot.cloud.auth.authentication.entity.Popedom; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.security.access.SecurityConfig; + +import java.util.Set; + +public class AuthenticationServiceImplTest { + + @Test + public void testIsMatch_假如存在如上资源信息_当给定包含在资源信息时_那么返回true() { + AuthenticationServiceImpl authenticationServiceImpl = new AuthenticationServiceImpl(); + Popedom popedom = new Popedom(); + popedom.setApplicationCode("user_manager:view"); + Set popedoms = Sets.newHashSet(popedom); +// Assert.assertTrue(authenticationServiceImpl.isMatch(new SecurityConfig("user_manager:view"), popedoms)); + } + + @Test + public void testIsMatch_假如存在如上资源信息_当给不包含在资源信息时_那么返回false() { + AuthenticationServiceImpl authenticationServiceImpl = new AuthenticationServiceImpl(); + Popedom popedom = new Popedom(); + popedom.setApplicationCode("user_manager:manager"); + Set popedoms = Sets.newHashSet(popedom); +// Assert.assertFalse(authenticationServiceImpl.isMatch(new SecurityConfig("user_manager:view"), popedoms)); + } + +} \ No newline at end of file diff --git a/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImplTest.java b/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImplTest.java new file mode 100644 index 0000000..6ace8b7 --- /dev/null +++ b/auth/authentication-server/src/test/java/com/springboot/cloud/auth/authentication/service/impl/PopedomServiceImplTest.java @@ -0,0 +1,73 @@ +package com.springboot.cloud.auth.authentication.service.impl; + +import com.springboot.cloud.auth.authentication.provider.PopedomProvider; +import com.springboot.cloud.auth.authentication.rest.HttpServletRequestAuthWrapper; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.security.access.ConfigAttribute; + +//@RunWith(SpringRunner.class) +//@SpringBootTest +public class PopedomServiceImplTest { + +/* private Map resourceConfigAttributes = new HashMap() { + { + MvcRequestMatcher mvcRequestMatcher1 = new MvcRequestMatcher(new HandlerMappingIntrospector(), "/users"); + mvcRequestMatcher1.setMethod(HttpMethod.resolve("POST")); + MvcRequestMatcher mvcRequestMatcher2 = new MvcRequestMatcher(new HandlerMappingIntrospector(), "/users/{id}"); + mvcRequestMatcher2.setMethod(HttpMethod.resolve("PUT")); + MvcRequestMatcher mvcRequestMatcher3 = new MvcRequestMatcher(new HandlerMappingIntrospector(), "/users/{id}"); + mvcRequestMatcher3.setMethod(HttpMethod.resolve("DELETE")); + MvcRequestMatcher mvcRequestMatcher4 = new MvcRequestMatcher(new HandlerMappingIntrospector(), "/users/{id}"); + mvcRequestMatcher4.setMethod(HttpMethod.resolve("GET")); + MvcRequestMatcher mvcRequestMatcher5 = new MvcRequestMatcher(new HandlerMappingIntrospector(), "/users/{id}/order"); + mvcRequestMatcher5.setMethod(HttpMethod.resolve("GET")); + put(mvcRequestMatcher1, new SecurityConfig("user_manager:btn_add")); + put(mvcRequestMatcher2, new SecurityConfig("user_manager:btn_edit")); + put(mvcRequestMatcher3, new SecurityConfig("user_manager:btn_del")); + put(mvcRequestMatcher4, new SecurityConfig("user_manager:view")); + put(mvcRequestMatcher5, new SecurityConfig("user_order:view")); + } + };*/ + + @InjectMocks + private PopedomServiceImpl popedomServiceImpl; + + @Mock + private PopedomProvider popedomProvider; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + } + + @Test + @Ignore + public void testGetConfigAttributesByUrl_假如存在如上资源信息_当请求不存在method的资源时_那么返回NONEXISTENT_URL() { +// ConfigAttribute attributesByUrl = popedomServiceImpl +// .findConfigAttributesByUrl("", new HttpServletRequestAuthWrapper(new MockHttpServletRequest(), "/users/1/order")); +// Assert.assertEquals("NONEXISTENT_URL", attributesByUrl.getAttribute()); + } + + @Test + @Ignore + public void testGetConfigAttributesByUrl_假如存在如上资源信息_当请求url存在参数时_那么返回匹配的资源信息() { +// ConfigAttribute attributesByUrl = popedomServiceImpl +// .findConfigAttributesByUrl("", new HttpServletRequestAuthWrapper(new MockHttpServletRequest(), "/users/1/order")); +// Assert.assertEquals("NONEXISTENT_URL", attributesByUrl.getAttribute()); + } + + @Test + @Ignore + public void testGetConfigAttributesByUrl_假如存在如上资源信息_当请求存在的资源时_那么返回url和method都匹配的资源信息() { +// ConfigAttribute attributesByUrl = popedomServiceImpl +// .findConfigAttributesByUrl("", new HttpServletRequestAuthWrapper(new MockHttpServletRequest(), "/users")); +// Assert.assertEquals("user_manager:btn_add", attributesByUrl.getAttribute()); + } +} \ No newline at end of file diff --git a/auth/authorization-server/.gitignore b/auth/authorization-server/.gitignore new file mode 100644 index 0000000..3a05198 --- /dev/null +++ b/auth/authorization-server/.gitignore @@ -0,0 +1,16 @@ +target/ +logs/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr diff --git a/auth/authorization-server/pom.xml b/auth/authorization-server/pom.xml new file mode 100644 index 0000000..5631978 --- /dev/null +++ b/auth/authorization-server/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + business.chaoran + authorization-server + 0.0.1-SNAPSHOT + war + + + authorization-server + Demo Oauth2 project for Spring Cloud Oauth2 Authorization Server + + + business.chaoran + auth + 0.0.1-SNAPSHOT + + + + + business.chaoran + web + 0.0.1-SNAPSHOT + + + + org.springframework.cloud + spring-cloud-security + + + com.fasterxml.jackson.core + jackson-databind + 2.10.0.pr1 + compile + + + + + com.fasterxml.jackson.core + jackson-core + 2.9.0 + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + com.fasterxml.jackson.core + jackson-annotations + 2.9.0 + + + + + + + + + + + + + org.slf4j + slf4j-simple + compile + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + org.springframework.boot + spring-boot-starter-logging + + + + + javax.servlet + javax.servlet-api + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.4.RELEASE + + + + build-info + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.0.0 + + + authorization-server + + + diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/Oauth2AuthorizationApplication.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/Oauth2AuthorizationApplication.java new file mode 100644 index 0000000..57f6372 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/Oauth2AuthorizationApplication.java @@ -0,0 +1,23 @@ +package com.springboot.auth.authorization; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class Oauth2AuthorizationApplication extends SpringBootServletInitializer { + public static void main(String[] args) { + SpringApplication.run(Oauth2AuthorizationApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(Oauth2AuthorizationApplication.class); + } + +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/AuthorizationServerConfig.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/AuthorizationServerConfig.java new file mode 100644 index 0000000..2037091 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/AuthorizationServerConfig.java @@ -0,0 +1,179 @@ +package com.springboot.auth.authorization.config; + +import com.google.common.collect.Lists; +import com.springboot.auth.authorization.exception.CustomWebResponseExceptionTranslator; +import com.springboot.auth.authorization.oauth2.enhancer.CustomTokenEnhancer; +import com.springboot.auth.authorization.oauth2.granter.MobileTokenGranter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; +import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; +import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer; +import org.springframework.security.oauth2.provider.CompositeTokenGranter; +import org.springframework.security.oauth2.provider.TokenGranter; +import org.springframework.security.oauth2.provider.approval.Approval; +import org.springframework.security.oauth2.provider.approval.ApprovalStore; +import org.springframework.security.oauth2.provider.approval.InMemoryApprovalStore; +import org.springframework.security.oauth2.provider.code.AuthorizationCodeServices; +import org.springframework.security.oauth2.provider.code.InMemoryAuthorizationCodeServices; +import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator; +import org.springframework.security.oauth2.provider.token.TokenEnhancerChain; +import org.springframework.security.oauth2.provider.token.TokenStore; +import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter; +import org.springframework.security.oauth2.provider.token.store.JwtTokenStore; + +import java.util.Arrays; +import java.util.List; + +@Configuration +@EnableAuthorizationServer +public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { + + @Autowired + @Qualifier("authenticationManagerBean") + private AuthenticationManager authenticationManager; + +// @Qualifier("dataSource") +// @Autowired +// DataSource dataSource; + + @Autowired + @Qualifier("userDetailsService") + UserDetailsService userDetailsService; + + /** + * jwt 对称加密密钥 + */ + @Value("${spring.security.oauth2.jwt.signingKey}") + private String signingKey; + + @Override + public void configure(AuthorizationServerSecurityConfigurer oauthServer) { + // 支持将client参数放在header或body中 + oauthServer.allowFormAuthenticationForClients(); + + //认证策略,默认为denyAll() + oauthServer.tokenKeyAccess("isAuthenticated()") + .checkTokenAccess("permitAll()"); + } + + @Override + public void configure(ClientDetailsServiceConfigurer clients) throws Exception { + // 配置客户端信息,从数据库中读取,对应oauth_client_details表 +// clients.jdbc(dataSource); + clients.inMemory().withClient("test_client").secret("$2a$10$2szDKjvKHJCWE6YQNznogOeQF3USZHmCYj1fG7YbfK.vnTgNKLzri").scopes("read") + .authorizedGrantTypes("client_credentials", "authorization_code", "mobile", "password", "refresh_token") + .redirectUris("http://www.baidu.com").accessTokenValiditySeconds(3600).refreshTokenValiditySeconds(3600); + } + + @Override + public void configure(AuthorizationServerEndpointsConfigurer endpoints) { + // 配置token的数据源、自定义的tokenServices等信息,配置身份认证器,配置认证方式,TokenStore,TokenGranter,OAuth2RequestFactory + endpoints.tokenStore(tokenStore()) + .authorizationCodeServices(authorizationCodeServices()) + .approvalStore(approvalStore()) + .exceptionTranslator(customExceptionTranslator()) + .tokenEnhancer(tokenEnhancerChain()) + .authenticationManager(authenticationManager) + .userDetailsService(userDetailsService) + //update by joe_chen add granter + .tokenGranter(tokenGranter(endpoints)); + + } + + /** + * 自定义OAuth2异常处理 + * + * @return CustomWebResponseExceptionTranslator + */ + @Bean + public WebResponseExceptionTranslator customExceptionTranslator() { + return new CustomWebResponseExceptionTranslator(); + } + + /** + * 授权信息持久化实现 + * 密码模式无用 + * @return JdbcApprovalStore + */ + @Bean + public ApprovalStore approvalStore() { + InMemoryApprovalStore memoryApprovalStore = new InMemoryApprovalStore(); + Approval approval = new Approval("1", "test_client", "read", 3600, Approval.ApprovalStatus.APPROVED); + memoryApprovalStore.addApprovals(Arrays.asList(approval)); +// return new JdbcApprovalStore(dataSource); + return memoryApprovalStore; + } + + /** + * 授权码模式持久化授权码code + * 密码模式无用 + * @return JdbcAuthorizationCodeServices + */ + @Bean + protected AuthorizationCodeServices authorizationCodeServices() { + // 授权码存储等处理方式类,使用jdbc,操作oauth_code表 + InMemoryAuthorizationCodeServices authorizationCodeServices = new InMemoryAuthorizationCodeServices(); +// return new JdbcAuthorizationCodeServices(dataSource); + return authorizationCodeServices; + } + + /** + * token的持久化 + * + * @return JwtTokenStore + */ + @Bean + public TokenStore tokenStore() { + return new JwtTokenStore(accessTokenConverter()); + } + + /** + * 自定义token + * + * @return tokenEnhancerChain + */ + @Bean + public TokenEnhancerChain tokenEnhancerChain() { + TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain(); + tokenEnhancerChain.setTokenEnhancers(Arrays.asList(new CustomTokenEnhancer(), accessTokenConverter())); + return tokenEnhancerChain; + } + + /** + * jwt token的生成配置 + * + * @return + */ + @Bean + public JwtAccessTokenConverter accessTokenConverter() { + JwtAccessTokenConverter converter = new JwtAccessTokenConverter(); + converter.setSigningKey(signingKey); + return converter; + } + + /** + * 配置自定义的granter,手机号验证码登陆 + * + * @param endpoints + * @return + */ + public TokenGranter tokenGranter(final AuthorizationServerEndpointsConfigurer endpoints) { + List granters = Lists.newArrayList(endpoints.getTokenGranter()); + granters.add(new MobileTokenGranter( + authenticationManager, + endpoints.getTokenServices(), + endpoints.getClientDetailsService(), + endpoints.getOAuth2RequestFactory())); + return new CompositeTokenGranter(granters); + } + +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/InterceptConfig.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/InterceptConfig.java new file mode 100644 index 0000000..52c8bca --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/InterceptConfig.java @@ -0,0 +1,21 @@ +package com.springboot.auth.authorization.config; + +/* + ********************************************** + * DATE PERSON REASON + * 2020/12/7 FXY Created + ********************************************** + */ + +import com.springboot.cloud.common.web.interceptor.FeignBasicAuthRequestInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class InterceptConfig { + + @Bean + public FeignBasicAuthRequestInterceptor interceptor(){ + return new FeignBasicAuthRequestInterceptor(); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/NacosRegisterConfig.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/NacosRegisterConfig.java new file mode 100644 index 0000000..61af4af --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/NacosRegisterConfig.java @@ -0,0 +1,56 @@ +package com.springboot.auth.authorization.config; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-24 FXY Created + ********************************************** + */ + +import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.context.annotation.Configuration; + +import javax.management.MBeanServer; +import javax.management.ObjectName; +import javax.management.Query; +import java.lang.management.ManagementFactory; +import java.util.Set; + +@Configuration +@Slf4j +public class NacosRegisterConfig implements ApplicationRunner { + + @Autowired(required = false) + private NacosAutoServiceRegistration registration; + + private Integer port; + + public NacosRegisterConfig() { + try { + this.port = Integer.parseInt(getTomcatPort()); + } catch (Exception e) { + log.error("获取tomcat端口出错了,原因:{}", e.toString()); + } + } + + @Override + public void run(ApplicationArguments args) { + if (registration != null && port != null) { + registration.setPort(port); + registration.start(); + } + } + + //获取tomcat端口 + private String getTomcatPort() throws Exception { + MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer(); + Set objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"))); + String port = objectNames.iterator().next().getKeyProperty("port"); + return port; + } + +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/WebServerSecurityConfig.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/WebServerSecurityConfig.java new file mode 100644 index 0000000..8b0749b --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/config/WebServerSecurityConfig.java @@ -0,0 +1,83 @@ +package com.springboot.auth.authorization.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + +import com.springboot.auth.authorization.oauth2.granter.MobileAuthenticationProvider; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Configuration +@EnableWebSecurity +public class WebServerSecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + @Qualifier("userDetailsService") + private UserDetailsService userDetailsService; + + @Autowired + @Qualifier("mobileUserDetailsService") + private UserDetailsService mobileUserDetailsService; + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.csrf().disable(); + http.authorizeRequests() + .antMatchers("/actuator/**").permitAll() + .anyRequest().authenticated() + .and() + .formLogin().permitAll(); + } + + /** + * 注入自定义的userDetailsService实现,获取用户信息,设置密码加密方式 + * + * @param authenticationManagerBuilder + * @throws Exception + */ + @Override + protected void configure(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { + authenticationManagerBuilder + .userDetailsService(userDetailsService) + .passwordEncoder(passwordEncoder()); + // 设置手机验证码登陆的AuthenticationProvider + authenticationManagerBuilder.authenticationProvider(mobileAuthenticationProvider()); + } + + /** + * 将 AuthenticationManager 注册为 bean , 方便配置 oauth server 的时候使用 + */ + @Bean + @Override + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + /** + * 创建手机验证码登陆的AuthenticationProvider + * + * @return mobileAuthenticationProvider + */ + @Bean + public MobileAuthenticationProvider mobileAuthenticationProvider() { + MobileAuthenticationProvider mobileAuthenticationProvider = new MobileAuthenticationProvider(this.mobileUserDetailsService); + mobileAuthenticationProvider.setPasswordEncoder(passwordEncoder()); + return mobileAuthenticationProvider; + } +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/Company.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/Company.java new file mode 100644 index 0000000..588a48c --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/Company.java @@ -0,0 +1,24 @@ +package com.springboot.auth.authorization.entity; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +public class Company { + private String companyId; + private String userId; + private String organizationId; + private String empNo; + private String position; + private Integer isDefault; + private Integer state; + private String mobile; +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/User.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/User.java new file mode 100644 index 0000000..b46dc3c --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/entity/User.java @@ -0,0 +1,31 @@ +package com.springboot.auth.authorization.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class User { + private String id; + private String name; + private Date registryTime; + private String identity; + private String nickName; + private String photo; + private String lastModifier; + private Date lastModifyTime; + private Double state; + private String mobile; + private String email; + private String introduce; + private String avatar; + private String signature; + private String password; + private String username; +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/AuthErrorType.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/AuthErrorType.java new file mode 100644 index 0000000..39a6f9b --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/AuthErrorType.java @@ -0,0 +1,38 @@ +package com.springboot.auth.authorization.exception; + +import com.springboot.cloud.common.core.exception.ErrorType; +import lombok.Getter; + +@Getter +public enum AuthErrorType implements ErrorType { + + INVALID_REQUEST("040001", "无效请求"), + INVALID_CLIENT("040002", "无效client_id"), + INVALID_GRANT("040003", "无效授权"), + INVALID_SCOPE("040004", "无效scope"), + INVALID_TOKEN("040005", "无效token"), + INSUFFICIENT_SCOPE("040010", "授权不足"), + REDIRECT_URI_MISMATCH("040020", "redirect url不匹配"), + ACCESS_DENIED("040030", "拒绝访问"), + METHOD_NOT_ALLOWED("040040", "不支持该方法"), + SERVER_ERROR("040050", "权限服务错误"), + UNAUTHORIZED_CLIENT("040060", "未授权客户端"), + UNAUTHORIZED("040061", "未授权"), + UNSUPPORTED_RESPONSE_TYPE("040070", " 支持的响应类型"), + UNSUPPORTED_GRANT_TYPE("040071", "不支持的授权类型"); + + /** + * 错误类型码 + */ + private String code; + /** + * 错误类型描述信息 + */ + private String mesg; + + AuthErrorType(String code, String mesg) { + this.code = code; + this.mesg = mesg; + } + +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthException.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthException.java new file mode 100644 index 0000000..d327ee6 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthException.java @@ -0,0 +1,20 @@ +package com.springboot.auth.authorization.exception; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.springboot.cloud.common.core.entity.vo.Result; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; + +@EqualsAndHashCode(callSuper = true) +@Data +@JsonSerialize(using = CustomOauthExceptionSerializer.class) +class CustomOauthException extends OAuth2Exception { + + private final Result result; + + CustomOauthException(OAuth2Exception oAuth2Exception) { + super(oAuth2Exception.getSummary(), oAuth2Exception); + this.result = Result.fail(AuthErrorType.valueOf(oAuth2Exception.getOAuth2ErrorCode().toUpperCase()), oAuth2Exception); + } +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthExceptionSerializer.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthExceptionSerializer.java new file mode 100644 index 0000000..3504a3b --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomOauthExceptionSerializer.java @@ -0,0 +1,18 @@ +package com.springboot.auth.authorization.exception; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; + +import java.io.IOException; + +public class CustomOauthExceptionSerializer extends StdSerializer { + public CustomOauthExceptionSerializer() { + super(CustomOauthException.class); + } + + @Override + public void serialize(CustomOauthException value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeObject(value.getResult()); + } +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomWebResponseExceptionTranslator.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomWebResponseExceptionTranslator.java new file mode 100644 index 0000000..1773603 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/CustomWebResponseExceptionTranslator.java @@ -0,0 +1,16 @@ +package com.springboot.auth.authorization.exception; + +import org.springframework.http.ResponseEntity; +import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; +import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator; + +public class CustomWebResponseExceptionTranslator implements WebResponseExceptionTranslator { + + @Override + public ResponseEntity translate(Exception e) { + + OAuth2Exception oAuth2Exception = (OAuth2Exception) e; + return ResponseEntity.status(oAuth2Exception.getHttpErrorCode()) + .body(new CustomOauthException(oAuth2Exception)); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/GlobalExceptionHandlerAdvice.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/GlobalExceptionHandlerAdvice.java new file mode 100644 index 0000000..200a09c --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/exception/GlobalExceptionHandlerAdvice.java @@ -0,0 +1,11 @@ +package com.springboot.auth.authorization.exception; + +import com.springboot.cloud.common.web.exception.DefaultGlobalExceptionHandlerAdvice; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +@Slf4j +@RestControllerAdvice +public class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice { + +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/CustomUserDetailsService.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/CustomUserDetailsService.java new file mode 100644 index 0000000..1bb0744 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/CustomUserDetailsService.java @@ -0,0 +1,49 @@ +package com.springboot.auth.authorization.oauth2; + +import com.springboot.auth.authorization.entity.Company; +import com.springboot.auth.authorization.entity.User; +import com.springboot.auth.authorization.oauth2.authority.CustomGrantedAuthority; +import com.springboot.auth.authorization.service.UserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +@Slf4j +@Service("userDetailsService") +public class CustomUserDetailsService implements UserDetailsService { + + @Autowired + private UserService userService; + + @Override + public UserDetails loadUserByUsername(String payload) { + + User user = userService.getUserByUsernameOrMobile(payload); + log.info("load user by username :{}", user.toString()); + + return new org.springframework.security.core.userdetails.User( + user.getUsername(), + user.getPassword(), //加了密的密码 + user.getState() == 1, //账号是否可用 + user.getState() == 1, //账号未过期 + true, //密码未过期 + user.getState() == 1, //账户未锁定 + this.obtainGrantedCompany(user)); + } + + /** + * 获得登录者所有的公司信息 + * + * @return + */ + protected Set obtainGrantedCompany(User user) { + List companies = userService.getUserAllCompany(user.getId()); + return companies.stream().map(companyUser -> new CustomGrantedAuthority(companyUser.getCompanyId(), companyUser.getIsDefault() == 1)).collect(Collectors.toSet()); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/MobileUserDetailsService.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/MobileUserDetailsService.java new file mode 100644 index 0000000..f21a38d --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/MobileUserDetailsService.java @@ -0,0 +1,42 @@ +package com.springboot.auth.authorization.oauth2; + +import com.springboot.auth.authorization.entity.User; +import com.springboot.auth.authorization.provider.SmsCodeProvider; +import com.springboot.auth.authorization.service.UserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Service; + +import java.util.Collections; + +/** + * 手机验证码登陆, 用户相关获取 + */ +@Slf4j +@Service("mobileUserDetailsService") +public class MobileUserDetailsService extends CustomUserDetailsService { + + @Autowired + private UserService userService; + @Autowired + private SmsCodeProvider smsCodeProvider; + + @Override + public UserDetails loadUserByUsername(String payload) { + User user = userService.getUserByUsernameOrMobile(payload); + log.info("load user by mobile:{}", user.toString()); + + // 如果为mobile模式,从短信服务中获取验证码(动态密码) + String credentials = smsCodeProvider.getSmsCode(payload, "LOGIN"); + + return new org.springframework.security.core.userdetails.User( + user.getUsername(), + credentials, + user.getState() == 1 ? true : false, + user.getState() == 1 ? true : false, + user.getState() == 1 ? true : false, + user.getState() == 1 ? true : false, + super.obtainGrantedCompany(user)); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/authority/CustomGrantedAuthority.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/authority/CustomGrantedAuthority.java new file mode 100644 index 0000000..af55e48 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/authority/CustomGrantedAuthority.java @@ -0,0 +1,36 @@ +package com.springboot.auth.authorization.oauth2.authority; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-05 FXY Created + ********************************************** + */ + + +import lombok.AllArgsConstructor; +import org.springframework.security.core.GrantedAuthority; + +/** + * 根据getter方法进行序列化的 + */ +@AllArgsConstructor +public class CustomGrantedAuthority implements GrantedAuthority { + + private final String company; + private boolean isDefault; + + /** + * 后期可换为角色编号 + * + * @return + */ + @Override + public String getAuthority() { + return company; + } + + public boolean isDefault() { + return isDefault; + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/enhancer/CustomTokenEnhancer.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/enhancer/CustomTokenEnhancer.java new file mode 100644 index 0000000..4b54e3b --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/enhancer/CustomTokenEnhancer.java @@ -0,0 +1,25 @@ +package com.springboot.auth.authorization.oauth2.enhancer; + +import com.google.common.collect.Maps; +import com.springboot.auth.authorization.oauth2.authority.CustomGrantedAuthority; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; +import org.springframework.security.oauth2.common.OAuth2AccessToken; +import org.springframework.security.oauth2.provider.OAuth2Authentication; +import org.springframework.security.oauth2.provider.token.TokenEnhancer; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class CustomTokenEnhancer implements TokenEnhancer { + + @Override + public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) { + Map additionalInfo = Maps.newHashMap(); + additionalInfo.put("companies", authentication.getAuthorities()); + ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo); + return accessToken; + } +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationProvider.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationProvider.java new file mode 100644 index 0000000..223fc2d --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationProvider.java @@ -0,0 +1,16 @@ +package com.springboot.auth.authorization.oauth2.granter; + +import org.springframework.security.authentication.dao.DaoAuthenticationProvider; +import org.springframework.security.core.userdetails.UserDetailsService; + +public class MobileAuthenticationProvider extends DaoAuthenticationProvider { + + public MobileAuthenticationProvider(UserDetailsService userDetailsService) { + super.setUserDetailsService(userDetailsService); + } + + @Override + public boolean supports(Class authentication) { + return MobileAuthenticationToken.class.isAssignableFrom(authentication); + } +} \ No newline at end of file diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationToken.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationToken.java new file mode 100644 index 0000000..9d8439b --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileAuthenticationToken.java @@ -0,0 +1,11 @@ +package com.springboot.auth.authorization.oauth2.granter; + +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; + +public class MobileAuthenticationToken extends UsernamePasswordAuthenticationToken { + + public MobileAuthenticationToken(Authentication authenticationToken) { + super(authenticationToken.getPrincipal(), authenticationToken.getCredentials()); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileTokenGranter.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileTokenGranter.java new file mode 100644 index 0000000..f1470e1 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/oauth2/granter/MobileTokenGranter.java @@ -0,0 +1,53 @@ +package com.springboot.auth.authorization.oauth2.granter; + +import org.springframework.security.authentication.*; +import org.springframework.security.core.Authentication; +import org.springframework.security.oauth2.common.exceptions.InvalidGrantException; +import org.springframework.security.oauth2.provider.*; +import org.springframework.security.oauth2.provider.password.ResourceOwnerPasswordTokenGranter; +import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class MobileTokenGranter extends ResourceOwnerPasswordTokenGranter { + + private static final String GRANT_TYPE = "mobile"; + + private AuthenticationManager authenticationManager; + + public MobileTokenGranter(AuthenticationManager authenticationManager, + AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, + OAuth2RequestFactory requestFactory) { + super(authenticationManager, tokenServices, clientDetailsService, requestFactory, GRANT_TYPE); + this.authenticationManager = authenticationManager; + } + + @Override + protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) { + Map parameters = new LinkedHashMap<>(tokenRequest.getRequestParameters()); + String username = parameters.get("no"); + String password = parameters.get("password"); + // Protect from downstream leaks of password + parameters.remove("no"); + + Authentication userAuth = new UsernamePasswordAuthenticationToken(username, password); + MobileAuthenticationToken mobileAuthenticationToken = new MobileAuthenticationToken(userAuth); + ((AbstractAuthenticationToken) userAuth).setDetails(parameters); + try { + userAuth = this.authenticationManager.authenticate(mobileAuthenticationToken); + } catch (AccountStatusException ase) { + //covers expired, locked, disabled cases (mentioned in section 5.2, draft 31) + throw new InvalidGrantException(ase.getMessage()); + } catch (BadCredentialsException e) { + // If the username/password are wrong the spec says we should send 400/invalid grant + throw new InvalidGrantException(e.getMessage()); + } + if (userAuth == null || !userAuth.isAuthenticated()) { + throw new InvalidGrantException("Could not authenticate user: " + username); + } + + OAuth2Request storedOAuth2Request = getRequestFactory().createOAuth2Request(client, tokenRequest); + return new OAuth2Authentication(storedOAuth2Request, mobileAuthenticationToken); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProvider.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProvider.java new file mode 100644 index 0000000..15f366b --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProvider.java @@ -0,0 +1,21 @@ +package com.springboot.auth.authorization.provider; + +import com.springboot.auth.authorization.entity.Company; +import com.springboot.auth.authorization.entity.User; +import com.springboot.cloud.common.core.entity.vo.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient(name = "organization", fallback = OrganizationProviderFallback.class,path = "organization") +//@FeignClient(name = "organization", fallback = OrganizationProviderFallback.class) +public interface OrganizationProvider { + + @GetMapping(value = "/user/getUserByUsernameOrMobile") + Result getUserByUsernameOrMobile(@RequestParam("payload")String payload); + + @GetMapping(value = "/company/getUserAllCompany") + Result> getUserAllCompany(@RequestParam("userId")String userId); +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProviderFallback.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProviderFallback.java new file mode 100644 index 0000000..7b6cefe --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/OrganizationProviderFallback.java @@ -0,0 +1,23 @@ +package com.springboot.auth.authorization.provider; + +import com.springboot.auth.authorization.entity.Company; +import com.springboot.auth.authorization.entity.User; +import com.springboot.cloud.common.core.entity.vo.Result; +import org.springframework.stereotype.Component; + +import java.util.HashSet; +import java.util.List; + +@Component +public class OrganizationProviderFallback implements OrganizationProvider { + + @Override + public Result getUserByUsernameOrMobile(String payload) { + return Result.success(new User()); + } + + @Override + public Result> getUserAllCompany(String userId) { + return Result.success(new HashSet()); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProvider.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProvider.java new file mode 100644 index 0000000..4baa2f5 --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProvider.java @@ -0,0 +1,19 @@ +package com.springboot.auth.authorization.provider; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * todo 实现短信验证码的服务 + */ +//@FeignClient(name = "sms", fallback = OrganizationProviderFallback.class,path="sms") +public interface SmsCodeProvider { + + /** + * @param mobile + * @return + */ + @GetMapping(value = "/sms/{mobile}") + String getSmsCode(@PathVariable("mobile") String mobile, @RequestParam("businessType") String businessType); +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProviderFallback.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProviderFallback.java new file mode 100644 index 0000000..b6246dd --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/provider/SmsCodeProviderFallback.java @@ -0,0 +1,18 @@ +package com.springboot.auth.authorization.provider; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Component; + +@Component +public class SmsCodeProviderFallback implements SmsCodeProvider { + + @Autowired + PasswordEncoder passwordEncoder; + + @Override + public String getSmsCode(String mobile, String businessType) { + // 该类为mock, 目前暂时没有sms的服务 + return passwordEncoder.encode("123456"); + } +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/UserService.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/UserService.java new file mode 100644 index 0000000..7c9840c --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/UserService.java @@ -0,0 +1,22 @@ +package com.springboot.auth.authorization.service; + +import com.springboot.auth.authorization.entity.Company; +import com.springboot.auth.authorization.entity.User; + +import java.util.List; + +public interface UserService { + + /** + * 通过账号或者手机号得到用户信息 + * @param payload 账号或者手机号 + * @return + */ + User getUserByUsernameOrMobile(String payload); + + /** + * 通过用户编号得到所有所属公司 + */ + List getUserAllCompany(String userId); + +} diff --git a/auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/impl/UserServiceImpl.java b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..7cdcc6d --- /dev/null +++ b/auth/authorization-server/src/main/java/com/springboot/auth/authorization/service/impl/UserServiceImpl.java @@ -0,0 +1,27 @@ +package com.springboot.auth.authorization.service.impl; + +import com.springboot.auth.authorization.entity.Company; +import com.springboot.auth.authorization.entity.User; +import com.springboot.auth.authorization.provider.OrganizationProvider; +import com.springboot.auth.authorization.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class UserServiceImpl implements UserService { + + @Autowired + private OrganizationProvider organizationProvider; + + @Override + public User getUserByUsernameOrMobile(String payload) { + return organizationProvider.getUserByUsernameOrMobile(payload).getData(); + } + + @Override + public List getUserAllCompany(String userId) { + return organizationProvider.getUserAllCompany(userId).getData(); + } +} diff --git a/auth/authorization-server/src/test/java/com/springboot/auth/authorization/ApplicationTests.java b/auth/authorization-server/src/test/java/com/springboot/auth/authorization/ApplicationTests.java new file mode 100644 index 0000000..f561e25 --- /dev/null +++ b/auth/authorization-server/src/test/java/com/springboot/auth/authorization/ApplicationTests.java @@ -0,0 +1,15 @@ +package com.springboot.auth.authorization; + +import org.junit.Test; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + + +public class ApplicationTests { + + @Test + public void contextLoads() { + PasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + System.out.println(passwordEncoder.encode("test_secret")); + } +} diff --git a/auth/pom.xml b/auth/pom.xml new file mode 100644 index 0000000..cdcddd7 --- /dev/null +++ b/auth/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + business.chaoran + auth + 0.0.1-SNAPSHOT + pom + + auth + Demo Auth project for Spring Boot + + + business.chaoran + xin-cloud + 1.0-SNAPSHOT + + + + authentication-server + authentication-client + authorization-server + + + + + org.springframework.security.oauth + spring-security-oauth2 + [2.2.4,) + + + org.springframework.security + spring-security-jwt + RELEASE + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.springframework.boot + spring-boot-starter-web + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.3.2 + + + com.alibaba + druid-spring-boot-starter + 1.1.9 + + + + mysql + mysql-connector-java + 8.0.18 + + + + org.springframework.boot + spring-boot-starter-data-redis + + + diff --git a/common/core/.gitignore b/common/core/.gitignore new file mode 100644 index 0000000..82eca33 --- /dev/null +++ b/common/core/.gitignore @@ -0,0 +1,25 @@ +/target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/build/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ \ No newline at end of file diff --git a/common/core/pom.xml b/common/core/pom.xml new file mode 100644 index 0000000..73ac598 --- /dev/null +++ b/common/core/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + business.chaoran + core + 0.0.1-SNAPSHOT + jar + + core + Demo Core project for Spring Boot + + + UTF-8 + UTF-8 + 1.8 + 1.8 + + + + business.chaoran + common + 0.0.1-SNAPSHOT + + + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + diff --git a/common/core/src/main/java/com/springboot/cloud/common/core/entity/vo/Result.java b/common/core/src/main/java/com/springboot/cloud/common/core/entity/vo/Result.java new file mode 100644 index 0000000..fc7602e --- /dev/null +++ b/common/core/src/main/java/com/springboot/cloud/common/core/entity/vo/Result.java @@ -0,0 +1,167 @@ +package com.springboot.cloud.common.core.entity.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.springboot.cloud.common.core.exception.BaseException; +import com.springboot.cloud.common.core.exception.ErrorType; +import com.springboot.cloud.common.core.exception.SystemErrorType; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; + +import java.time.Instant; +import java.time.ZonedDateTime; + +@ApiModel(description = "rest请求的返回模型,所有rest正常都返回该类的对象") +@Getter +public class Result { + + public static final String SUCCESSFUL_CODE = "000000"; + public static final String SUCCESSFUL_MESG = "处理成功"; + + @ApiModelProperty(value = "处理结果code", required = true) + private String code; + @ApiModelProperty(value = "处理结果描述信息") + private String msg; + @ApiModelProperty(value = "请求结果生成时间戳") + private Instant time; + @ApiModelProperty(value = "处理结果数据信息") + @JsonInclude(JsonInclude.Include.NON_NULL) + private T data; + + public Result() { + this.time = ZonedDateTime.now().toInstant(); + } + + /** + * @param errorType + */ + public Result(ErrorType errorType) { + this.code = errorType.getCode(); + this.msg = errorType.getMesg(); + this.time = ZonedDateTime.now().toInstant(); + } + + /** + * @param errorType + * @param data + */ + public Result(ErrorType errorType, T data) { + this(errorType); + this.data = data; + } + + /** + * 内部使用,用于构造成功的结果 + * + * @param code + * @param msg + * @param data + */ + private Result(String code, String msg, T data) { + this.code = code; + this.msg = msg; + this.data = data; + this.time = ZonedDateTime.now().toInstant(); + } + + /** + * 快速创建成功结果并返回结果数据 + * + * @param data + * @return Result + */ + public static Result success(Object data) { + return new Result<>(SUCCESSFUL_CODE, SUCCESSFUL_MESG, data); + } + + /** + * 快速创建成功结果 + * + * @return Result + */ + public static Result success() { + return success(null); + } + + /** + * 系统异常类没有返回数据 + * + * @return Result + */ + public static Result fail() { + return new Result(SystemErrorType.SYSTEM_ERROR); + } + + /** + * 系统异常类没有返回数据 + * + * @param baseException + * @return Result + */ + public static Result fail(BaseException baseException) { + return fail(baseException, null); + } + + /** + * 系统异常类并返回结果数据 + * + * @param data + * @return Result + */ + public static Result fail(BaseException baseException, Object data) { + return new Result<>(baseException.getErrorType(), data); + } + + /** + * 系统异常类并返回结果数据 + * + * @param errorType + * @param data + * @return Result + */ + public static Result fail(ErrorType errorType, Object data) { + return new Result<>(errorType, data); + } + + /** + * 系统异常类并返回结果数据 + * + * @param errorType + * @return Result + */ + public static Result fail(ErrorType errorType) { + return Result.fail(errorType, null); + } + + /** + * 系统异常类并返回结果数据 + * + * @param data + * @return Result + */ + public static Result fail(Object data) { + return new Result<>(SystemErrorType.SYSTEM_ERROR, data); + } + + + /** + * 成功code=000000 + * + * @return true/false + */ + @JsonIgnore + public boolean isSuccess() { + return SUCCESSFUL_CODE.equals(this.code); + } + + /** + * 失败 + * + * @return true/false + */ + @JsonIgnore + public boolean isFail() { + return !isSuccess(); + } +} diff --git a/common/core/src/main/java/com/springboot/cloud/common/core/exception/BaseException.java b/common/core/src/main/java/com/springboot/cloud/common/core/exception/BaseException.java new file mode 100644 index 0000000..020e6ed --- /dev/null +++ b/common/core/src/main/java/com/springboot/cloud/common/core/exception/BaseException.java @@ -0,0 +1,32 @@ +package com.springboot.cloud.common.core.exception; + +import lombok.Getter; + +@Getter +public class BaseException extends RuntimeException { + /** + * 异常对应的错误类型 + */ + private final ErrorType errorType; + + /** + * 默认是系统异常 + */ + public BaseException() { + this.errorType = SystemErrorType.SYSTEM_ERROR; + } + + public BaseException(ErrorType errorType) { + this.errorType = errorType; + } + + public BaseException(ErrorType errorType, String message) { + super(message); + this.errorType = errorType; + } + + public BaseException(ErrorType errorType, String message, Throwable cause) { + super(message, cause); + this.errorType = errorType; + } +} diff --git a/common/core/src/main/java/com/springboot/cloud/common/core/exception/ErrorType.java b/common/core/src/main/java/com/springboot/cloud/common/core/exception/ErrorType.java new file mode 100644 index 0000000..ba712eb --- /dev/null +++ b/common/core/src/main/java/com/springboot/cloud/common/core/exception/ErrorType.java @@ -0,0 +1,17 @@ +package com.springboot.cloud.common.core.exception; + +public interface ErrorType { + /** + * 返回code + * + * @return + */ + String getCode(); + + /** + * 返回mesg + * + * @return + */ + String getMesg(); +} diff --git a/common/core/src/main/java/com/springboot/cloud/common/core/exception/ServiceException.java b/common/core/src/main/java/com/springboot/cloud/common/core/exception/ServiceException.java new file mode 100644 index 0000000..0742efb --- /dev/null +++ b/common/core/src/main/java/com/springboot/cloud/common/core/exception/ServiceException.java @@ -0,0 +1,11 @@ +package com.springboot.cloud.common.core.exception; + +/** + * Created by zhoutaoo on 2018/6/2. + */ +public class ServiceException extends BaseException { + + //TODO 对业务异常的返回码进行校验,规范到一定范围内 + + +} diff --git a/common/core/src/main/java/com/springboot/cloud/common/core/exception/SystemErrorType.java b/common/core/src/main/java/com/springboot/cloud/common/core/exception/SystemErrorType.java new file mode 100644 index 0000000..5e4bce1 --- /dev/null +++ b/common/core/src/main/java/com/springboot/cloud/common/core/exception/SystemErrorType.java @@ -0,0 +1,34 @@ +package com.springboot.cloud.common.core.exception; + +import lombok.Getter; + +@Getter +public enum SystemErrorType implements ErrorType { + + SYSTEM_ERROR("-1", "系统异常"), + SYSTEM_BUSY("000001", "系统繁忙,请稍候再试"), + + GATEWAY_NOT_FOUND_SERVICE("010404", "服务未找到"), + GATEWAY_ERROR("010500", "网关异常"), + GATEWAY_CONNECT_TIME_OUT("010002", "网关超时"), + + ARGUMENT_NOT_VALID("020000", "请求参数校验不通过"), + INVALID_TOKEN("020001", "无效token"), + UPLOAD_FILE_SIZE_LIMIT("020010", "上传文件大小超过限制"), + + DUPLICATE_PRIMARY_KEY("030000","唯一键冲突"); + + /** + * 错误类型码 + */ + private String code; + /** + * 错误类型描述信息 + */ + private String mesg; + + SystemErrorType(String code, String mesg) { + this.code = code; + this.mesg = mesg; + } +} diff --git a/common/core/src/main/java/com/springboot/cloud/common/core/util/UserContextHolder.java b/common/core/src/main/java/com/springboot/cloud/common/core/util/UserContextHolder.java new file mode 100644 index 0000000..7ba5ace --- /dev/null +++ b/common/core/src/main/java/com/springboot/cloud/common/core/util/UserContextHolder.java @@ -0,0 +1,84 @@ +package com.springboot.cloud.common.core.util; + +import com.google.common.collect.Maps; + +import java.util.List; +import java.util.Map; +import java.util.Optional; + +/** + * {"companies":[{"default":true,"authority":"1"},{"default":false,"authority":"2"}],"user_name":"admin","scope":["read"],"exp":1610100088,"authorities":["1","2"],"jti":"nt9bTYbUe8IzuEgfAz70nwaMveI","client_id":"test_client"} + */ + +/** + * 用户上下文 + */ +public class UserContextHolder { + + private ThreadLocal> threadLocal; + + private UserContextHolder() { + this.threadLocal = new ThreadLocal<>(); + } + + /** + * 创建实例 + * + * @return + */ + public static UserContextHolder getInstance() { + return SingletonHolder.sInstance; + } + + /** + * 静态内部类单例模式 + * 单例初使化 + */ + private static class SingletonHolder { + private static final UserContextHolder sInstance = new UserContextHolder(); + } + + /** + * 用户上下文中放入信息 + * + * @param map + */ + public void setContext(Map map) { + threadLocal.set(map); + } + + /** + * 获取上下文中的信息 + * + * @return + */ + public Map getContext() { + return threadLocal.get(); + } + + /** + * 获取上下文中的用户名 + * + * @return + */ + public String getUsername() { + return Optional.ofNullable(threadLocal.get()).orElse(Maps.newHashMap()).get("user_name"); + } + + /** + * 获取上下文中用户登录的公司 + * + * @return + */ + public String getCurrentCompany() { + return Optional.ofNullable(threadLocal.get()).orElse(Maps.newHashMap()).get("company"); + } + + /** + * 清空上下文 + */ + public void clear() { + threadLocal.remove(); + } + +} diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 0000000..a65479c --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + business.chaoran + common + 0.0.1-SNAPSHOT + pom + + common + Demo Common project for Spring Boot + + + core + web + + + + + commons-lang + commons-lang + 2.6 + + + org.springframework + spring-core + 5.0.11.RELEASE + + + + org.projectlombok + lombok + 1.18.10 + provided + + + + junit + junit + 4.12 + test + + + + diff --git a/common/web/pom.xml b/common/web/pom.xml new file mode 100644 index 0000000..0b47901 --- /dev/null +++ b/common/web/pom.xml @@ -0,0 +1,102 @@ + + + 4.0.0 + + business.chaoran + web + 0.0.1-SNAPSHOT + jar + + web + Demo Web project for Spring Boot + + + UTF-8 + UTF-8 + 1.8 + 1.8 + + + + business.chaoran + common + 0.0.1-SNAPSHOT + + + + + business.chaoran + core + 0.0.1-SNAPSHOT + + + + org.springframework + spring-web + 5.0.4.RELEASE + + + org.springframework + spring-webmvc + 5.1.0.RELEASE + + + com.fasterxml.jackson.core + jackson-databind + 2.10.0.pr1 + + + + com.baomidou + mybatis-plus-boot-starter + 3.1.0 + + + org.mybatis + mybatis-spring + 2.0.0 + + + + org.springframework.boot + spring-boot-starter-data-redis + 2.1.4.RELEASE + + + org.apache.commons + commons-pool2 + 2.6.0 + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + org.springframework + spring-test + 5.1.6.RELEASE + + + org.springframework.boot + spring-boot-starter-test + test + RELEASE + + + org.mybatis + mybatis + 3.5.1 + compile + + + io.github.openfeign + feign-core + 10.1.0 + + + diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseForm.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseForm.java new file mode 100644 index 0000000..758e73f --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseForm.java @@ -0,0 +1,43 @@ +package com.springboot.cloud.common.web.entity.form; + +import com.springboot.cloud.common.web.entity.po.BasePo; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; + +@ApiModel +@Slf4j +@Data +public class BaseForm { + /** + * 用户名 + */ + private String username; + + /** + * Form转化为Po,进行后续业务处理 + * + * @param clazz + * @return + */ + public T toPo(Class clazz) { + T t = BeanUtils.instantiateClass(clazz); + BeanUtils.copyProperties(this, t); + return t; + } + + /** + * Form转化为Po,进行后续业务处理 + * + * @param id + * @param clazz + * @return + */ + public T toPo(String id, Class clazz) { + T t = BeanUtils.instantiateClass(clazz); + t.setId(id); + BeanUtils.copyProperties(this, t); + return t; + } +} diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java new file mode 100644 index 0000000..3bdaa5d --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java @@ -0,0 +1,44 @@ +package com.springboot.cloud.common.web.entity.form; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.springboot.cloud.common.web.entity.param.BaseParam; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; + +@ApiModel +@Slf4j +@Data +public class BaseQueryForm

extends BaseForm { + /** + * 分页查询的参数,当前页数 + */ + private long current = 1; + /** + * 分页查询的参数,当前页面每页显示的数量 + */ + private long size = 10; + + /** + * Form转化为Param + * + * @param clazz + * @return + */ + public P toParam(Class

clazz) { + P p = BeanUtils.instantiateClass(clazz); + BeanUtils.copyProperties(this, p); + return p; + } + + /** + * 从form中获取page参数,用于分页查询参数 + * + * @return + */ + public Page getPage() { + return new Page(this.getCurrent(), this.getSize()); + } + +} diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java new file mode 100644 index 0000000..a192322 --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.common.web.entity.param; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.springboot.cloud.common.web.entity.po.BasePo; +import lombok.Data; + +import java.util.Date; + + +@Data +public class BaseParam { + private Date createdTimeStart; + private Date createdTimeEnd; + + public QueryWrapper build() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge(null != this.createdTimeStart, "created_time", this.createdTimeStart) + .le(null != this.createdTimeEnd, "created_time", this.createdTimeEnd); + return queryWrapper; + } +} diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java new file mode 100644 index 0000000..c21f2b4 --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java @@ -0,0 +1,29 @@ +package com.springboot.cloud.common.web.entity.po; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class BasePo implements Serializable { + public final static String DEFAULT_USERNAME = "system"; + @TableId(type = IdType.ID_WORKER_STR) + private String id; + + @TableField(fill = FieldFill.INSERT) + private String createdBy; + + @TableField(fill = FieldFill.INSERT) + private Date createdTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updatedBy; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updatedTime; +} diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java new file mode 100644 index 0000000..226933f --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java @@ -0,0 +1,13 @@ +package com.springboot.cloud.common.web.entity.vo; + +import com.springboot.cloud.common.web.entity.po.BasePo; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +public class BaseVo implements Serializable { + private String id; +} diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java b/common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java new file mode 100644 index 0000000..1184e36 --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java @@ -0,0 +1,59 @@ +package com.springboot.cloud.common.web.exception; + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.common.core.exception.BaseException; +import com.springboot.cloud.common.core.exception.SystemErrorType; +import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingServletRequestParameterException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.multipart.MultipartException; + +@Slf4j +public class DefaultGlobalExceptionHandlerAdvice { + + @ExceptionHandler(value = {MissingServletRequestParameterException.class}) + public Result missingServletRequestParameterException(MissingServletRequestParameterException ex) { + log.error("missing servlet request parameter exception:{}", ex.getMessage()); + return Result.fail(SystemErrorType.ARGUMENT_NOT_VALID); + } + + @ExceptionHandler(value = {MultipartException.class}) + public Result uploadFileLimitException(MultipartException ex) { + log.error("upload file size limit:{}", ex.getMessage()); + return Result.fail(SystemErrorType.UPLOAD_FILE_SIZE_LIMIT); + } + + @ExceptionHandler(value = {MethodArgumentNotValidException.class}) + public Result serviceException(MethodArgumentNotValidException ex) { + log.error("service exception:{}", ex.getMessage()); + return Result.fail(SystemErrorType.ARGUMENT_NOT_VALID, ex.getBindingResult().getFieldError().getDefaultMessage()); + } + + @ExceptionHandler(value = {DuplicateKeyException.class}) + public Result duplicateKeyException(DuplicateKeyException ex) { + log.error("primary key duplication exception:{}", ex.getMessage()); + return Result.fail(SystemErrorType.DUPLICATE_PRIMARY_KEY); + } + + @ExceptionHandler(value = {BaseException.class}) + public Result baseException(BaseException ex) { + log.error("base exception:{}", ex.getMessage()); + return Result.fail(ex.getErrorType()); + } + + @ExceptionHandler(value = {Exception.class}) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public Result exception() { + return Result.fail(); + } + + @ExceptionHandler(value = {Throwable.class}) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public Result throwable() { + return Result.fail(); + } +} \ No newline at end of file diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java b/common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java new file mode 100644 index 0000000..eec4c41 --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java @@ -0,0 +1,36 @@ +package com.springboot.cloud.common.web.handler; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.springboot.cloud.common.core.util.UserContextHolder; +import com.springboot.cloud.common.web.entity.po.BasePo; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.ibatis.reflection.MetaObject; + +import java.time.ZonedDateTime; +import java.util.Date; + +@Slf4j +public class PoMetaObjectHandler implements MetaObjectHandler { + /** + * 获取当前访问用户,为空返回默认system + * + * @return + */ + private String getCurrentUsername() { + return StringUtils.defaultIfBlank(UserContextHolder.getInstance().getUsername(), BasePo.DEFAULT_USERNAME); + } + + @Override + public void insertFill(MetaObject metaObject) { + this.setInsertFieldValByName("createdBy", getCurrentUsername(), metaObject); + this.setInsertFieldValByName("createdTime", Date.from(ZonedDateTime.now().toInstant()), metaObject); + this.updateFill(metaObject); + } + + @Override + public void updateFill(MetaObject metaObject) { + this.setUpdateFieldValByName("updatedBy", getCurrentUsername(), metaObject); + this.setUpdateFieldValByName("updatedTime", Date.from(ZonedDateTime.now().toInstant()), metaObject); + } +} \ No newline at end of file diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/FeignBasicAuthRequestInterceptor.java b/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/FeignBasicAuthRequestInterceptor.java new file mode 100644 index 0000000..e8b3f47 --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/FeignBasicAuthRequestInterceptor.java @@ -0,0 +1,46 @@ +package com.springboot.cloud.common.web.interceptor; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-04 FXY Created + ********************************************** + */ + + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.DigestUtils; + +import java.util.Collection; +import java.util.Map; + + +@Slf4j +public class FeignBasicAuthRequestInterceptor implements RequestInterceptor { + + public FeignBasicAuthRequestInterceptor(){ + log.info("========================加载自定义拦截器========================="); + } + + //服务间调用头 + private static final String SERVER_CLIENT_TOKEN="server-client-token"; + //服务间调用秘钥 + private static final String SERVER_CLIENT_SECRET="server"; + //网关调用服务头 + private static final String X_CLIENT_TOKEN="x-client-token"; + + @Override + public void apply(RequestTemplate requestTemplate) { + String url = requestTemplate.path(); + Map> headers = requestTemplate.headers(); + if(!headers.containsKey(X_CLIENT_TOKEN)){ + String method = requestTemplate.method(); + String originStr = new StringBuilder().append(url).append(method).append(SERVER_CLIENT_TOKEN).append(SERVER_CLIENT_SECRET).toString(); + // 加入自定义头信息 + String md5Secret = DigestUtils.md5DigestAsHex(originStr.getBytes()); + requestTemplate.header(SERVER_CLIENT_TOKEN, md5Secret); + } + } +} \ No newline at end of file diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java b/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java new file mode 100644 index 0000000..261019f --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java @@ -0,0 +1,87 @@ +package com.springboot.cloud.common.web.interceptor; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.common.core.util.UserContextHolder; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.lang.Nullable; +import org.springframework.util.DigestUtils; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Map; +import java.util.Optional; + +/** + * 用户信息拦截器 + */ +@Slf4j +public class UserInterceptor implements HandlerInterceptor { + /** + * 服务间调用token用户信息,格式为json + * { + * "user_name":"必须有" + * "自定义key:"value" + * } + */ + //获取相关授权信息请求头 + private static final String X_CLIENT_TOKEN_USER = "x-client-token-user"; + + //网关调用服务请求头 + private static final String X_CLIENT_TOKEN = "x-client-token"; + + //网关调用服务秘钥 + private static final String X_CLIENT_SECRET = "gateway-web"; + + //服务间调用请求头 + private static final String SERVER_CLIENT_TOKEN = "server-client-token"; + + //服务间调用秘钥 + private static final String SERVER_CLIENT_SECRET = "server"; + + //当前用户登录公司 + private static final String USER_CURRENT_COMPANY = "company"; + + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + //从网关获取并校验,通过校验就可信任x-client-token-user中的信息 + boolean b = checkToken(request); + if (!b) { + //重定向到登录前端 + response.sendRedirect("https://www.baidu.com"); + return b; + } + + //放入上下文数据 + String userInfoString = StringUtils.defaultIfBlank(request.getHeader(X_CLIENT_TOKEN_USER), "{}"); + Map context = new ObjectMapper().readValue(userInfoString, Map.class); + context.put("company", request.getHeader(USER_CURRENT_COMPANY)); + UserContextHolder.getInstance().setContext(context); + return true; + } + + private boolean checkToken(HttpServletRequest request) { + String method = request.getMethod(); + String url = request.getServletPath(); + Optional serverToken = Optional.ofNullable(request.getHeader(SERVER_CLIENT_TOKEN)); + Optional clientToken = Optional.ofNullable(request.getHeader(X_CLIENT_TOKEN)); + if (serverToken.isPresent()) { + //如果是服务间相互调用不需要加contextPath,因为feign拦截器中加密是根据servletPath来加密的,此处也是根据servletPath解密的 + String originStr = new StringBuilder().append(url).append(method).append(SERVER_CLIENT_TOKEN).append(SERVER_CLIENT_SECRET).toString(); + return DigestUtils.md5DigestAsHex(originStr.getBytes()).equals(serverToken.get()); + } else if (clientToken.isPresent()) { + //如果是网关调用服务,网关服务需要加上contextPath + String originStr = new StringBuilder().append(request.getContextPath().concat(url)).append(method).append(X_CLIENT_TOKEN).append(X_CLIENT_SECRET).toString(); + return DigestUtils.md5DigestAsHex(originStr.getBytes()).equals(clientToken.get()); + } else { + return false; + } + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { + UserContextHolder.getInstance().clear(); + } +} diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java b/common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java new file mode 100644 index 0000000..2d0257a --- /dev/null +++ b/common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java @@ -0,0 +1,48 @@ +package com.springboot.cloud.common.web.redis; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.CachingConfigurerSupport; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; + +import java.time.Duration; + +@Configuration +public class RedisConfig extends CachingConfigurerSupport { + + @Bean + public CacheManager cacheManager(RedisConnectionFactory factory) { + //对象的序列化 + RedisSerializationContext.SerializationPair valueSerializationPair + = RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer()); + //全局redis缓存过期时间 + RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() + .entryTtl(Duration.ofDays(1)) +// .serializeKeysWith() + .serializeValuesWith(valueSerializationPair); + + return new RedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(factory), redisCacheConfiguration); + } + + private Jackson2JsonRedisSerializer jackson2JsonRedisSerializer() { + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); + jackson2JsonRedisSerializer.setObjectMapper(objectMapper()); + return jackson2JsonRedisSerializer; + } + + private ObjectMapper objectMapper() { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + return objectMapper; + } +} \ No newline at end of file diff --git a/common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java b/common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java new file mode 100644 index 0000000..b6043f4 --- /dev/null +++ b/common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java @@ -0,0 +1,12 @@ +package com.springboot.cloud.common.web.exception; + +import org.junit.Test; + +public class DefaultGlobalExceptionHandlerAdviceTest { + + @Test + public void testMethod() { + + } + +} \ No newline at end of file diff --git a/common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java b/common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java new file mode 100644 index 0000000..8d761a1 --- /dev/null +++ b/common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java @@ -0,0 +1,27 @@ +package com.springboot.cloud.common.web.interceptor; + +import com.springboot.cloud.common.core.util.UserContextHolder; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; + +public class UserInterceptorTest { + @Test + public void preHandle_当未设置token_user_那么正常处理下一个handle() throws Exception { + UserInterceptor userInterceptor = new UserInterceptor(); + MockHttpServletRequest request = new MockHttpServletRequest(); + MockHttpServletResponse response = new MockHttpServletResponse(); + userInterceptor.preHandle(request, response, new Object()); + } + + @Test + public void preHandle_当设置token的username_那么username可以在线程中拿出来用() throws Exception { + UserInterceptor userInterceptor = new UserInterceptor(); + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addHeader("x-client-token-user", "{\"user_name\":\"zhangsan\"}"); + MockHttpServletResponse response = new MockHttpServletResponse(); + userInterceptor.preHandle(request, response, new Object()); + Assert.assertEquals(UserContextHolder.getInstance().getUsername(), "zhangsan"); + } +} \ No newline at end of file diff --git a/doc/连锁ERP架构.xmind b/doc/连锁ERP架构.xmind new file mode 100644 index 0000000000000000000000000000000000000000..33fb79dcf12421e5cb0ff86dd51604f84b31c49d GIT binary patch literal 222059 zcmeFYXIN8RyERG^L{StUMLJ4TN|4^01yBSm^s0m^y%SnMEFirlAWa2CdJlvalum$9 zqz8hO(1|2K=$yr~&-+~OyZ8Rizw_t2OfHg1R#wSebB_DI#~Aa87B$T|iqnVm&B&*J zH~!z3^T4~Fy|=TK%S#6*Pthm;@x`vSSFZ82)D)+G*Z=d2UjNz$dVeAiv5%>-+HjwWH|;>n_dmn*sbI@2y(oB+vG z<|AijWRNl&>nllVgdQU<=;nIO=gZuxArzEUG-ogUFOB|3FND=T8q)lqwgbC{{yIbB zU~%<--~Yc3t>R@`|5ZvvB+k8|eRh zt*TO#YJZOMKX3M*e)-?VzG}#ye)-cc{~*pEeEFZiar()he)-cc|Mb8g#QcMpe-QIe zj`J5ghJOIzpT-|#_=608kl_z9`~wL8H2xsNA7uE041bW}A3*r0 z@dp|HAj2PI_=61p0Kz|wKgjS08UAlWhWGa-1OMd(_&1^ckMi=*tpAV3pMLp|?)blL zHvE|Ze_Sm87>E9?@h9^CiTwXRV%;(P%yfXOTj0_5=s?MoV-ydI}Jej??;7DA~ z%Zh;DQxztv97rhHHv`j)qZUx5=^%2Wk@c^)!Tr)MO$#GNe!t#YtstDC{c~RY|2EqH zhWJD1`Llz^s5T|8Q`4Is)0iEKdNw~V%VF3zIoa?7vxVPn#PloD*hxrOHu*bUYar@l zjeb_xMLFT)z0Pc&pqSzstm4Ri3qfeT<(s_H$>I6Uo=QwIsI+1K)!{bY6kP9&cm?Ua zAT#|JI9ke}sA)xT!7fo-+CjKxO}u<{BcMa5v_TyEwZmnIKW1$xpf*ca!MQ%g?FT&? zQ$uKY&cLELA3zQo);EmdKup@^9K|dL1U4M)D7er6dLK+ctn~kybVWsrqV@&b*?h6_ z7s(aq(x}aLw$cWl=^#R5EuraPE?Nc`WoQAZUhwvxIX-9&V>|)ZI?p#?q!!t;wfAD7 z%1kvlce}O0pv6a%yDNpI-Hxu-pDk!D1v0Us{u_fL{8>&Fk0#lT^BhYWo7N`FHMpME zIhAeVH+x4d8Ap%8TLL=PDtkwWq-g0W@f~cV9sNulp(3CGxD1}a4_6J0Kt9v?=qu)%WevsNSU1H!$7`}IESR=A*@sC9+) zzwW(bh+t?nF!fHZJ;uni`a?}>Xz0e3cV}95w}x~zYAxwFu?q4&X17NU=H$T*IA5Hn zD?O&7QO3`$VSmN3xWFS5`m2ptFK2rKQtVW9>gZEwHFa&|2#S%F$EUeY8zJW&ZDKt! z9V~X49Ok|&>>ZrGvu+2~P(5sm3Xxv64Ln!`j+IOVsFo(;&5dL*j-n|h_kZv{8bGl88*C`710mcRVY zgx!hk306YGWWldltr0vMArPbFGs#y$wV5)f6TUp53*1$Ruh;4XpTYk6hg=h)E}PRc zs-evet`nT6m!(s~ul@2J6UP{7^tQ|)-+q?wO9png;9O^GBZavr4wFXOk6bC=34K$( z(Um#`=Ap+D-nq^(MMGt36DF%ATy#4VHN!sj+hZaZRn}$v|1pK4B0{*GA8#qbPA60_Q>e`Jq2XHjXp`7blte4g zl~)ZdJ3!8jML|42);@u%jZP}oNi=}F#^-Kke9 zUFpZ^GW++!s_^AS_0#I^_p_#RXN$z_7Bf6;A;q@n(M@r!6Ff6>PUG*{NcSHRM~}Rx z1+oH}Bzk4RPEF(O?rsF-@&Ve_2a{j<*ht<%KQF(BajzE?mPRwsR^Id&d?+ANT4U;h z6v3x^?xc9ejOYhI>j}q9o%DmjeNd&H=>JSj4~c+z7Zo$40?Oo9xlh_pM?Y9GsQC@>-A$Gk*^NcBASykTSLzHZX&is+L1hYA-B?`B> z39X+!Co<9$6kG3q zxj*KYeZgw*A%6s;%Hf@ohW!b@RNC?a=w&wVH?0bR93qKq9m#0$>0{db(plndo$#*|sc7kK%Y-6t)8Y#;^RxwxH`mHiM(7`FH zAJw}K;J%3d8>AP$?5aboBGDe}vAVvw$DGws3O5tqs5{6U6crlG^dshX=5kgpAS9O3 zJwDvF>f&RL4bIEF%yWJ)(|>=tLUQ?Lq%ixanWuS!g#DAP30DGBVACN{XcL}xY|@@- zv0Btl8XIJ_3Xu$f91n zp@N_aCS6bxee!uwBy?zJ(wT$MNS<~J%1iZMk=^>8ZS^(PHp)D}OXzb;^(gMnqv0Ya z^f60jl*+W9jT}y31TZb$s6-Zj5d*mzZ`#k9(1X&w9dn8d4gwW8axWi zT_ySs>8hC1H+#@`M$(!+dtFt8n6x{gMnkjw_fz>oWY?2UgvlvtCht61UfBffAQ$Hr z;1)3r0w&o?zh~|(G`Y7J#7AB?$$ZL7;;r*_5^M$7|>VcgEmd~leX5LeCam&o== z(Z;{%xN4#FRfwsV9Ufdo04{+zAzK62C6}h`EnZi+XB8oy*N9w&u!LxfZ?b6bwhNal9AlxyH!mMByrXuJM3^{a4l>M#@- za^ja1PF_>;$!3%U9RPXK8Le9K7&x}0sqvy9`Vk1(YUSR+;hQX$;X&NAsc)fmpcbva z395Bd6$WrK*RpR9pXS28T1xI967bw2Cz#D#^ z>`r@{v;L1#ub$uHa394++{1yUBj1;sm*oby*aP1X*-QL*TF5z0*umt$93HMoNQ!ZiN=p;?34hM6WEME1(B z3YY)dUu~lo$Y8<+A7~dIGb;Xmf<#U9NMMYDGlw4=pGp31T2rDBv(scJ_0)jN=D{-r z178Kx24a$M>m+!2!LZvSaY%Pmx#@7F@EIiWr70p_WIaWT+Lrrg9$C$Oejo@O|KOV7 z%jenA8-ppj#%X+4BLBy`S@`10WtshY*=4)kB(#4!GN;}#FmK~{rwu-vj zg*2jygtbALjysF#o~@thxSkwmXg$gF>UQAUo$#8wfX0Zsb*tWnw>Z%_>|v3N;~r2? z6dC7R3Tyrb(a=#Lty$sDvXbN~Ux^j&v633P@TP6S2W!T#0c;aVXR{Ep7-3#VFbjtM zcz86MbrQ(ir%d{J-N&J$NHX2;OT?qMFW>obK@Z)X5DN$qH50H(pK>15%)8e+muj{D z-bG=Rz6Dv0t2r4y`^LEyqJ*>&d-Hm7lr*>|VlGChLeUb`f&@+p?{_1c`#N0BSvWc& z`mUZhOpVRsU_jbfiWL%V$#d#eGcmZzIkDI&TSQh9I|;;1nG)7KF+y6xF%EG%o!PO; z-Dn2Yj;t52mwX2|%g14pRVM9{S)%vq)gPFU93gKPVA11tSyKBMKDK-AY2_WDP@5f$ zvn^Y_c3L<2-9gi64eo!Wldw#oaf_e;6QQmyYVRH~nsBe^;*Zo-KB}^D z=s28m7f5Fhn+~ecyDf#|5`n^BJ~eo;z~nz(;UOqgDem;DiX_VZM6m9o&|t+xA-E&i zs#nT@Yr%~a?8+i8T~Ph81>R2WJL#FVyOZWRmy*3-^XR0?sbe5>*BovKkBhz zk=gZqs|QjW&tBXp7W@I?^fShK4fXPMzM^qJ_Pm@sc4gr|azBdJO19()2|SDt&{~qR z@Bai;M$B`=hL(|NS_{1$o-B!$QFYuQa2wX1y#9V@3{p$EF~djQCmP!O&S8&mupmX} zASd8>;vP1OJzL;ms^l}3EgYG0)nQy*bIN8^2`vsE(wQs~UiW)Zdi025FG$UVL?Bfs zU`E-+@jD0X?t1wKJ!OT+o5f->k)R5<$5O+3HkL#wGM0p?QFH|`Y&ZsP5p0v+gGTm_ zd<$Vq&x=)l!WIngEQ9jB|hnsq^OY7>g29u6SnJStq=pN$m#vbYg&fjP$}Pf;yv_>sBq z8v9Unmb5>|Pld0Ubg|4CzGptRG*|!-q+v^vvA4z_$MVJ!ec<0NEkm zt^0{%p@_7jF+VXE2v)HQi#(VC&~-K&Zf@w_lzgREP0IEYA~7g zZD*Lx*tkf=a%t# zeUb7p1=$4uRalcO?Y2^od0C>6UFbEU`IXPm~yEsS` z>)29iqLDXV*xeM!suEU`TN{jFQ3M^O<$hTNO?5X}Z|fU$NNvQ!+QZ&6MBlrJMPW}? z!<8Gs1-J8}$~!pgX&z=5XtGIbqSsyP@4-{RJL6UarIRZDyz$vC3b7ynn>h zwd10B9gI)LbGi3&HJ*EYV)dBaF5O#aOJy#_;Z*4l@FuI!oP(;W{3!D5pGk!N9KNKQQd~_Zm2o{TD(Vs+2 z)7&SLUI>`d-iBZhK>-|kRPPxQ>b%#PgnZ5N50wd_-Yd&?hyvRJrW~6rGyjUGNPP#l z%X~fPGKT}_nhy|sra~rU2WjLq@L;wLZths59 z5Un`r(R9zGQ6qy&=f(wm?uy7{NF*KXsP9C|5GIAWM{8=FoDz#J+xVL1dYe)Y^t5jF z9Ga0_Tl6#VAVV#8#dWjoS_Iq@BK3}eWr9f-h){$^8Ck@1$#Z&JiT)r`uMGNV#Y3)L z9T*!K!yk>G!VipdZE90KFH4PDs0?ziXZX@4-|?FA9(iRvTUEXed`~M8-+0M0znhNh zSc6`GO$0t<=GconKUnZMT=~C+i)LM5&Fn#!y>rTGRjzKxO(;zwcXp4|V=jx0=On`7 zZktY@U-<@(5fZ@WW%x`GE6vnFaLJxe%P|TBkifKpGs^j~?5{Ti)d3hI?}eBJP6zVQ z(Xj_(MQPKaxV-N~317~BhYHti{g*7flA^{&-X|ovgDhV)B%RS>MqTm~VS*@ZeXL2K zwGmoh`o=*5qxc-DG9iNtWUIs|J1&!#?Xn&i+_t&;93Zfg-Lw3#mTCx=ZWu#xrHoEkEklDKzdoulFs5MerF3c(4 z9&K}r6bx3XTi4@+j!u!23QB>py3R>~Ua!FU82M~~^`CDBuwYKI^c=EZzdly%RiR=)|Y6l=8(ZlFD zBXg#b4b4pp`YZ0PR*zc5GAi%hiIFFkG11td?+CTLX0`|{A7+Y*UhK>j@}x(5kC;f5 zAU7}rgq%5(A78U$mf2hz_DaVb$>!*1k#_0+9`wqrBGko&B~6Go&MepQN?*lq$?b+5 zS%sd#$7*mwBrht?mtA-Jjw}}ZT@WLBV53T2FtlvTIVmZ76};B}nb47ws58ijBbqzk zolw1&sJ8Osyr|x7hVIP^9P&UQGPc;zIJ5YXT4>pv8|%Nk0H(lZ_>!4>+XDKim)HaiSVQWrp>WfDRSF9~hqTVtuY#t~ zN<*N=-PZu$485(T(5HN`CZY?_OBmyc@^0RxzpIRYLxsZ}s@GLnNu%wjw{-@^7x#S_ zU?)sB&LifTB4fqZkff6OIqWfWt9u8hzF1{#uGΠ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 literal 0 HcmV?d00001 diff --git a/doc/连锁ERP架构说明书.docx b/doc/连锁ERP架构说明书.docx new file mode 100644 index 0000000000000000000000000000000000000000..9ae05c6a4a7faaa77428528ff2d268b14919bb0d GIT binary patch literal 841396 zcmeEug;$i_yEff2AT2T=Asqq&!qBCHba#kIOAoE2v`B-rbW69y5ChUF>A*+}4Bg*@ z@B2IJeCzxP=dczoW}e)8U-xxi*M0A$ni3`!IT{Wc9vT|jBeW{7d$`}x(a^4N(9p=x z@GuNzogCe)9NkQ{yxv*48uLIM>=|;gFxaxuFo5&_@8^H<4Ag2Xsm@E0wCipKRGmcZ z+wiz6j_aYtc@bXB>Ot+EF_vD{wi8`6@5lT4Gaq&#J`bv{yIC>uU|Gf#IyyQ*(0F#qK40V%TLc`s}8cCn`LFjqw*pa_-ji4dZrF3;v3s2{Z?c$UKUOSy85HU!T=N+TG_TFMN@bl!Ky+e< zX;8-FQUclBEiHB@AT+ewTTC>y|1a>taSs{}0W_-saZLyWzNw3qy(=%z-M{}A@c)aW z{J#x7>ht_dOlhLfJ?v%kem~)P0><&VrRO=GjN6#OsXOSN#6w?ywzuUmG^@><{61PA zRGm%_N}m)fgy2+~>rZ9Rrkg1)+d&-~B5~F9`wi0qt?wxgSJ^l^P4hzH5^^9>PfBwU zHKEeX5{z#Is`89N`rEadKRtYbuNfORM0*@n+T7lEq>GuBTJTfdy{~05nwab_sfFo1bXlM`7 z@X$S-Twe436DY5pEZrS|Jb9NO{}VLmK$Zl~{@?vmmheNRn~x-T?|G~2nwW=X_EnJ$ z@B2wk^3ExDq3}obOg@B1yZR5FezlD^aS5-rv^t$A6Q4MbWzXZ?mljK}N{Q9O(rMC~ zhnQCm7DgIUVkZbC=GT0xx`!o{m67!-D<|Q(WQdIJqg);#<}#_WKOuM}XiS)%6ndfq zUxe=$A2k(yy-0ZW@!+i>Y5QW(j}vc&NI`S|xbZ7wLGD1IPYc%s0r-mnZ58x&@M!28 zP1#M?@4+&jqHZi`$V#|Rh^50Jdm{2YEy&e#=IYvWs^8)!VOh!Lx*`bG!h?{wG{@G%7`D?xCSMilU*B0%!b% z>wgF84z01~yv~WA^@$|(s!ElxKB}{qb^+fsb;!+=dfaaqPrsL={%c%?^IL0c24*Y` z4Cc{KSf6ui{M@o0#62r^!ZI `L_SE0@*bu(<1qzG786>|QU^3+WSk%)1&bhh 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

-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

#IKm}?jpSZE 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%0A?1Lhz`@S~>^E?{KuA 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

vpH@Mte+Bmo3&(-IM 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

L>a}-J(gg$$>6Rz1V|*h*uJT} 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�(LgqO|K)T3_~(t!*Hiss|-xo#bBE?|gK{>c0c6I#R=Lrm|Gm z+?lphsVb69+d)hbn@LzDrriBoi&6}Do%wYAs{mX z&^M31De|q9e61&|NWEvJO{x$EOl^JIB)#(yFUn8{w!?J-JdnV2QT>09p+AQE#^Nuvv3El=K5(-jyHh3b1D%5;&k;x`zrd{cdr9(oq zH87=`x`vKYniD0Yv5h81v-nx!ig_x%N5fgFjI=tYp+hr$c}j&*0ie;UorBc!sU?`5 z;9=*)oilOL*P4ba%A77KNlU|XsZmi>{{S!rB$AmwnDO2^=lvU~Q0h57bR)_ED`j9L z3#lNB*a)!2kBodh)H+6Ss@4XrDwPVQaKV+@N!*#(6FY1Hn_{)_6HNm(OM1hW4C z^@*7#HX;C>_ZX-a+q?7?$Sx?Pu=rDFG5}HB37#OxBM>`cdIck)>C{uT{iGZH_TTi! z3a)0EB(#k;h#-P)U;zN1U!EqL#Zy-%DDDgpqPA1#5ETJsBPx(2l9TFBah^cyXVR-v zEmHn!i%)r(U3(v9?=V0df+tp{#+4e88ghv` zYkpYHkv+Dz&wtX6s)q$&LU!$u_a{pWH700I)HoX(M(7 zNiZY6ITMgUo_qUs=?yWkzR|tM0)F-fj41?f?Z+1V`ugE2lOROIVk3?Si3V|*=?MaT zB5ZzMm`_jb_dnklsdJ1^e{g-X?cDe6(9QTy@0@!G)&T@7+{rLMZ)5MzQAh9h?}j)g zBiESi{jrKrN2`!VIrs039C6c00_P4;Kmh*ljIuC69j65RPELLP$L-Lq_%Cg&J;od& zM8tDFzrSx>Yf4n}iERQ_wIvBi1eGadB`E+&B$xsRB!Sc{LW0J@K_tz97bkeIxj2+A zrUXp>6%cnMjkhLti}3@J+xLfh&rQ&?bG_-iwZ4j>gw-=p{Ttzz7;zyPs@J6d01l-!sI0-j9#{m=tWT_CM_a+3BBPO`)M|9h%H=Z% zYEr6DBDx1CTox)6Yg1ze#ytWZTK2(A5e9LAm;*mQBj>ADdlC$Sd)g#M)3-Rx6)M^o z6>h{C*qFQtwMepvY22-bdz) z%wQN3GoPcEq}4TRBVYkCeMk^KWKS5i$@C2Nb2mpVQj<^)OtnIaK<}isqAeB%@!t{N zthyx<%c$}lY=tyPDlVl-M2*SZl!U8rf<(s$s<*F0tL2o1lC32m*y`>?A1DoD{ZKDB zxXpNer$)^h707xl6s1NY8bH=`&Z{vi_E^}=9FTazJz+#9gADZ%7s^QU zuvX&GguyluB+lm^G-)Ta)#{GRZmL`KRZXy40nPGPu@a)Klk45I0l=OjalgaPw@<5N zEA4_0}f81yW^T&L4(=LI_9{t+gfNDf13LkM>^lLAP%IEt21 zzG95gO=W>#HjtxJ8E6s}N%f0KB181GL(klvp=Foda3m+nWu>^i;Y1lq0Vn(*o(b*N z`~IPk$mQENn#@z9mvE=zxglU`jl}YJ_Vu9Z8G5ABrYVz9nvkLiwt#k#X#(e&;zY@6 zoydcfiQtHV5GOhBj(X}9VxTnzhQuArkT~rzzA+(zfdmtNA_V^cZ{GNq>|=6D@B(%c z2gvP+?VtQ2moakyi6HOV7Jo5=5uiyEAbm(azuy!0gu6oSwd(%>@78`07|)YT%PB$q z9V-j%jAY~FpW=>qXFO4wP+6$t{tX2Hi4Q>(RJ6o=VB|~^q)3x*pg)J1C#BLURXRgg zEMoJanAAhI<5V6ld*ihqMVf&PU9MJzu0I!SOU(dA)j3S_MhND7w^ma)^r}w-t`Fi= z)k$gqPM09}h6H+@#75T^#QXTtc3W-#0BMPd;E{fI!jG<-LY{L?-1d(p`)z#_ ziz7a3E+OP3o*<>gkrHGaM0L==f_c=Z)H;?&&GBlcUolGHDO|f$rsKI{YoiN60L|cI zGvbPETcRZ~V@EbvxAcXrOln(swJ@M#iHpSJhWgr-NUMGlOoF7C!dqCGB!MJO(gcD* z0FpZUCnANANzy?JadK3Jn@j@|JqVcF98Wb*Q6y|dtZWRA`SlotZgh^SKtTWka}&l% zf<__^aCwf`^c0GK5;yg<0&!YtG4k3^JBvyEBj4wMx~qDUxhYafDkP{#9D94r{C|F} z>5Cm+VQAB^iJASLZ-|<{hH5fSNO?fU}=3=n}@bSeS_fNbVqe#PRxY^<5wd z7bKnRew^dyRH%f<8JQWF5s!WkAAY1_LE=F-=Kbcz$K{B%1_Z&9WE*U6cqfZ`V+Pi| zjt{4{WKX_0j^6#cX(Ys*t@&SR;|L61Kez5Do^a^G$=i}o5PQ!V$>KR3C?!qFwe9QZ zVk~heVWbTjSF<6Xi*0{fA*YD?nfh&-a1k=t4v-a>nHc=g3%eu>5?W$ z?il``zfwenAqhwl0!)*P{CjuCPI&4tL73wQf@r8yK4s&$@3zy1nwJY;i8=4vB!0xs zV08T@zzTMe>v_13m(cs-uP}7GF*YaXu-}1=OsZ58B$7#=kRla4e1E52C_p5~@8ycQ zA6>9fZbHcsFny0EaURAGzDI0z1y==qM$^ow8+NcK(D%d9w3#y&+tB|2&LlfcI`+0l zAjtwjIS`&QNhA@^bI(b!byU_W16Np#A3k)qm3b!vv%Z8_ZQ zo`fV7LCcCr0C1UsFb;37^(uWoq-V3OV?v8*1c5HZB`{6wU6dHOlM{=6n@r~OnS7ws zO;;CyN0-dNPxTO_EWnu5M9wZAmbRwXWw%i@ke@1*lJrVPoVJpuh#bP4Dmj8qNEwfg zGnvrYinUxbYpCEE1dy;nB%k)U8=Hf~W9lxSmlqMAoS^!4};?W>Nu$(tV;w?T;;$q$wE! zB6}zhIE=<4uc!uMoiaZV0001q*a#P}Qyr~reClP%Q}~#clibOc=TYZ<@I6y$u1ZRR zcLe&1gpxQAF&{tVdkI%PMnF2HtR@EEGvD((;jKy35(cP}bj^VIbH%v8+wD9Qq>xAi z7=yusC%pW2=h|i&s&fU5@@?-OppIvIU`G`gTEH0q-Y@n0dfZ`CRLc&bMKC1DIsTL1 zJe+&<^Hu{(gClXhjkk_Ioz4**frbRnF@H}_*u%>desZ!l109GS)4=us9x^(B=0eDl zW7x%}1^yn>YZW)e^IkVrnP1q72203cvso}+x~9f2m%W#Idt zx%{wH>4O_buczC7_Kq2N?VUF%vzL2^({$BT8|)=D3u?->DSNVu+j)H0N8E>ktF<# z4sGj>_eir-TazWZ-0CFH)^CJIGM@3DkDvVbn3?D{eI%QiAdiue@;i5rY#mGf;{5*r z{L_rv3K$WXpJ@U)jC=mP^d&}VkW3M^xWDUzJwJT^0DL;p{$}@(2K4SZfHy*p2Vs+r zfT-~8Vokp(#HhePG6e6&{{ZKxRb?(2j*(qt%C>mvw@?Zqf&{3fql;}ZF4m?tT zoq<6`UZOh7*XoIr&J3=Hsa4XgXKH#vQ3Xg%dWaw~U$#YIU_BwDCfUe8$Urp|d|m_$#MnIuA&qYExs> zGh^cB3@K`A#F})0n}D$H#wD16AOe1Q@wbRyt@Sqsx>M=77J3<7RaH`>qaTZyC`e#g z^&$d4?W(ryMlF7e`X$%(s%6`&6jmBjDpf_vl1}CWq(}rL5Sdr7&srSUQp`Fr zQ~_iecTgixGjkE|+hc5CYIQD^L=+X-V9v6Tm-DyYDHd^Z3<41UbR*8 zL1+;m5(#zIyZ-=po)+pvB-JEC&ZwmMd&iiNmciUfONlZ-$v+38tGU!dK==EI6S?H3;dRsq^|1HvIP7^J4&`ZNk58*gmTM-= z80E7es?!Bnk)haYOG=m)3~{Ej#Vva6Wwx!_`)ym6mZ}p>m+5@8R4Sv%2BNJkhX8#D zWTCaAb{tgg;KiED^=ihG{{S(Sb3tE7WOXiIMa(2>@{uMt-<%~M;r{@J{swM^DjA%* z=N^+*DO|avwDplngE&%Y62X~Rh$_30g+s^NM=}%K#7ImrtPaPd4?af=VqxrHZkV ztX4oElD<R%)ASb_iU!+rV^vNdu;#?8%}_(gX$m0(fTIEd zBURz--42V^A2U*!Ib8KMp-`fN^qBx6q;jehmkZ}ANJU~}7Wsb+9F9vfMQaMIT`JN9 zzvEC;sVo2i!w{$NhJwXFClO=bFloxPp>5XGG>1@^0e+6Ljj2%Fl}oIpy@~|wT1i3v zm2uZ;%I5M+n#+)-Rgv_{GPoo#U`QZ>q&CLHPALe!jVu`nR##R=QY=AM5=bF|n}P^1 zMif$blVx$lhObn6g13#;2;2gIBa#N>f*=wIT<(Pu1m&`oNg};44xQQ}!+7t`*RU46 zOr%KCO@{;Wi%+=Uw(^yOU)ZnJ_T4W}THVW4T&hz`W1_Y{PV?1jQd}p`{%A!zNofmN zb@G6a(JLZB>pPszWpbhGEmU-XT8JU48DJ$Kl>`&0hAU|Rl0?Uvb<0tyn5sh2qNVB< z2Fff-?o3SSE@H9pTmkj4Ni; zI8>E^ShcBjMW}un)1nti6<|9C7h$B8ff2le#peKJ+b`89m#ILUrF0qr3$Cp)Sw%tt zvNJ271grU4Ry4|b->T|LZw~b~s(I@jU4EQ?s*q_LgUl-Bs8GovRfB4lIJk;Zw6m@1}S(694(crh_qK`=pq5O{;! zb{IicqTfj|z*FtE*utk&t5e;@+UHYDs>CuW)~Zx9PKtyrTao8B($(fVl_Cgp{2K63m3C8b~Xu2_t!&A*s|= zc9$xgv|Z~c5mT_#H%Rbp4z001Vu?Pd0Z*482mqwybtPPy)L)3T0v8ts(+o*r0_DX7Yd90)D)F4-Ncq@)E@p~D;*0d zLXd=#5(!aJZviGnH&E)`Bcp>(hF!Cnm4KnD2UPPAejp|R15^u;V_~(DQ>|2nCKq#K zI}u@S;C8XabEW#Vy4KY$mY#}`Q#D&gx}i?#eb6bY(Dv0j@I!l$rr>N^zcDK!Q#pRE z;$ETDa#gY?DV56Qb2OTp=u`1o7^xT2Vgi5x?qi%1nG`2mvlc)~&esGRPR2b%ZRysZ zsVz@*sqm*t>l-avnX9L&v0oUuP&ndL1w{b!U2OVcx0hC;k5CF?QoX7nCy#h;y%p-! z@?{-KO4LAoJk<`M!8cH$TYoVeVt$sZp39U_6Zv(lU25M}nzcby(J(<%xv;s|BFH47PNGm{HFY-j#ML2Hj?;Oe znCqoc&eZ74rKs1;msgUZ{FaJaD5pV5DisPsyw6Y#?NWVPfdgIBkUENt2njkt{-Y*7 zSC6UV6n$4Y{H-F1{{V8hWVC;$O^HTxel7tMc*HGQ^E5QdaE+*GqqG1v;EkyF1xqOc zJI7*r(9@(z+9F7*14a6KO726}*mcCHtDYY`+if`+<w0~?sw3?_FvGc8h~4J=o9*>r);j3_WIKU^kt zP(UDo7=kDK@!R+6lCSFBmhbL%W;0CD9p-~Bz%AjduJUh62y`KfGjow002d{ z`upLyP@%SD_JJpuiJxFU>CSqa_v`e-Oc`0f?EL;%Y+8Y;Xm>+vaE`z!K_JFp$S`Ax z6VpmFm;?wDe^Y(8`p2&LX*x>JW+D$F1?SN3-ffMlsc9Hm;DPB#AgWFWq@Ie^3*ke+iDFLoffwz5dHY5bASv%sK|ojZoF9n*@M1@BB0w_|8fw6)Rn^`s zCukmm+kEiSNoiTX*8~)_>Ql&)02_&epUOsY5t--v_295I5o2hy!63-ue@PtSq-q3r zjwf%}A50cdQW=e)f>WO2Hx0x|Sj(#L2P-T?3NAKw!EI}Q&!{J+0z`eN?=GbO5(UIZG6v^q_B~5}-V%f~%^_)~M#kGhHl+wk5`=`}At^#Z9R6HE zo~}!+qBgbWHiAHtfAMR>=+l7VmUf7nMz2p<5y%*7MY5sSHnzgaJBob@lL!jHi2#EM zQH0Em*y)ZyB$faexi;?A~~7!dOt~N>YC+>W*Vexa4Oi+5)!0t*cZ2P2`VKx zFbVCPV#k=YhYV$2oQPjlL7v z>grjnyiyj}^9PsaBXCr}Nz8iA1ji6QHTh1R)Ep}<7nXns5$nzNBK+dj>t%B0ps8Aw z#Pe+>r;G2r?k|pPeM)^$*zP)8P}_7^{4-8a)l)rD<)sx4ik4MJwWSp$L27aIsU=W6 zw2};v4eRuZ^zvDUtm+)lbx>!>?leUCyFP5>L0NKt0UIAjj*T-8fSQ!e`}$ zT*C$ue7E+9FA+A009&3CjGmTH~!dPio?qCc9S-};0|M- zt%eoTp-wu06*5OB*!LZexB13;WmZ*Ik$ACz+xvdxVQ8spiUHsE{%~T1EF~a;0U|*s z7=wt%Xd+CW1a(ft5@Y;qHpZ%wu~0h!x$h+Rw%;>_G_+1sR5pMI=SeZlPbY~IBOF1` zZlSACQ${DT{`>L$$g#nBY7JJhBopRcxxXFny{#U&nChQ(Lo>Ch#KgY$S^a7u)p5TFFopC{sY8U@YEtgKKhqeQ+zRT~jooog{8qRzcw- zY)&UR6CJ(BR^257ICHrC;(a{~dgDFfYRs8triL{T2;K*%{{YC718ZAsM|yVYa?`iV zW$xbNj8b1adH|^&f}9Fu{XzOi1kIKLIbI(VLnw- zC9$@j^`Y^_>c9_J1^GUD1Da?^4p zE!2=$TEW_gnFew>Ne~FfTE37DJvVHkt7`p?VzVIdHZ2#!pF zp8o*(-?8c@-1`22Z~7l`&6Ru3)4sxceGKj2jA~R8M+fHu24|0m_V%8mXwqkIP4^!x zHZ3;#+sMq>V%-T|~#^0@s zC@CbMCEB*ryt`ra3Zmq-MF0u)v>VO0IO_iZ*2b)^(^@KvO4^&FYLdFuO+!+Z z(zK^p4AZiPgKH@zun-e5l0hS{jX#EYY_4an=6arNSF2K%W$RMWQ0Z-ESg>XQ$!mVd z`(wx5Lo?C*AJY0=HKeIuDAekyrlsl4T8@ed5~URBXg`W#cgGKH_mqDTa?Np0)h$Fb zP)PjvfJud910Iq}kKCWGvRS97lz{Uq4IuBQ%3ICoNP!%XcH863?pBGZT)F^tYY`!& zkO^J~l;3Fpjz%1++YC4mM2RF38RI#R`t@^7pfM!dO}mdZhxz8+v6{?KG?@jCy=F%m zbV+Fg{ljS(9;&)EPU%9uC`lWM5DbX|VBm8djL)}0RO&P-)oNrhVLNFc_q^WbJxZE8UwO35k!5)CWa?F<+W<+ECRtQR9D}|$zr)l~*D~vy_-{>G0_l(!Lv9EYAP@+?sNiBd`h(M~ z=}lhU%9RQfRe(Iv0uT_TEofF@ASo&w6DQb5S&W`w*QZk_P@Q^94oM`yj(GW6*y-Lm z>6G$0+>ckvE{X-&Nh3;tAd4)Czt-FsteUE}n&q+f)}9icK~NAukR(WqLCO8Pvgwp+ zWm%DdB5Vf6Bb!@^jj_)>N1n^))|EvfK+;GeLXt^=JI$}a`Qll;Xp2sl(E5K`+A5a) z*-ulv@>^22Bm{-4K9Vp>LH99%6U`|2t2x&C=T-3LdVr&nD%7bnsMS9d1(GIi1}XB? zC{*choUFmCgPg`&+Ml2V1)|VZpH0`+`(plz79n?%r%xBxB z=shHKy1iqjttynmQ>y8xC=MQOkaq*P7u(cImFiTbLY+gX(G3PkkV1&K1d#)Qd_Q=r ztCgs%c3NN(me9*VLQ^F`AvoAnBhog^a$tMWcnhX3OR4oX6zeMrwM4iCL1sIGPbcRS zJA!|l6>_wx1$7CkWEk*7R9Dv1w|z8 z04o>0zG6XwM)>H5)fSl=ufr!Ubl^Vykz(S|04vOrAVhnwNsU@;zKIc1gHYS^%Y4bHXBYUGqk^%=>1BU!&YT%y>DC6vb2za|gw^~D`VD0T-)=5IUSwf@)%t#J#=U`XJ0JWsjy&-!(1LC%+v z8$c&{nfVBxo*`!~y6Kxw>wef3s%c@v36QLX5H{cmCNgt@?Hw0M{{YijSR#2cWsj#H zEDcdfI-<#Lh_xa}p^)Yk))js$|q9hGRYk&lI z2h)4)coB__+jl~OxtRwLNB09DiR6PEW7N#dud&`{W@n39-1_0?EvxXe4Y(gUzj=#~ zwjJoKPPqk2AWl6pbAWIT3}f3Q#$m5fRf&MxSlC)OzR~-LnUg5S7GY$3=KkCE{I@8k zVX8#!DvXIzyP1TE`<@ScM_w(cfPPUiXgu@nz`iUgflPufK^HT9fc-Yc=UhREQcU6} z{-5~(^wPi?k$4;SoyeHq9<2WW6G;GCb~CvjdD{%tt(6~0-VDjX<f-dyqPEREdjU zzT*3HC-*q6%!1xn+j$qb+vZR2om9#GVnM`We!%{bBPMa%rL9v+5-+zTaywpm{{Wm- zX#S%kPQu*&`~FurwIme;kYH>C@jHn>>DopN^;cf8PzVENjrarQ`{xn_8_6S&-!thL zlC3Qbpz;$LCNh&4_rMtKgVj}R!2|Hzi1ds90H5B|Dgpr~fAfixMp-|L>N-TJA<9c? zjb&j_^p$|L(lQ89HdRymB(R})Psl9cH(gEH@^ z-oPZz*y;ZO!_J7=tlRZE=vIvqwCIASDl}^@7{CA>0bt1`je?9?`XmIUN+cyH3Fq?d zNHdeb5uEYQJ$&a=HqOKlq=HETWEP3$c2U3Qj_`{%1|k6Y+W@t8+Ra6AtF7I(nWg?7 zhhk*@6}Sa{p(D+37bA~U0}M9A;#H~6s-l(Lg6o2jm@fe>m z)E8wD$A5@@MYG*PhfSeWwG4{C$5@EWvw6TaEGdFO2Edjhc_b9t61~)gA+;2qK|wh% z062+~AbauF)~8kkki~vPg9Dv_+v)Yj7M@-lG1PaoKsJseX`5faINbh%s|W$s)w|RP zEe)woHsB_5Ny4CihrC8QqLL1vpj<&Dx4!}{w|n6FRJCjJO_W|>Z@?Emr<_ICZ6c~l zmr}GSB`TN+0s-$o)JY@(B%FM7V9y$iNMR>PJHdq>vIKXJPH|gbE>@#OmP7z1Bm<0S zw6C1Btw>lv%mN7{C?sSU3EV`GZ~-SBO#M-m>5(RGW+DmL%$r*O089di(hMKnzrWMz zB3OJjskl0iErk>k5)vB70LVZ$zccwj5EKYdB#9h+^bKyZ%OPQpB$%<-?>F_2z6wNT zzL3-2K!NM)JNE)P#k=so>1SMO^|sxQPF$-RkdssRMW&rHNgJM0cEo~}DsZ6+Ak5Kb zyg{Ht6kX%Ybr_BWe1MIIII*KkQi2c*-aAYS?|<*#7V6*r&mDbLN{8ydg5UtqQ52wsLG0qvOn{0_0Aqgp^9aeQ<-Kq4yM;F5NU zC+U5s2#}+@AW8Q30LR`Aety{LS&IU81_2xL4*uXd*l??80b7B<0VIM??LAdjuBu+66;x5F znT#kT5bT2`0BN$$!xYT+cZ>-GKRNp+JuFT%ToUUI7lRJQIB8%$I@6@T4U$xX-92M071}HS3JML{_FLtx_)qwXgt*f;_YDd=Zk&)yZTk z=4c%i>*fwr)dcHQM5kU^xp>6 z%;jlR&*z$rcTb4asG>0i&Y>5J3l!VB8#c?3wAk8j@x583d_Hm{nKIO9)T_I%7yO z42Zdtu^5i7T1NRmRZ(ZZRjo+R;O=TQ48Ae^r7cq9Wk8S>7*^9D4y2lI)O8wJEeZ4wQ7o`%{QVESQpUeQn(s`1OR5nEhcd`TQ^p&uk`7XG=4TPX|+X1ByzzR zvcR)M+XK2}Q`@e09Xf&d%XKSk)-s33nki9Kw~_cXl>!TGrKBmbK9CYPC#?s9vsG(Q z&E+b^Wy+chN!)+!u&f0W-{ENT?+D1dD2fjeWa(vdR9=zNGj!gw)8#5FfX+7oYK9Ou zER`I=Yn#>SDk_HQsu{P_Rnt@~A#S-!N*PqFO3P>|0Ra%HAwfn)BdwXELCc3#1z>>- zaikan+{8uxc+M~+h$i;88(-^xc)*^y@b>dyG+N)oCn@Y2vWcTeYuRv87uyJMsjFM9 zk>tL7*O2u|+Lbh|yNhLgW3$~W;~Hl#PMp;L08X@lB}bVG0%8MzDjBdc29U=P*FVi= zs^#BE))oz!9IFRqf+FEy6XiD(BuY&WV7S-+02S3fD?3eo*LNSnge_0F`yrY%yo4&D z;7F^kcr6aR`6`eQncRhd{HKQyX>7m@K`^UvMoGDkA=Tv~KMY3mhUIn8qO_E%=tZRn zp%hX=%}$<`w5!#u%<(K(4U`-S-8?7JH(f%zbPnT2kmR zu#~|w*qKWH7@)OWQ?FH0Lj_uN$OV8b1fTa3eTc)V)u_e%@J^UI6^ggK9Kw5=6IO<7-`QBdOQDoJrWT_N@Qfm#ZHJ*1o-lyn}Ql_sdkP$fYUDTT9* zABjwhHr>V+qiROdO1U8XO+}a;K$CM9f-l_ShBa%lctPTjV)JIBxmqlh#hZgw%&w`5 z?K^T)%A~l47bVANDjlmp2^;pXHcO$fb4ig}74tQGiZWUhhS{?Dg3Ps~$C{N&OH9SI zJ8VEWUZTX%%KSQxf0)+9X;4E^2(3}O^NPIQ;ie?W7es@?2FjXs3@-)EO}2s#Zx+ z8>LD)Jy%!jeMdGIF8QjVVhb%pr~@RJm?nGheFh?GIXtLWr<9_kn^OxEzy|O|_W+S^ zGZHaGwVu1WTlJ3!t6B#w>BWee4%TCG+l zT>K)c!Q~tR?88(kA=WNf3H3^7AQNuDdR(9X0GGMKO)aRGM&c=VC8}{gr5FUNH*O~+ zk`SpmDopXwS-hZN9!YL@HX8s0dwNZ{!m|V$0$xBTjW9$+f4go*`0m%!pNo`!JopQC z@QUMD7p=6Vo5;0!js=U&1tV@fZh4Kz4zv^a7u!kNl+$ic=IfJnY`sp2*6DRRNInbH z4Dv|Q%>l#4z=8-fc^DfhnEwE#*Q)gB)2x+ENlJvOkBWe4mATU8stNo|#2XBAs_k{u zIwx4t-7K|E+3)rW`da!5=q|ZUSxWL>Y1FXk4XqoIu}vx)QVQf5&sU%_`Pv~^mP&-m zgAx`RQ+Iu@hAAHqitVOejVPtRnT;_ z)P6GQiURkES|yYeBT_bfDb|{1nXnTMtf_ZvZ8}S+sZyUqURYX${XPEx=(PnMMy6jf z`jwtkQmnFE5Vi|fP+=P~yuoY(Tc~C#vx>A={WVme;fn^#-{GlpMMtehTAS+{MG-^c zl1s-E^)`&FwYgCJNqKdZ3l7!1>w6qsK>)sugaVYdz0I}^D{2$C13h%Uo1a?rsrgk% z)heWrJj|l;B#g6qy7DhF~}{#&$Nah{Q=`u&()gadinl!t9PE zOMpUZZUzWO=!K<;-n0|>iU}NbsukcURRNxFKZQb*e@Kz?weNxQnMGQx0o1BMW_8{t z$~X}Li4bi9*plv*N~CRogrKeW+ofzcq_)#*chcJ4StDa8DfN+%ob(oJGTBO1DvE7a zLN!KFI<%mYW9Q6w#qM67vcR1tPzit~i2`Jge)00dWh3rYw&I@h1I<3`4w`3D{W()g zDFvreNLorlNg$o7+=G;mEP8%nb9q{MifdMy)L98xbktKM5=PKi61MXulgZ|S_@j`2*Lq!VMbAJ_B67Okmzz1M?kQdm;SasL3yrwLS$ z*gOu!Sb%4cIx3wtQYP)d>?4`~0G+*Ygsja|Q-Vm6SlStj9lmB{dJg#0MwEXsrjZRd zv=t2QQ68cX1c4dMpKhen5-vdoZM19z4gt5dus#-mBZ7F6WLjcIeK63)XP5vPKBTewbB{Kb+`(O<32B4r=q*1ex|9Hk zO*JY|0D$AtnUDx2FkCq#^_f->6=yB`0Rmp#-xNyc^t!xe+#-OyS`qz%#HGv7f~x7&0(OFDO~?d+$IG;0 z6Xmxc@6O+C@BT1TMN9(HXA=_{$snI$&*_fcdEG$K0!)3c0^Nb0Hp5APZD`s}3VaF7+G3oNqqF|6o0Oo!AaxcXZ8g%U!ol`$eI901A zbdM-7B;I|t*nRQRj{yFS?>ARyul^*`J!i5Ac{Z|2E*AioB|CwGPRp(C19sJ)O2FDd z>Q%|C>S92fh~L=pB6$)ZiI8yCsaBz3?i*>pBhLcpv8%*sh+LA~l@A;TL_z|?=^bTq2Dzhmhkuf}o0D2E@ zz(&$-8frkD;LOK;zjKT0;TD9@Ec(>DTaCJPbGs!27uM$t>W?o&}MER`<^k(zo;+vgVp$xO7)9OdDJ$i6jSDfoy$lokrEZP zO@JiKgNYH=&!u=pGDKCc4B!teZD0lNBp+W*@U7MIR2AvvDVHvxMq$pDPzWTdt-Qb$ zldxkK-+NU3N#5zjMt!tgi$@Li|sAflb#2MRA@&!Pv<+j6U{@<6av-!N! zF)b3J`;u>Ow0nBn75@OlM;6_kOa=OCDw$*iiQTY=GH?otRCtmEaXn@FJso{hECiK7R;yTSs#Rq1C4|A?N2QlitEVGXi~`S2nu$Jb zM6*w_sWzS`)?}qhAFrk_09i#tN_9Mf&~+YQ<2#cgKIg60WV+F;Q2E-Mgn@ASTS?v| z7`Yq_W@xzhwDl+|9SdH?LkZ)NY;+UGf2L~|tMI1F;s=G)NoKl-Pf^_N7Pit>?Q1Hh zO5R&2LQ9@xrPmY)gEQZ+n>-)T^WF@D0*H=jtyIP3Z4%;pU>a6*ZY!*g#*Hs9Bb z356>J5DegbyNtns{=K@eGNgcZzs^2=@tL>ZzaM|BoOC1Tlf+ck*6KeD?ln7Gxlq4f zYhg<%Lv<|%)Z!DkfPC~P)_*XFNX&KfU-9$9L}j{fiSqQXm#mp=)j*)L(rsZ0fMY`# z6JiOQ#yh|8L&Zle)NA;EGU{k%mZeGv&Qw#XX^{$S4!Z-YIgT-4{A{wdbJ5;aNh!Ek zDwcx@PpP+3q5vioKmZ&L-KVZ4;f%}W`jKQG=;qKtlV(x@n2|Bg_s3iQB76>`;k^vH zvw1rD+F}x!)U@=I6R7Idz|yfAiN`$Z1Bia6i6rh>DrrPP3IYrc2$4Acsq3z+I;~x{ z1aLqHbKWiT+aEB3K`YF>A6-r9wWpj_FB0t!qU1v93j=sk)DS>+H>9|uADKWEDEslA zcD)}orjUo$Z4!SB!~x812iDlB>PkssQ%%H?Fm^LAFE{&+_=fLxrLfyItOX@)6syvm zxjnPr0~5s0S}dk^9gxJ6V>@Z)*0>~1pvEc9D{8-}fIIy*A1|4~)uz3jM`}u4Kuv8D z18Xytpb!#CKbzbUkRY6c*3+eD9MWb7{Y55HNkS!{{{XlWx^)etnD2`G)e2dG@R&iT zaKKA2U>JyHaywl>#?Al6mAn9GHVYafHfjZaLs{#z@2uku&!_K+Z@o2jBGPx37F4I-zzP$EE#* z<64md5BD6Nb0!8q^Nyh|M{Ui$quM##W6Ysrd;b8BOl$Py7!V{*edGby5y}4mr%f$9 z56_7CPca;J!)@#N{{U$F<66$_5Ac}x9`l|+A00BG0yL08gMY5z@%rP&0q!mNeEG$Q z`cI^ztMTu{YHG(6)ip+@wV~G%5~2bsn|PF^UXl-&5$!(Rb3fv~Vzytvo+7E2MS7#B zW{QR^049?lGNNs-=65%}uSU)0@?A?Kn#rha%^c=kscI|&uwv@Kt;8}Y1865~bx-}H z8ZygczF8e>%&D@e`bui0t+w|zwb3OmD{Ew@Y86bSiRDWmkpT7axA14F=Ciqa%UUVt z9+g_D3`ja_ut6<@WcJ{{in>8oE4@W+B2<>p=ysLhnBLh?DLa6ODd3C{W_Ue)Y2n_e^=VV2e9Qq2 zB-n){^D|>^eXoz6I<`?&-k@C|m=UoA#^>LUPSzcus#Vh6=LHqNN|hzxc{_lJJmNF% zPwlzO)@tFz1%L&Kxib^SPp>HyNZYa?ehXa9DygSXHlh?p`57fSc3BcK-g^_!hLN5BOQ;!8Sa&t=*f~$ zpAb^>JHTTuS|gY(q)z}I_-@nmnx>VC>&=xZRV^E(Ahx-2Aprm^ra?2lB_NFF0QEIq ztd!Amm7YE#tcDi8*N)@A-eQX(;q1d^Yv=MIl&dj8OsuIzELZ|W%9A74jqok2d_cMC zu$mo8w;Xkb{EBrea+CsnAVRPLcBCe81fHg+kqK3ER9q577=R#p?m?3zTwAsX>OLdQ z=5lM&^Xh8~Y}y{7A@vXh=@t+~k3wuBa35#2TNz>G-6`Kv+$6BIpryU5$RR{+ov>tQ zbdQdcJD9F&Da*QzAO-+}Ndh<|#qJG`9-QU3!LJTCpOPPc*{;CJ58L#m#{n zoGq)qS2t`;jmqCX-q<0g&kaIhAt@M8^ue4Nnd>oEqf!~OpQn}!ShBTBkaaN+s!Rw5 zK-%#!d*Z9DWEZAasY@-HTGT33EKz?7OlblnkP58L`(iDsdFmytoyBaad(w%3Hk=$u z-RdCYt+fgiGl-S+1h4STHgj$^BHl88}I!%1*|Im01j!4L=ATj0Kr2O<5)4^lO^4GK z*$$TZs`+v7+2*w%RB9TPsvt22M9gs$ZH^|5DA(a^w#EWffXyQfwu6$Cpa76b%7_uU zMoBX=XRnC*i-yi-*$8F+VyIFsAUOgjaR34JlaH&qWepBv$ z=~|mCh-7IRPooL8z`?dD96nyHRDjfKgw&*2fYmBYNH;eIM1nTQC;Vpc^0wD`yjvcm zTTjtd)HJjdtSf3BaZI=pS5&hJ23SY}CNFMpd+*zfSG78# zH49u^4^D0U_u~p2)81n$@|q=48!$}Z4{}P?BWb`rw#QShVA|pdJV1a<{D<6gI8vz%fB*yQ+qJK6)L_)f zpdf&6Jd!Q@?Y;}@^!t<)>RJZo(3}+Hf;${9P891h!j_`q)L2m;q4RCLxk{O1#f>jd5n48BYH{fxL zeWNtZJ%)*vP&d`D`IU7M3wotMrAko))Y?)=Z70%zs7L^H@+V&FS-z{9%x1F{3mUB= zVCko*kfU&;Q7xrlYLgygKTLF9lS8KEDCOxOUxuJD7B5psQpAtM0)PQG0y|Nm`%8N{V$iZ&ekA0WH>D>QdqZ16nfq~R(4SlXn4Fgol{)@tQxttxJc z6a`9YPM?){1IuLqzyo0&vBDJ^tyZiFI+=;6=UHM*vl21)0Uzo+R1jl_Ct>~h!Bkx(wW6}I6QxxMjaLOgJD+&~@3$U2TKaUm z=$rk01?Jr29!j@1cDc5xkVltL%81%SfTdACokb!d1-4VH<{}MX)l|bmt*2>NAJe7< ziSB0*XL5kI#H6HBbp<9#feO%CPvZL;o_Y~zp#n=8lO@=hl1<5-&F{V^3`Wo+XaoCU)!J6ll!AnSm?#4g z2N4+`FnGs)rEm1qy8a=w-T{DpE(smR65GH88Rvo{p8o)rKQ`a(2DuBjjk?w1cM3Y1 zdwXIdYALAMR7Z2Y<*7nFC?>+t z1%|=};s!UiS=17^^J)-+@^CQyM zTHR-B~ z%Tm%Q(TTV76|~WG5W<0H5Cq`ty(gnh^9TWQ>zB%gQdi?tmZ?<7{{V2H9;z1d8p@Q+ z>H{6p@CU1d9JkBQBu-6ugLWL z*IViodTv+9)$3CZ;X?{kR-(09gf)N&7y+?j01`$ide>9S_)X*gasLCo!y95b|mTuj>dH3^cAA)Htj89w^(g7?NZzAlyvm8?KFUpl(gDgQi%dowW%d) zQ6!Q;-~rdvc|45{n~=%ma>%skWvL2u)Ce|I49s_Db_JQ3l1aJ8#+`3DUq76yo6J;d zm9rIU)u_zGlFq@o;A(+k-*QPZe!h<1P3P8BHp6KIl`TMHamXB>xE)9-)T;Vvsb(Yq z2HOqK7^kI{ubQjy^7Njou>b`G-UcEkd{DDBeY@PNYEe&avs;+9GNi#b8->Z%Dv--Z zGUFagtrQ83%TbM_^;evK<$AHDrK&RI^qNQsbgNReAOVY*Ed+6M7RKQ`AD@1ik;&z# zy%I}_ z`410eD12<%X7h9%>Xo1fO>IrkD>B``5s=oE+Gh;6o8t8SJ5?)T`l?0}mg=5iA!}g` zwuE`gL`sn$mph~b!Rx4JGiRq!r(UHhm8sKJTJK0hB85;YXaY2tk^q1&u*L3EAe}*( zH7z=o32JEPO1WoZ5F0@v0{W50Azeq~WtzWLT5UQ}4{AlTNm)};?IOc=)|RFUT1`u! zg(+Y;C_q>Iz>-H?JI24qu8+|3*-_CLb-_lBN2n;28CI=TMLKCxr~&4hJ5|z*1f(^m z8s3@U{M{~{oXqFlI(v$g5G$#vm`Y}#msB8yS8XU*jhF#*IAdO~@j~TT8KI%m)QNHA zH%!~esCh&qY?n>w)KnW&tgl&=NA(#dOj<4Y ziI~B!(RvL!BBgBJa-pV-)sB=<2mt>8rl13`X$B3Hj!rPVc%y#O>?+?`Z?)d4+(OZH zxLKCte}-KD0Lo=0b1frdOOXZCDPsnD*LY9=0J29rUFj!?dM!GOsDN?<;k7_ZT~(|g zz!s7>xxm!CFO<&3YE`S{)WM@mG$UG(E(zYMJ(GRLN|; zPU?$ww&(XUOu;?IEYddpi-crBk2x}*Ze)>T##&zYMyG71!}ZO37E^il&hkm zgRY%L4uQZRsbZ$!jAXNUT<=Y))UyKT@67|X}Idk zb!|fHYAEjwgw(i7o>dF9s8upn;gz}N6uc6(lA|O}1ZX-IMu$!r$}~ruR|2EzEv-V$ zJ2b|bVIz5yHpX|TwOYBqjZxgI(55J(l71aEYLW!pg8Gc^L<6=A-SJAx;byASb>1Q~ zabJd&ti0vY-9VttRpzNnsitLwx^kLk6a`b|DhhN{IY^Va&^oK}5wBJ1r8iZnO+m{u zD1hv=nboW(SY08FkdSS;sOo>tr%$TgHmw}Kd8um3)~`(}FUF@@N)2F&X00W9LZyW_ zWvEOcf%`tce_Y(PwdU9!MucwWkM}96mkQpYw!Hg_7QnDV98D5DnrB^36ysq*L@T5E zElSmzn$~e$Y12d%fGhDGXpvEb`JtRm@3i6t);<@;Woo*A)hMAUGnFCDI%CUC3tdn^ zRUtrtF{S&Hig1}JDL$1?BT6(mP#S#pWZM{b3^Yn~Ktl#V{8yW5U z`W;KGTZFDuNCHfPRU!u>aUA9bM^QiGKQGJcg(XSaOvg9k*Malj(*idgMX4#ODnAa* zy31~-O7~vxPo=h$jjBqN%R7>H6sQyx0|yvAW^=jB*{4}_)2B&vgIcLok*t0ZVhyLC z*Ak^VdO;~z#I>kL~&VHdqtXC^eofH5dR&cbbubrZ5 z5eDo@h$DV>Y6KhXR!AyJ z8B%ebPZf0`Ra~+%29rlZXe<8E&=^~pnZEd>dOzrELz~W^v1&_2UZ~Z!>X(^SEpyAG z(-w+nRN|?st18+kUBaPld2TaChYsL}(Be;{u6v!Y)Uujr4BcOes;Ff^w9!D(r0P&L z7$nB?BDz>Q2M_U9Ex#!vQKYD)V1t$u>N zTD1*Jig$LOD>miO6)V$4M7N4kwvm$3)hZ1X3Bl^Vms!nFs6|@L)j_>dp|t`fWDsns zRc<8do7~{aT|+BgnwpeenlK#S)Gj5YfwF@FzyZYH89tY_{{V$oT8%NOH0^!5 z^tCPL*H=zaP99sU^ImOXKg=og^)BV={c%-3f-CKXXR#Y&>B_l|2Zn(AX z^BZEFAhc4Fl#;cil%#SGL}$A5Q$ov8X;T1~Crm(s48(zRW$*IFcD;55NFw^b6fhe= z^_h@6dgHjB0R0Bv^f%x&joSRJEvl$nRZXVfXh=$#eZZZxm$w`RZ!n|K?XtCiySp73aA~V>X1x8kVqEbz~En*zA4w% ze};-h)`!Fk1t0L*rCjSQ8m7!vplv#il*_KEf_$V=*4x%zq-{tEml{)kvDS~mJzqH0 zDC7-MP$C+cdW9FyMX9+Uu@YGbAd*hoK?fQ-+a7g1$fPS$`o!r!5t zH$ze4%le7Jui~0pPaB1#2NmV2qPnB-6^VI}LLO;!ARC_pO!QEpCxJ`Yzo(ATN2tDfDlc<^O?WmB6h+L_JsW* z*_O@s#m@?@tco?$JzcEyWfELdx@O~2T1W9(7LZQc4Z^8wa5uEKZgJGIpoSMrfnni4 z5@+gA%hIo1elvVPu2Ps4f;~X02ACBTDuMtSzzuR3;EK5nmUkml;Zh^0P^Ru_ijICg zF#4I%WPwtWYb>BcQ6CTqN`&y_Xu+ketG8BSCec%LvfI9C~ zb4^;ZvX~xiJ6LHw$1r}rn5F(vXdqZ2gqAX9Op|L3tzs}OSj$d@A;cwUR^+KGg(Rf% z2;o4CM0e=)nyhu)q-lu+YMF?%2;7MDgNVzuISC$Nc>#sCv5+E7zF27#?9(JP!)R%w z$xCe{CA4mpkP?spDpI8TsFHfKqDZEo69ZQ8PvSeCe=gR*&*oxC5_clj002UWA1J(f z;R??n9QMZ_tamVe-yK+q)Ck*+kW?aA-kY&F!90E3et(6SM#X zo}{J$B1{=J8}4+GakztRv00m|Q4*jCO8yjUzy#crd6V{u#bo>wuP6$KCB5JBS@b7v zXL7kch!gtsUXU&Y_dB0S#Cn))e!~NKEJ->|q<>?+B4%wz?m(M&jv!m_$byX_ zQAKaN(pJ_{E~4DQC&+bb^HjB=NlWVlkbI>mDInrNjK@Ls3NKqFTQ5!YJAeZYA<>}n zNdT_ncsMgBQCBfZ>L_#twJEtiRshd&V;+&X#j;|*OzOH;c77J62~N<<@SR!)hfqj~i#E|Q zzrNT?_lJ6Nr7Bx(yG^(l@|-G4R0)#`mRXR zNV9dgHrgJq{Ayo)Dnpe{1w4fLTT~kg2~3iZHxhb91w%%QpaWWJVg=-rZf+xEwxbbj zV={%!Y~s5XG^+|g@Ktp>m0!X?7zD-QO~x!GMZrL+NJ>U=&H#W0amRo9^*L1o%%ruZ z@$}(TO^Ehr7CpSWh0(+7pGXO`t#|PuDH9BQT3PkLD#$bu(-xd_iI5#mq z`y4vk*HKjPZI@CDgap8uk|aT&e@||HK^@YXDQ24skt4rt_U||?MC@iZ+#8sK>wZAR zukf$J<8wkQE)D{OpUS)fPo$7U5_bsy0Jm9QsnmrzN_Ln4gC^2`kU>7XZHpQd35h!k z`V({M>0^8Gd|69=s?(khE$Zr^)3q!%rP8I)pF^#nnFvrKQV3FDWl`34re42P04#+j z9tk!kE_nxS&MXvDL#ftLL6IbIU;{QY+wz=J-x)r!HO8&FR{kFERZVM2Q*E@u%UjZg ztYn~!ZQCG1K*B(i)~BX;Z!46hx~VHvK4M#quLN;E^NOs_dqIjIB8lw8#7)=}?>l;2 z3Xyj4661SX>S`*TbS*=0Qj3HGg%T7NIcV=Qi zxR{Ng03cX;c8^>LuHxsMDjHgh%*u=dB0V_}4njbHbIcy5DhSdG&-Xib+Yy?KWHFFL8xLP@{qY)W zYSx!qZJ>4(!o2#Gq(~(CSwty0PSq8H1`Om92U$-L);hBJZ~k>+E(y|#XVcGV-+l5%6_=BW$t#!{wS_9P8m&QVzVW;WY zqpYi>S;|pR)g@&k$Aqaats~ZqRrHMBS0S5k=4+zXuT5#ur7Nk`n3j9pbhRZwMU1dF z7jqIR}E&;A>DiHGp-BV2{8{{T+T4xgF;EG|-|P|HokLbI)76$saG0oV>| z{Z#l|$A_LG)W2#;R+`kQH(N8P+^S@?P?WxD+HqM>XgU+g048QS`dj#0;&<@}hv?JI zF#iCkbpHVTE^!QeLe%92M+0KzW--LSi@q13(t5QnwUJeBo!96lev8tdfl9q#l`Bw4 z@{J|h6j?&R0~LHEB``2g=AX+0j($i4jPV?G(+MDtoPa0vn@{f3$4=trJ-7GXBO8!F z{K*HL_r$@;IU*u|zg_}G?oRwj2FBi-f1E0@0wl%w9=@AT+iWWiqz%CUahV{_?qFnq zB#!?1Jv2jFAQ5mP@h7+6<=Yd|tijh&kv)X%=^Jl{T3fmhl?6@?Ny?M}f$jkW@yuhG z=xUiz#AyI;$%*|oKAUrkdL2ZdAd)XT4gib6zoc!pHmdZrkXrzE3Iu}(jDaA=dvl5D zqa>sqM}7^*{Cm#Wm~~pK1uTEu1^qd-qGRoaX}{Lgk1fZQx7<_nT{{RUix#&0P z=}t*_N9pT_e+;#)Ziw**P3meV)XJ!?l+L{bZE~G%1XMQSOrcGwr7V=H zKmtZm2(IyGLCf|301fp%m0p;2t(B-LZW$`m0qHuC3>Z{Fx8epG#Ed_tb!y!wsb%_( zU7adr>ZMiEcPPs6M$QS{T2zZcoOXA{D(Xs#T{C<_kx^^aG;D`_k`m7KGTOt1O~9S% zT3`?dmZ8UA0eE(uT6Ox4MzR#mbnL}tmYrHviiHYxfd^?ifxKhvj}hj7o#-7Wt59Wp zzI7IsX@F9W?1@Xn`6Q_)`-P=acoXi zf+l424u{s4JoPe-3iQvza7N4}Nd^VKs180+j#uJu3!ayi%k?S})H5n;(;!6t zBE%>=-A&2FHL2`08skhU+E$zVdmt<1xG&#tVi_0 z*z?cMJ%%y$D6W2lAR5RfVCwRMNIswDVlhtj9g%d@)pXA?WuUN6Lb-y4fT7cb_;sM`c0TFGzJ@=*m08d$W1e;6}Ccp~#0!+Qd=Ww1xiXnrv?cyPuPx3^^j|dx^aAP5WT2S~ZhEN>BW8Nm^1DxhqH{fB-O69L8kl-=Y5in|)G9E3q&+ z0{;LpAK=>-$~rnf zPhsC3BLEiMe{dxCIBq5{0BfDK_`~7-Yfc8%#-yTBR8o}>{@@Y_Ajwn!dy&UjkKzVh zb3PC2)R}c^>D9m!>V)>~<Dp%*mXgQ6M^IvSnG6Fj4Wm#H(0~;wUq+|0 z-)$FaMW*3h=Ps4Sv`||LAIfp1fD(eH97#z|M&X&~;h*8|NaS;wJjPbIG;-@iK9UZj zp$n-5!3$6j!0uKe*!$nF<~m1B@M3g|2)Wu_MFq53{(p#Zr6DkR=*0_Pc%tkW3GNq#M2msE;%^=L12sixj>#Hc}JdnsLLXZNI>nbTKY7ZnB zQ3Q#eNcJ6A*P%x+qvEcnKPv&IWO@kS?QB#gXET(p=Py<1feHl7YEZ|WiJ6^%`C=!t z>iXM5bu_G0t-5!FIM_agCQ|`Gm?A(wa0W+N{Qm$)O7zvjORRdC)GiELzpc(U{UgM! zlCJ7p=pn>|ro~E?AP}SxYwx(&91mV=XzMBwTG~hA5aJZ1gXvrnat1Ts{`s3Fm&{Y9 z)T;gh2t%5C{(PbX5 z!>BVfz|e)uz$!v1VhG#%V0xQ&#wV>)$;#$3b<3$F3QS3LCA8dLY)QXi9*@^Q3AKG5 znntUtr2^REidl1U3Rz4Q;GNhDZzJD0jt zPcu@B*HI}>HCRa1sy@1XBi8_WeN^K6K-F&F!?jS5_Vef?c-#r&ZrL9_#C37k{{Wah z8#`MeKN_t9X%rrCbQptjNjDpwFbh?xDV3W+2Ft2sf+u@#Z_^eFUcaNOY;=_L31O7N zx2XvUaWRAtqmpN6gD2maA3XR~{8N|fO5PL_%;hP*YMQN6I)EU6 zVPp^L@`yLwyiJY-T9ql8M$k;(eTW0=KKSkrf?fdGbsKc|JxJ?x6e$T(l3hzHSV~f| z1jHptR??yYIY=E}^$w|4gEG-l?|9sgG>?B@Ywfj{O7Q+(wJ(od6%j(fAYSTrBe6RT z<~?q;@}t1r51=(wj>awTT%6OFN_45jHv5h($`_d^^A?qjg(_Gn1PlqCsf-7RtLLh8 z&Y*K&5Q^Ch^3qW-V=m#rQDR7OzkV-`r%7Iylh5?(bQX|5&gDKJ@_g3Q5A5LdM)AZySh+9-w3_{{T{gmCA|h=IrQ-%me}Duo3+Ox2^t|>Qpo} zH6d2&4Sn{^P_ZN%pLsU_03H1?J%}KI zCLqB3^ZSfl4+8vWPJq2pF210q(QtK}ea#_cB@Ma1%6rySJqtV3q<~6W0GubPZljPn z$}ARsEihRRGsrx~!_xSy&e7DNK#jRWm;l2-Jio$FR1B9ERH90cTd(0KirXS<^i1ttRFdS9e}a6kN^Y^_!3vp9j^G< zeOE;tuy!OONstqQn7~xXj1QC7(W~M|q`+wddqLVF{G0K3jxmUCiA{u<^nDK&yt&dX5)6@WZ*e1RK8J@W zRt_8{rPC6t$!WRv+6U`_I$!o?TP+T*roQD^;#^kp+R%ic002ORASO1%;K`DGi7(?i zkSU@liwK#$_?}OA{PAN$!MR-@5rsC?OpPc=hAJiprrd99MRDV|kU<1NB$+YBXQ1Tz zjU3fKiAbvkkHHPevEOn|{@^9)2Ml<^jUe%p5S^pk;(U1^dU@f*MOtntYa8rS{ zPSl`Co=Abg1mFmqbSY*6?9Ctf7C$SWpyy%6CIM7hE!sam{lxr);Ucb{So0foAfSZ^ zoD`gee^PK@g8<_g=@janGIpO%VD>+;&KXv&og_8Pk>(M{ulP78uxko>#|;H^sVk6$ zERs2blO{&rZXzIpGaXtCBBBvIg)l^N1&+gu;z}97?eN~=wj|HEz5f8t8#Nuem5sFw zfRMP9fSrjX{{Tpch%!B(4l&fUD%5a8F}B2$C*Jqx49`+k8rISUfj!3G@;;anO8}B~ zhzI;26?f)6@PE^yB-_kvZ*$n&?lDf_PZycr?k^Z$PSDyRJ@Ph>bMc&hzVp;Xv3HGG<8w{dEr6-vrCPof8!P_AIvyOwURiulRBFl0KpPbwX?dgcv z7CKDnpJ{_W+*|a)U6zsRhlMp2BC6`&+M0IIfdHT=t87MkgKPtWSu1Q`5Q@ zU8`pwRYF-QWvO}IrAbgj0DOwGCS%I25OHvY|IMFf{|NweG2njQe~QCD8lKfQmKa0a9qK0VQZgR>*cQ%c$Yob^R;Sb zUrK5Qodjd>sh|MUK(nN2T{@ru?pmV)<%#dT1H)NPgG5rK1zNgPRj$Amc4c3PbwrX* zpb0)ygaj(67E0A_DrG7ODtTosG|EQz9a@zE2tbl#Wj|vOBz4c3t5&SED5Jefj1>lx z8l31!1aRyoc=jY}s#c|!r1k2$(xFKjtw$}TMLJ-+fWigUNDyX75ivb3`cwK%sn#Z& zR%*I;X>BE8$I_s*R9xxNO`-

9o(w379c8?CQX0@oE0ldw(|;fKFg|PC@BfrvJ?PPliY$5M()_{)W9RYkJkui@1RX(FYH zR~qw}TSNi92u()aq^TuyAdmp7_#w?u38z#sm!wKLU6xs3unPhS;0^{gtC=*{E>w!N zO*COnu=tdgrjTj?ts!QvwlDz`ea<1RBlLxD(>k)#s2IC8^)<4+nzq<>od|hJXVenl z3EHVt7$Aufm@s-;G-@SfW~$@>e5}nEQYJS0Z-FYhRHju?5s6Y5C&b9yYb05xih7g2}&N;CX6EQF(?U(`%I2~APMFiAf2L-PjA8tO_8I_!gy6eu9bzU5`Xt#4B}(wrVQ01_yfFuu?ZMP%GL&1l9)U_Kn}x>eL&{e zYPo9rb-tZ$+?lyjHWRrkc9qdPNRX8RN^v>h@!z59X3-S96{DxDsUcvy07MwL0FpPpK8@+QcA?X{bsDm2Q_E9E4R#t; zPLd741ds;9VQ_IpE1f=Tfkq)p1GM+;-`kTpGbHt4N_2xHlRWKnz4_pQX)`#puvNEv z3tD8s+q8S0_+wL?iHwf?DpwzQ0etA2p<{;`MrI15sXrDl1E+B-@!!@^GK_h&6Ikyz#3_yC|VSV*^Me^Oti6L>`7)~NzAgXMW;oW)1V5| zVodqMnvA#dimU@LSO&vo81EO+4w$F3*sJ_dy(tu~Uz7M77vddC6HTUBTF|E(O4I-s z8;v^MD{UaHmf3AZNo^6?{{V&_9}kqR)~e+-SI!epB+W-tQ_83+&ZMW6t5jDdl!i3n zOsouWzv5p}ubjZ_$gwak{WGr;Tw3t~C2Y6aaY zZR$0ts;9QwkylpIN!s=L>M9peP~u62y+Xh=OszpmX)e_HWhs4OSdRzvujezJU#;fP z#Ld;uRnSLaU<{7sim~jT-*|4@p+cRH;Q7jK)VSlTMbc!d0lN zU6x_WQX~^iNGHE*J7tE|UwOOLw@pbx$$p_vx)NMvlr3vZdx-NEkdd)D$-ws6bxx(0 z=s6m>?B!&mm&>EoV(+KOi!}v1pE(fCKJ*Y=949RX6dG>bH@xqZ~>X#OIl_LkzSEtc)cAzM&9nx~MDF}D=<)$R?c zKO%n=zm3h-S2xmpADpjGrWy!3k5@{LDgr5iS0|Go!mwCMl@M#B#-UOiQe^Ai5%3rC zRR>b*KliCIY8guurl@hy*kBJHAOC-rGN0M zs9`lNINR69(4;MHs05PARN4yEL#bW|Unn9Tq8g`G&D6P?tM%x1IHTUbRk7K>BOANAD7#$q+7Ft#8F`0K_00K<>sE=s!ii#^x6r5=Nr ztl!JirPOP-Xw;<2&!;9T5eONtJ7U*)T`G@s#t3%!(NtDEuc!tMO)*e z_+zUIIZUk_-%{#%5|*8RWeoyQ?%$xi76d+kKw0@bA2bpJtnO~S14M$ z(#_IVs51GCxusER2@R&Atu|_@PNtx>DSTCe7Bt;;a=lBYX9~48%+ku&t(R~VFsVrm zR0QsYnH3vJ8kLHf4H&e39$##C?M16DtgfBv7F@M5qOU9$0i#t>arrV($$3FaSL7JM z2d}$2etwo}rhcwour$tPLNe46Q~7!<8Llh~umsxCJL8Dw7#!6NV8uL+T^VGB_`ee} zTTdVDlfT&D$5o3xMv-e@-)I=Ucz^s^HoI%}P195|s|apX#2T-dv*R|#UO8A+AE6?1u2&c9A)HEU6%wVINl zD5%P=+D()c4od-Y6_{@r6nWO@sntVCOvOF8r73Efos=@u4Ff3hl7xh$5(K~ineP$1 z%TT0+G=Qv=DzF5VAczsP&eo571t7QKSThCzHk-+lb3Fa9B~mshsGmrayx>5Ll5ivR z`RAjF0_1=@k_YF6akLKm4{TSj5Wb;wu8&*RdpoJVYB9O5A%ay!M(mJ382f7eg+}Jm zQm;_;ayrQMe-Y&}b!t+hP*<;ErC5q++DGDGM>c?OK9h?)w@;|*ja62fkQ!J5>>JFa zNaaW)p7z7%g#Q3dUNU`M)79z=z1><@L^SHtLtk*DbyU^QH9MKNQm4y9$z|0vl~gSY z3kBeU3lez;RqL6|*(+MDR+wc(W>lsL44{ExO351#Ajt+XU7PE9PM4WnwJIjPT_o0e zY^s!G21Q~4*6t3X0RaIX@y1*(3G{6g@zUs7pG+gI_0U8_TOJGHrxnk$PX(uP7- zluLDimwf7$RKMkt+7p!-&1Ngsswt?eR4Zx>rlWwL4UfawDO-mSknJIjqC6(MF%dBpvjSVrJ4{eEG#@TAggp zVvb&$uzJ-Jnw>@gas=4S36r)WdJ1}4Mps>0ns%%1&I-!c6ojQtKH^G}f?`NvwWXBj zYCr)X1J^ftgi@zhIasx9!FtRpF<^~TOK3pEgbE6z2wy1U8ulioYLv3bO&q8csp%Ie zlDgVI6FUOLnI>((; zn@-&r*1Boyac+(3s!c&?T`hUFzQ|L^sA#RFzRN1wT3SP;31!u&gX)l|=BwqZqfykF zSWPu@wAddhS5+V$;1T$On2<4JMXFOx0>ASL!~;sOW@Z|JuqA;YjYNP6k8DI=OkYmg zf5S~ajcakHLbXNkRXUfPLIJi~n0TRv*_4kVbqHxSFO+R6-ZzpGjihHfoqWr^4NPgF zK?IYj&Z$1qZT@Ew=GvV{(@vE#sz{MdOH4ty5&J@U8~j35yGb^kHmk;;r(IQ=^Df~5Z2}Ljg(lvz#yA^@mh!NjU(>I9@cx&SQi0THatgYOidrjRb>jInD znxLdKwo1xS;y)gmaMOu63Mvo@llsncCE^~GD&(p!#>=Uy)Z{HnWwa144GgJJK%1ci z%ws*&@|7r5rmsY+uf+lv%m63|kSsi)+QtFf5^vTY)K&AtZy79CO+Nc;rLrNqRZN!jB>i+=1ogR*VqtyOj675#1r9-6D zqot09rpL`q^?8>`Q!v2D5n0x%H9nuxspV%ao_blF#Vp=jnmLxOOE;L(tz9&}kSU}B z)*E7-{YQ9NrS+zisqw?Xl~KE*?}~1lP-(g)1=jd~soX*;U$VLe=aFuxDRIkH!D>=n zrc-P%XP0?4I)i%^p)G0L7m6WvUqNGdhR=&E08SL8Tga7SHFZOa9vY{{Sg-)vTOI+|!x zP++q$v4d%kd!Lj}E6S3XFpwY;3}Scy_xtCfRLKC%rto(Fz&GC0=ue@Xqp^sVwdPE3 z5PSasjA&Y*fFyqY-1|Y#*#7`|PWyJ_ZnkW3igV|XU> z2WxV18(dEU!`?)nZU=kg%G-rI2VfV4)v1EYRE7{BfGlPR z{oC_ux+prtlK@&zGZsC@8wg8^ApoVdC@Ex+R<{YAi#&kYfM=WlAW52<>i`G}48JVK zNeW^h0T%qW!&oes*pOh2z5PeG<%ed`w>$AtVYb}-u=haf+X_=|EwTzqcC3SfuTY2+GusjDdXBbFD_K|KW$87T0#Qo| zjhZI#4Xw0dbg1fOU53P5pPl`q$sY)d6P|o5> z?T>$9j*6w1qL9l*kYFs!O#=C8| zQ$edV%iEV}qi&wzN))9iHBjQz$xCS@r3q3KFpwmP?ThT0{{TV1@pKF9`s8~80Ry=` z@DeJgP-IXdzFMtE5F=d|q^jF~A}X@67a>#|0T=SM06L`YFbE!;2_Q)^#F_nb)q=rL zNCc706Tj(fS*nd9!<)d195f-PUv(|E%9KgK0L1bROkiev089uyDbk>^fClE=+vhuA zfeoz2`{{Xp1`h;hC zr&6U&8AB|PWCOQkK)H?NoyncAy~f)B z2RXcD*H2xp6&q?@R^>WU66&J~FhJe*p4byPozG3mid4j?768ByZa;TBSOK;L&Q%cL z2oOe*Pt01_a5IQb2+ znanw9v{(@y=6<~UU|;bMHefiUf?(u`R|0-}WMjT3q^SXkHx>h8b{D<=_^dKXo&NxT zzg##mRI*Zc8OR_Qf#3!hqfO~b+$)+@HOH*EAn?~0wkws=o@e=ydV)r|^XYUbMz6*JRw{ho zgq7IFC~mi`7fbbh-J~>%d!1ADthY`fh8n1KMGPPS0z+jgNK6CiB*`S5%>XIWr%azR zs0M!%X#!i&f%=8BuWz-?0 zf_(rw(O5{@3eXqGp1wr>BIfJV{wYzXK^IC;r%t&maHrwwW8PJOoB2r_W9o0=21p+S zb?@d}rdu~ytrhs1Y1GW3CWauDQ&O2i5s1{JSb_vbddlxd;(vzk={xSq%|)kzUeWgz zfT!7~Ob2KX;RVu_G)hv0tTvsXZ6G9dec|WKcx%LTdZtm{mP0#GuT{&du%}hr6&2lQ zK`O+tW(1QkaaGjwd4CglRlGf%2-&`xO>T(eN{VWsz9j`w%K||5w$|sxO%wDrFH%*u zrk-VG3rf;K1So@p1abYk`gVnSIjTuoi>*p-psOhaTmu#-{Kh_X%}{*3R-;ukR7PcG zA`Ogo8{+`j7$cHIn1kG6K41yNbtn)c0X2yLo*)gb2e;*OkBf0W(2#0 zf&M@PJ+bf79(~61_KnA-q{y5oCO;9kslWD*U(Xo@5M&sG$T0+G_Z>s{tYp~tJaKV? z149EldvWd$tnLIvNyp2mbs$2?pL55to86+wVmbZH{V^+7Vh5TdeXKZ-L+QL> z8q15xFlQu_C*XeApVQl=z^u$kEXI3D{{V>g`bIRN063EXOwI-l)8FSjW2e<5Cgg2D zZb#{Fwk0gmvd7l@m^++ygGC?xPWo{0^~z-zE9|vsw>Y$ZaN`b=q^)3XAT;43Pv#`` z@E46JH-^879eG`JP|hjMAU;r5s;CU2KoaT3)*NH)PXjeS5PuGGxnOl1ufe1#t<_x` zwy!3`P;@$?O}BxGN5>5#Lca?er&81(vr;xlDjUy}PM}Jp%84Nz%z&O@J!AYa)GB}1 z1yDl_%~k|lhWRk5nWldtGDoBi~-|a0j2IL66 z@yZq7>hxu8ONeOKTOST3#`ma%IG~_1F#-^C&wQNsU*#$F3TUK?Rh9@aHUtx6%uUDA z_W4j(e3eFJ1*w^k2@$=$H}#*)D^S*2b!8n*btN(>YeQ@EY0?sru;C;KnUHIZ9Fv~6*=qj)5{j@S+R-#$82001Z|$1Wb`=#jK7;#0j#D@w3oKCJux#71UR%v3;p$4=mL7yLHAueKbOT|t{J@w6E}m-XBjX-%yoA~yy~H?dj_`0a4o!k;}x0O zbgR>9$cwH3W26?D-bkMD9@E%aGb9-%JN7yL&;-YFGtm$MJlmMxiJgb{9+=P60b_H%4$@_!uB0BV*Q;aR%2t@!CC4;vFZAo(gHLbQ}*|n5Ct)Ubm?$ajMF8A7$kger?PAIu)2OK$0LI zh*QIl;O`lA4u|l-%9_<{3a*t?N}EE8g>5$m;xYCQOX`_^z5FxF=ID^Qj+s%Y z)l>mOz^_x``9OpqsZ{(wh6S-hZw;ibrkzCjb;#J_Ou=5$pOQ$N&&GJ@^caAw2b!6X zd9kqjNABE@G6MWfAPsOW0E0eaJ4gf=+#BMF>lQQ>4~v*=4AVK`MmbOp!bjbLo3y8=PGa1Vpn9x1Bzoy!XBwn{B%5T|Hf1)i(1> zrzKGcSSM*wJjfWw#QSNfRA)suB!FV}7ZD!+0DHzWIl5q0cDxe+65TKx;I4Mw2 zAdUziK?Y<;UaCB-7?Ov|(svDLi^#YJcavf;*>G;mVtF%ZAdpOPKHn@EpB1%8u$?;d z%XWn2O*reTLBs-ET8cpfAjjL2)(bb_4v(1XRJw?Iq13q)!2+0)q{_q{ts{tV3462?EqA>Q_re{xLP-S5UEjVYpQwOu;=io~>}6%CFpMO#pk7C=&peMFS) zDBbCq^<#+mpTOhA4M1Qym{rtu`^LV2&)E4 zIZXIUfBhwtzyk#4It!^~iOJ@^5|ZD_<^(7bPr_{=NxYJOTtkuSwI4f_R%X%s#Wr%} zkc+KL6Wjm^Hsf={)|0Ch7F$!vP*7b3I!cB>C}=eYxZ0#a`yRe7&M8dIRbW9HEMj1y zk+rS}BhcgNj+RNu<%s5#iR?)#eTajJ4wdbt03JQhu=&Ku$Y=8$OQ8hSiCM_>r*cWb5|aeu+uJeHMRL&x%W==hc0Wn`Lztpv zNna_{Ce|hlPTU(Cd*iJC07||vG2(898am~02-G$PQYhT>id}k=oS@RwvaBfvnZg)^ z`jC{c;!L{<$#p6O)&-%e76e;<5PJMYJAhE%dhPSG7nWsbnoXRu&3L z69PhkkFIQ5KgD0PLTG_6fRkFF2H0qG7 z5u|GX$t!ZC3*JuG#EGT;w;iW#E4@qtsHkZ;4SCOhJ=QQT4z6jZ4uMmQw(Rh;R0rKM4Y7g$zh zG5A?QD<<2t0occ+T~^G{twO5NtdCPcC=`NA3#?7Q5Camoihn?!AN@ku>a`7&(79i6 zZMUiFsFusFw)3IKT|bHr(Z50ho*$qQ2?Ka0T%{f06|!^;M|T@j%uPt zV9;Z}rU3~C0hpM80R}H_*p-y!%DRP=H)*SUtbp5;p|{XZ;6#AnARZD*e=&>!BR0M~ z=*Y=SFlx{$8qG|YFnN4c02c)fA{8CJkDFeZhq%dHPQnlI;E+KI4t9=U5Pst;2`SX4Q>bP` z=p?l@Syr~jc$3Jui*1RwO*GL6Y5J{2}4*&vsdVn0V6C6xLTbL^9Ca8%lymQ_hdboTt(WlC;cBitL9%>YZaWX=HMhYA&EEW(t+d z(NGXG)TnI>tz;-BND*d;`j=Yiy(=zj=JQmLk^Yq}W8&6ht4gYXN`@%X>>*WIuK*se z{S*B=BgAWpb8G3%D z%pd(zC?Gi+h}8tC7lH!=G{ zzj<`^s)E@^O-Vsc)io_M4K%|IB?xVnTS-ezr3nEeYCR;R2>?jPMk>XJq(`UUd9~nT zuAqptZ}yB4J6^>$?d~>+B1)73K_GHW2!aTh9s7~d2nhfSp2ANjus^?BVHTUPl~O^N zj$+0;`(SyN(mF-OiP#GB~zGNLvj%Az_qVE&QnOdI}X}Y)o z5a5M%JQLhWBeCBGqM9n%dg$K{WH26TZ6Aqu5JUnw0|g~lTE`ee2A+rM{G>pE=s++8XP*ib&=+EAHOoCiJ6^!~ zL=X0XZZOu&R;dY0d^H;-09Wck)Mx(yCXV=3LwcgDaV*fb^UWrA)TN@`Dr1eSR25DD zg#2~nsIFp|EWhtjX?quSm);;{yo!Ky=Nshpiw~u}R{{Swo zDI*mgQ@J4aGu!vv&7wd-5(pyq_QOh6Tv$MYPU0Zq5|X7ECK4cSGk_*|=&H48(WcdE zxJqjpnYJ33D4%v9dz?rEInts_5<-E!i9bL&J+Ur$Eu)U8y??xQ?1N*oJeAtg`)Ba? zONdI)Y7;UYVvRmvOs8s{UwxpAo^qh-dBmy$HdiL~7cRsf^?g6=Dlh7s1N<6Tc9@lL@}F@wl4E78oIkhj+UXn;#Zo+=$VpIT4-*1wykiI5QZrb z>e8YJ4ymC8NEaOkpyvEX*ZN;X%By@{r9uUtX)*`G%TcXR608F#m0=*) z=W|Jr$!4?81B|sTVws;kMs=l0IFQv{BmxOp0D@#+w!B0}p0-)^^|GbP>dIGHe9IVoJAaYPB-btKDqWtszeN zM{{T-WdHy_FB2Z3CNa@NFIX0uZ+MB^#`lr(j2B9xLuzFN#9B?KV?0=!;eo#pX+>?y z`1{ohv)L4@O#=+&cYDQALLEaWGM9rZEil&Iq&&5PqL891E3Hvo-$S)9MKsa@_?0wC z32`K8WhZSwi8!&O>F|qc8c<8N%AuWAN!rZSDX6yYExE(yhq>PD_4mu}qhU6SElOGb z4Q~U_xg|w#rd>i3Nm`Os0IZ0~QSCv~`XBusw^7c7WEs&+Jt}N!BI$K2jxr-5qR?~Z>(l(tJr&?i4a^qUN zXhU(ne2S}$MM{&&OO5$%ER2;t40MRpCREX? zDWWQTI=T9kE5220HAP@)Q#7?jF|YZGnP_ko)vCNloU7A%MP{Q(TQgRwD;6hSUX3=U z#gSGa>ld>#Y4|j&jU|e**AwH-$6IMTRr1qR^L{1xXv=hZk%}jsW!u)1N*Q8`^>1-5 zCZ?*Yjrv!gs7hW9d39s?C|a9aeOIRBv){vy66Uf!LoV;qI=MeP5>3q-fKtahjya;;>LvwK^50<|GvOfQ>-1lB-YG z7P)%WPRcda=usiF_&1Hlsl>rj%c_0H+;pu);^82w0hInw2VK>CE7J2c>F4X^^4jZ! zcW3x&86Yhp91yV7l?WxKAleQ&<7bUl{{U1q3Z+!F7g(r-C;&Pn!$sIh0GX3G(_;Ga z@dC}L8fL!!FV^)`3VND5?HZ~rZ+aFK$Kue^8V)FsTP-~*cgqt7I*52v!Vv>NXGZAMEVH2QwavW6N+_ydw^3JqB`Oa(x2V+G)X7>1Lr?j!=8#l(D4LwdL-BV& zIgk2Ya<*eHUXs&uOe554YT8929Zcz3tXocyKrIFUz*V0wP*QBoABI6@K-yA@h zkrT8Z{yUQxJvz#S(Br@0Y*C?xwG_=v{p&>U{91=39H`YjG?6Yp-F7F=7+#=FJcOPp8hNx z#U@wDXDOqy1!GNv(=yVhZ^j^kqI{-y!IUzYY9?wm&-;y!pb^2jC)3veKTN+$*IVz4 zbT-cttL!w^J6ld(b!+tX$f{PwxPd`Hx73w1>h6vqx{}dssJ5p!5eX`nB)N|eQ*8eL zPRduzQD@T5r~yid5IR1hrCLa1Xd!`{z^Ch3wx#iD<sY>b!C(7<(VAw}-=`LJ6Le!e3+G#Cz`xBJa3TZVjGk4y#vWHrE*3tl!ml{Ho zxT67c0whuOuMu@T_DZf#`CP3fsA-C%S8~NtwK{|eP_n^F$&e;R#s6*H$<4~p1pc? zR-CYv20*kOC^XDoBYVyU%2ThEsO+iaa&Gbq333}qHa=iTn@y)5p5L!86a^oQcUwAY zlD6zfWu+-f{DQ3ut0`PaklU2%goEjE6Y4S1y%Q~7u41)8N}*qd)Rlm-0qN8On;lF* zn`t=ebn5&*mD84q)U8NXeG)>{I;m6eW1&-|A3IE{Q>LP&RPupnAb|o&9%6g% z+Zmd#OQ*5VA(KfQ1zp8T$keG3{{WDBivF?0MlC1RH;*>I3;Z}$zJ{^3@7Een;r8S( z`c(QDEe71H2~3Y9hFxgNq!|!Kda3ZwOg&dWs?{k{A?gTdpXgpMa7U%*2Xy?i(-j%h zMG#a6Fcqp0)g5d}@|Kff1c>zf+4z&mewh3Fk;P;><7QL9h-tE!tR5iS@I z;aNo)lB6+kx>yjy`bcjpkO(9zLy!p60R}-M9S*VGw0De}9@%!RX%E&G!zJ+HZsTXU zQK<^tm8M-}snCa#0*9K|)3YA6J# z3g3lKxMA!%kJQ zDs7sE*y>V+)44)Wrk3idN1DY#QXi(N@(nwTyRqi_&r`_I%oV29z719azE-+1T8U8u zI@Cv9p_5TYm0$>9SITKJm8vB~uR+mTnLc`o8jC`irBzP!>ZH-B0(3djLqiES#{U2X zt<=^!4;B0_b}=F2K7ACE1U}08+c91Juh}972*)7$emxKvF`6M+AC?2Vx9$vY}C0nt(*! zz|Zv_MZbQcXe$7Q_B&qFVIRNKVF%0wj(EYCB6EQGg2+zPjKPGx4IFo;`xgR0#>o|uMkHq`MJ;w6gEjq)Apl{1@Nl{XK ze}#R&7^;ykvpE)p#A>m2^@I=B}G64f}%_e2qsDFMsOxaN-795 zZN70bE^ImPZes~O{{VL9?|Tio!%9@`#;3_ZQYgX$t}Fr+@Km5B3YiEyGEyfeFgj4+ zuB(7a0!L#XaRho9!WIBexC5JW>}F@S36v6)6r?~KVh`J&c;kup>NU`o7EuxDVj%Hv z-LV4#K?C=E4p!Rf-KZ5Vf}`cBB37wNha0wH!ARcDt<;T>q zptBHXVLV#I4@nodKSy?mBmv3Y0Omm)m>G}zcj$!#aRPQHya^`2MS!=bt{MRX;w^2U z$Q^`RZLNnobdGy@hc!U z^CGPh!U%^Oov%$Dq1%I@1p!GVB<)THW+5U8B!S1I5d;7_^-9Y~5= z<4O0osN4cA#_@|96jfMACf1nT17HtvGk>7Pz|j69=p8>o9IQhOH%xrCf&xO6Qjn#P zGbEBEer=oR-jeu0JQ-G`kO)9kCxoVCw#&L2pvpzo#c{l z@6Y$1eQHM@seQ*5cS_U}M`VmdP7@Ef@7(@>+Z0*H4y?L?V`%0i zVlKJUf~=?V$Rn^gJ-_p}C!&Cm2@+x>ZHe#SnZ*rD6YYD)ydAc`zc?3tg>F}*ks=7p zn9O?-pK;fW0R#{&^)hFjh2$H97l^Y@Bv)0gs;WeVG92?3Rlor#Au>QQ z=@O!P=M<>Ed#NI-F-o=mJyXF%BBKNK( z1cYC!F}lEjC3x6vvGn%szB4IiQe*+B8NG~| zu|0(Q;TW%4P^Mq?Q>XwEsXGjlxI{!p%wsTmWm;v5ve}kz-eT9a!24i?Wmy6UF)~Ql zesX<2qZ4+4*LPR6&BH*7rMYcWu3Tv8{UNfT-qoQ1oVZHeR&xbFnHl2$0K|U{W!p7F z#3@NvHW6~w-VU}0@Dg?asHUTWW4*d(guF>ybgKRxsa|r$>Sk$DF{ClnSOFi1mUi_7 zoya(F)3-&h@XBS~kFer4I2Dv^Z~!Jj1Q8^GCJsj(WHhW1R3C;>!zl*fp*9f)Ok1B( zi)b|KqthTTbY)>88*of;2h-mZ^-t5Co5qbEtJa&Zrl;4`<-=EPD{Z!_lp6{{kYF!z z;Rz*0VM;OS+XlC!e-g7k4C^&=JwlaAy#}wr_<5BCy)QGV)C{Rrl3)R(Uh*S(m;M{{ z{{S2GY|e8boS~QT4IKsYuF$o~6+a0OWa&kcOp_MofNKp8sI)Eet551nd-nUC8p>A7 zsRMd9A1&k@g*M`0NmS%@^tVOp-7~M`DD@tjnx~k{Ru*(5!wWJrfI}$+5OKgd-$3de z3#e7dbs8;0GewAHAPqnhrNK5Tzyc2-i(qU86-OKcj2JNza%6k`zIwJG#7BDr5g?u* zSlgNRIHqDWn~$%qHnu182qa3{KK%Urp4sdtuLngCSWV}DUG3ZcaqTVG;W^r%Q;eT^Jb&kJ-g&VFIj0rX!qAnr?LG8bw`r+~I^%%ivnLe40 z$VdS2Rx7bAK0JYreR=A_Wl0( zv~7;GeF|zpS>g7iu+%ylV$FAAyeVXaBvrJODP8au-qKQ-nCs(T{>WaID0qvd^#ui= zJCmtK!sp;Vs2ptIfhUcz^@sleW7kne%k_+l)CjbND&QVVIFoMPZH4)fNakiDD-E zN6dPRZvOy@eO8L}jE+i*^$aJx{)A)4Zn92kDI{-p`ep853%3(?Y1Es<+i5HRHPuO4X-FxKu{+G z<{-iQ!~-2@s8&qMDX}Z~g^3myzptSB;B3M@IAJiww4MnOBekSV#`fgm5!Y1fdTI!j z0+6CWlL<^C1d{G*=pfMx^!Q&nkfpCp91 zBML+iK{&|*ek0>0f`Rn200=Skx91+elnE?Ui;*+({_#G*-?=4Sf|~hm6?DiO%0W_- z{VS4~IRPh(5ubSIbC~#5G&@)l7Gmpb&HG2&j1Xw8T4zxpo38gf+nBMixx`-eEp4W$ z##~FOg#jcGnBqo1agjL@GHr78P@pQn%-G+Zj1JIa^28}Zsw@O!ej*LXkVf%w?=gvI zP1ZQq;gsM}qqwxDT`Cd~@&~0#9Ha#d{D* zApU;G>Fb29FtVRYRXvFj!T6Dm-ovEwgZP94z3tj|-_r`E<#IJ><8k zm8C`j87C(_xHy^5{d)-OGJvC0@87chx%vHID$^hkVtsz2bAE0|B-me{qr~lNr7X(i>o7MI>nyCD zg3ZKSK^&ZY4g3_&zHg`aqr>&po}Fx%&t;T|Q&%pitRVg-(j$)ju!B?B)NR$5W_-=m zHEQ)lB>KH$0(U}_#7QZM?Msl&DXmJ0)26L5Epja*dq9Fr-|326=2?|0xeOYU4QfTy z5(Ka}0FnXX_X00bJYTbZ3gF#9AI-SZCHjq`LK2VyTaoGnfJsR{+;P`H=oz5Y$}zPX zkbv?d@e%7`et5=XsZ(YY!mAxR^$o}krY1HAPo%-z3vk*Jak+}Df}%pN+<_?>IFOQ`u%HK~y5f=<085+HB1Za3csk&<* zOK`S{o-eUI@i0LFc0W2Kc&Fw zZ#&2cDFDQYAV7smjz$0^05chwj=x7qfJx&YHFLAd}8P0%Jd?SxU%7Hrx7s>;^Q{ zt)}#V*eNCw3W83_vrsUvNV1L+l<7xc21!Whzqmi>A}-*=lHk>1XJxvK2tUfTgNa z4~>f$7ww#5eNdY5-j z-%82slz>F43ELQ+c_MLaa>Gb57dKmOPiW-c-<92#>s9HE1*IO9n;Qr|gl)gt;`q{Jy6Hw0cJ3gO z0g=HR8QZYhanByeDgk4xd4s``bsJ3F`eU~= zdY8g)9`u`%^}6LlTTX#k!|gU*rzEL9Q-n&S5rP&8PS_x0u6}Zv%$v*_RS=L2k;%QJ zM?0UEGfkH2y&kx9rfbr3AX05;;x9UtbdW{B1Zo5s=kodf(C?yp-w!oK-&1J1cj|QI zMOu_n*bOCy5?e;%!cerNZc;%=awZ}VJ$u1^FG`C`C7)$VplMe!#h8X8%^=<)5-3e3bvkfi!!jFn8eNl;kw$XHs@wLqm(lM0cL zB70MsBG>->W0u!{hf%3ARHW!&tDpo)wShav92;qDvF1KDge0w7 zfPxID6oqml5CHW8Ip#S}h)n7&155%e0KCuW48{43<`f7agh`k;=E8Rt-{lx&ro2>A zRUzADLg==rlB#t89om!WTS^K^M`8&g4h+Xx{rd8Qg7&OQs91uYap}3h-Hed(@2*ibK*ZP5w1w(XI$Q-NJO!C13 z0=6k_?oLT4X&~;%5!X1+{{Rf@mjfxCrBw*>n)6N2gXRZHGPq%;BSa8)3_P9LMn6 zu2Xnd%T!WCGE^jKi<2lI$RaP_Y+3&R^!uf;CFtfuax@DbE?#zx<9s_c;$>>wOKe)2 zXsSS4@2$k9IVA{7Wl|Eng^ua!p1sH37DXCy*pg;|c!&+aIQ^ z##=Dau!RM!{_R8oF~rBTVb+@ab-JlyuDxxtuo5Y#k@$907x~h)61P+%Xa~$D3EESc zx5@ti4!V9-z9xK}*$`HlctIE46<%#0hyoah3?ycHhw%feXB4JVog9z^#Z?9B5M)6W zH7EN>@{$O-Ad!hnM=3PU(}N%b7*X7ywW&pA#R8=Sq=cyoleIW-B!s6#a=Cn^1$}hf21x6oO!eka%W-0P{iKF@2S;>L3|g9Vfkvh!*2{JaIVh7l)oK*!9MX zrq%YB{JKTcsmi8YRKGz|+BZ~EI%K6vY;7qZBq_C_aGlVcufcj%O&W@I%77GV)g*xj z)Yw|*X~nf7xrhKAz#!ZLcAurT#bEI(#>=(hwyu(ft#mfl-gSV>3Wq8X*a_a^(+e`7 zR037$NdkTM9W$g+rioIeGg6}}ys)y8Bmg9d0s)>yq~97U8C<;;Qf0^h%K>6V{IW%u z?{I8(F^cn3t?H^(>wRR9I9Uf7!BJTq=6eX|tul1=r*IMu*ZkmZK7tMifTC}2t^Szx zol^3T=a5GQYFdg+eo{;%0+2}{m?TIBI$z~Cv=I@o`rG~v6IzpSZFwTw5AYz0SZV7^x#GS9Kk9YuTM(0(uDD=)?UeeIdv|8ovXnV;)MguPruIXjMEdFofY+1n%~hu> zL3A$K&FVL)G3EAH^~US2qqJBl6!m3G6wI`l0FaP=5ZKyC7zO}>I4~sCqgJbFp-M@J z5u|;DZMFVbN_1*fK2S{VO#RQduOq%Ge~NxL)z>jsNoL-~5J3(p!w=PZh+g0c2!ulR zO2nc!0%xseQ=x%MYQt0jFdHfbhOy+BARA2FV@r_9QlRS97@D#`(z2^O3yb>t+;NZ0 zmc70zw&7e>9P>?Wa$PC_0DlzXpcy3kism-sJ>YzvGSw(ns+BYbrtH2}EHx`IJT0Uc zw$g2B?nTzD)#2rY*ns!onK0i`^Tat)`BIdelicT%oKLj;{6F*`4p?cqhWalvZ*qJq!Z<|rMR&GB~%?( zH~iIq`c_?mP*tm12n6E#S?DNiloYo529rxgK*CsMq$C6-v`JAQ2;NTRsE9k3qmA7qIvP|e=?b6- zlM(bkIl|ShlC!9mCyULkzW$hB;dY?^0C@F%{-(iBs;c`U#fqA-=9Vq?!h|T?D(V)q z4z2Y+_;ym*^FgLs3yE#z6Z8l0E2S-b$587zS~T-LMHu8Vb>5jYdSxZ}iJh+1Sm^kf zreQ%vH2BF*gD=Juvvm^~e;Q|=fTNLiYE*z)_0SMbVd?~W37`OCjWevvX)jaolSLTZ z%`a@Hv?RQ@T&=lOth-xrsR3`)E)@VtA*N6iQrj)SLO=wlgsZQtDCLDDV#K{igHodz zb~7W;0WuU=Pdsz~0Eh`3b`d|`Pw(16dcLvh3YvNsLp3ip8g1nREU82%%u0a-mXb=+ z3>6qo;0%bX(x}U(nNY+q1jvbt+qKWi*e;D#F{l_2c;-xg#uL_l4%tbf?Z`*`9TonC zF9HOuW|pZfR6IcePAa|6Fz)=y*h%$3tITDZn`IOQ(v{YH+m@qI0c&nufxr00of_-# znMiLk+(d!}dUZXl7T&Ne#OX(NN`f~;4rBwf92vkrBZ&RmQi~Narc86pjv@}{ak-Cc zN>vkBAkO?o>UWdv-`?1WexskFxcFsShl7oP2xq3qjBKu#Wd zfM)oo`j-CP4yo|{2~PTu{rT3`M7GeUw571HBogk}3E&V&k-_}y&gGf9u0mic)6SN> z5*n2yfO!&Rjv{g1GMRwACo@nLI`bJyYDv1f8tw^Lh|^7gGjd`sPB|C#6XP}8R%*W# zbfnWGO5OExYD2Emmu~C-0CwtKX3iH@UP5WwWvD@d=P0GrepK=w59Yi{pQ+OPI-OFt{<5oO^54zo z8M49aR;i|wv(t1y0}!CmV6@Z-Y-w|OK9Q70&So;HQS|{)=!Pr^Sp?{G@`VCm%1G}}Ycstqu#OKNquOO*93 zC>JTJX;w%JY32$Sf}n+|O%*9^sP)(UAJnM$o2Gv`3bpC{B+XG8rj>8?0f63Mt`}M< zEL0M#&7?bFI=)iAMzT|@QC%IX{{Sx9I0teAoJe{GXTxlPjEj&Z?~=s?H)5~3SI9~-)@wzAR)vC zYTojkC{l<^q`G#egpH{(6re-^Iu@rxqf^M)e6yjD?NLB=1a5#JC9X}#ycv>C8&TPc z=wl;RcMdz7_7keXn zoO<7KtZ8*g2wGO)MM@NsccxP+Lz@Cq0!f-&$4y$u7L6ETA&Lfz#+e#pzQ?`B!b+Vp zD_)Z!RHahT!N6bY8y?0CZfARAksnijJzKm|@e@*Ns#4-AE*EN&z(dy;tYODcQ5{hY&QCLbac5V)tTML_Eb4^Z-Dj8h6 zlkh33GwK>zKypA?f*puHV;~FeFq`Q%{1@Wow^-bsaf?ozrN1SW5>J_1OQ&kCZYj3+ z0HTnTp|$TxE8c<<1f0)`b5xb9bnSoZd8sym{*h!~JT!?>Bq`DXBH}NK`k5E%Rq_i( zN5MJFqgGSpc3+I4f~Zrf6qW$#*k80i;+NDWsMo1s{Xtf>A*4Er0GG?K)2HIDv$~C#X+coRDi`8 z2qdEAt5B%#U*M3ZOo)=8#O`$x1SAc5m30Eel<&ho7OT8Hy*FNh>-L(|)3NMJ_MOC9V4qfSOMmcw)P!{ZA>D*6XYJ%5)B@tmj6GwCQO9i$y_P z>rhBanoUNi%*>v3=^AKQ6oUYhWjE4HTTQgA7}Qok3I*7_QRtr;^s{Su)Lm@14aT0X zk;Dp`XBcr*?jnK>PFC4cB^y+Ej#{>7E@{`w)v1-uQZ6Z07AVrn%F7_K z5(>J5aUyxe^CcYJ9WDh#VQ?ZxZT4a7_r)03J`Ub|FSnwqj5%?!GgyUFuHNcexZBi{ znSBi@Ah@v52~tCgDg{7#h$E!#DV#tawNR*GJ`AED5J@445@upC zNu23PNh&r~fuy8)AIek~3o1O?iI4~+Km_~9A5XqNz2ULB>A)AMJUi5M=%UuT67n}w z-KgJjOEsuv!j;qBXdK-A9aCg%R_4}~G~%OvsgUaw(zOiTB+gUQTPIl?MQS7gtsPiE zRt$orJDz{0)tP#RgVYSCO+{6xtSri;fM;M-k`&kyNE5^Fj=lra*(hi{M)2~kr&0Jz zs*2sQ-rOi%U6i=L<>~!O7)HuVwH&2~7qt!4fYZoBYI#jJW0LU_&}PeZ3T;n0L{rwZ z6uL2LVVTf7BM2mhUpAHnbr7;+ua~8mr%tY2szZkiwUAS4Y_%OU5E=CtQ7j-$fFkCI zUsq3WrFymZ*X!EB)}=aDr76W9 z%`^R5qwXSoBzEYftf)dZ;&>3;z%j&`o@8S^Qdx_e$-d<6x&Hv1Hm&sjMvt7~FdJ$L z&u(xdnUlejj)@MWkud^Hjk|i>+S`zOU{+FtQ*E`beuglbvVqmnRJ&GE3TfO^Y@n(T zpaDrzgc6{610B0`*JL2r`9UC?5_a#kqyxm9L}B*eb0P^IlQ;aZqTD~?DszU}rD-D& zA+V#z{{V|W`=^;bNvsr50lD7Zy}tNs@GohT>SOeelw(EGx$06Jr#@*CTwzdAupFy! zf|W@FlZgNv^&M6V2yV^5yhZ%cw%)%>;Td$PV|cx!o#Su6d?fQ8ewD|ZQp3d?me2(V zYyuSsNhGV#nF=OMkU+;?OQk_4Q3FhEVf|Cdtv^K)U2!kaj<4P&#{i##GahWS~d|p zo@4uV`QkQG(Hu|dg8C8*Y59{dJ7RnMKr{Ltl@zT)3{RJ9kV3E9>$l4aq9l6!wjbZ~ z#Gzto%7>XlDcrRwO`!l1rMcy(?MO;gr4^sbgn~+lNKD5`PLq-F)B?w0CJ7fja~1$h z+qNWS(hD(A0Fp_72PBgK0l6f=82teFPiZ;}!~HE`ah;D+TG~}xWB^e6(E8A^-NYAz zP9)(gNdT*8Jzc#yfCvJTDi2tac>e%#AbLgx=`oke0{V?w)f+KTKsrr8p+(3t5m!`; zG>I`dm1#UmU6jo&BYt2xQu05fj&U3$cKM9-JxqYEH9NpNK=~bv@K4Ivw;8~@3!Uv~ z+qgeZY%^W_RlnVKg}jE)k~aBi2_|!pl9`C?uWn*GNEBp$=3H*N0#+dif&{i6#xkkq5)YFKmd^#88IDBa;k>F85b)D<#F~H zkY^eoJ4a#%c(D>TpHbTPTTQ6~w(kZ`;-URSk&!ZRMn2xtJv7n;G*1^k_Tzj0#wMqk zurg*&@dp0m(8a!Y#y1D4s)Cl<(o{f!$6*tRJZ|m!^s0m##i!nOy|E=%r%=czYe<2y z=Kh!lt)eQD5()@21kW;L5_9&(MlsWv=@SI|V!EOMGuqeVw0*C>1u7}F5)2%iXZ0E4 zIGKr&*Q7WHaASLIx9|MowyKcK+#B=z{rce#;Z_Wo103df&mUqF zO{`7sE%g|Mgn~bN;x_RQQHy;lY!s>=jk%DDgaZnvq!OjLNH|iUB`M&Ek~7w0#2N2{ zO)_-I__>lpiGq}c%TE EldihfT}NHFq9LVpb30aj^USjvI6(wLz+@n~9G%Z8a%Z zb`TP!tPIBY1W!JaIO#eDP@>e$xD!+gbbE?we8i45F#3DO6R6erj3}+X8JC_|iva}4 z0R3cMEO7In4{vDi?*cw?Gsb7F7b9zW#~Va#={y6*0D~iIcJ}QXdQSrl6$LIqoI!y( z?EsE>`+nRkjk*1w(+h=m8_Sk!l`TthqQiiw3J=#E{87195@a2_cjkUr>vahmhkW~oJ0rsY*_t6-)S%Zo~wTN&Si$`f2 zn_L6f;=`u(Z0}F1wX&Itxq7HU)k(-Lc_E;Q5(lv-(*<`+C7;JCnv`l=^LCA3)gTtD zooPRYuUcUZ(>}QnasmpKwI~WFDFJ45e!pMAG-%Su8C=bBN>(f66zU%P1tp*XJVB;rz&=s&*dm^gp+~^l;gaKJ$((*`p!eFWa(z|m4=$i8B(T|tGEOd3`B!A)p+M@ zaW1jZb6q1ln95cGjRz{#DS~N{xGHW;i^N-LJK%XL+mSL)Z)og)ZX=JLtcWa0+B?X% z+;{DY+Gu>&9CPpKhYE0)69>2;6Wb(YPC$;LDnTHSMK@l>#z9FMfM-{kkDYAcJ6M zZUxMH2tM<+^5CVWBHi(k0yvZH+DXPl5J@6nnGwfcBncO^f%5iIbM0M1t0Zdl&2^ zTUcru@u=%5?vK9f^tEm_QdV3-KyboRR6)W@LWbNbQ@|Z_+=AsBD3vnmRVq^l@P%p8 z6qp2vEEtJ55Kj0fuGG&|>a~`wO-hyOB{iv0j4C+*5vR&Yu^&tdRX63P$0qjny+V7}UzyU@JK&;>&&FEpY6RHPY3 z;W7v_2Oxq(Ns{upqeiN-&XPj7X#xolVn){!weN@4q#Bu4-*kzXi5SbJ12>73o5LB;Dy6OU1Vh))1j^@JnvHnW3 z5DPAoF)VCJ1GVSc(T}fo>PplVEwrW30p0}e2}lEz0KmbLNj-)-WeU|1{H#h6Bpt;3 z_9ub1`{Kbe-{>G1LEXs_Be%HkVTM~ROH^oflCn_JNn1uFrNB?+n879qo;d2< z)&xRGb8vQo2;7N-0@gpAGvGO~h~&xs)A?ZD=9a1%rmARyTy6Ws~xr`4u*^?j{J@9eq zo;m*jPObxn0E4^_wYT>9oM5X`YEH^Qvk?dJNx87~k@@$=Xm?_U^c5f&BN+z@0ObAh zC-uZqV1dur?>@i2(S;sgY5SAf2Y-}X4$WEFxS*O<4>Soal@O^iKoS)oL6{?v?qDkQ zjV(II`-qF!M3ZqJzf3#ft7+11*AO-)00!na78agG@zC$~e|R^mH72RPUG0{)>yX_I zO#r2*3v#9RT`eG`EC$F^WGyhSG)jR4U<31i@vE&;thBmi4PP8rp;5J{RZ;Mj!3+sA zc>E$K)MMxm;FS!&OwV;Lr`0PiS1Xpu)k?K05EdC#^ogf_M8^@rQxol@aDT! z(&`#lDQ$M=o<2+M?fgY>bT%m4+<;V32w7I(cBGi%bDa+|Govl1NUophyfGz4f(u61 zk`JW!#fOZ#Jx-a_YG#zJOqWwboS^jOs8po-nwVE0f3z5r$1*X^KM`&pj-p*)yFfalWx0s!zefqCWq}1ywDFa%m5q*fCa%Me!MmcqQ>d3``B$5W(4OZN3 zA`bnrUUbFfboUy{M7&W=TvACBC2_O>AVE+G{-J|7GuJ}P5GkcIW&#gsB$$!S{{TDV zHCoKZBobq7tvDg7VfLLVbgOZbnE;^VMohquWBTM;E31zw_W5z?w>J0N8Oqcu(m(18 z`;#(Hd}ul{Q1~=CRu5BR|2WrvjE+HV2 znZP@w5U+qTO!7K_*q8)tMDP3k?}-8C(ii4d}znIAj<0GI*|xb?s-#=_+}3L#raBXR5x0$>T9 z-J=5}End7PuNi78Pfm4pJq zVq|$Y8FWn*7GnNP=YK_mjZw*hFI)nCtXT zqAOEkEJS_C=H8_L0DGU90~pgV4X3r|)9;C1$y}ABrC-;xG9@u0AQL?MrapSFsv?CL!zu<=rdE(xhRCw4K{#u z765}9fRh)RD65d^LfR>HwS{e3S1BL^$E0vU5O~NVp1FI}4@|@mVhA(H^v6mP2~r^2 zdl3?E5&8W_8a3hb^wmm%%{z@cAV>pvN{?)SuX8yPI*x^_q3#$Tpo|b#{{T-?;(yaS z3r4Mk`i|B=EJ9Yx(&-d~B>Vb^8R04f8H4>oAOXi#q+IhBpWl2|lm*VCW4VrE+=z|0 zj9U)`e0aY2ad)M!w$?B3-h^E3?mPUN+EfswwxP77$q6YNLWv0qPy~*vdY4M2pQcfO z6$Bb@rgWL#am0<_UInl)4vw{HuneRSNRgzH7!XK4Wh}mc@-b$-PP6Hc5iAG9uMUfE zwN#S!sIWGqCc4pB>JZ}IZk-4za-G)|P+ano+ES*1SY-&<(CDATKjH>!qh_-H7x5zn z%9@Kuru9mX2}l`Kp_nWPG~9}6m6?~}RA6f}rAn2lVmx8tLDeYcI=@b*8Ja0M$_eK= zgg08MEJM-)r^StW(4wNNQ;L*k^+4lQE^KjJAc7MZ*bD)<`^N3WpKRyq{Jm7G3n4_0 zHuf-PEP06UZS9T=nxymuK_mt`V@bK%FK#E9+AyNQf3LT=qF1>pNkK}Fr`&c|a0vIG zZl^TXpf=OA#mW7Dewb}6#Y!{g)Ch<>3-7=0>x(&|{7);PZiV$U+mv9I)~5(w)g8)A zh$zg78+h%Ks3;$U0U^KMP8bK4s3m)53{rBOjB1R0Iz(*Bm-*t&iMeP!49 zeSB)(^X`jHL#Z$S05wQT!VcLPT#S`Uhd6^fhI^^_WiwQ@p#q|d5-01o5+ZH9jj^K3 zb-E5#jbtX7CrcK%1d>4Vk@%&qLG`uz<8Rg4FX}H!e+jL2mbg|@I?!=zY1IWh6cD17 zB}HT`0t}?2kg+8&dA(kfU#4c2$z>?gAxPM4eAc`I06W;<8s3}ME97X^Y^_8p>Y}1V z15KG#l|Uv560$W$@Ok3@0M%FfJFk8ky?fWTR=*La5S2W-cGyzZ!ce8STuO%Fx zcAzKH49+@tLGf?IN_i^e8nQGwC3Q%MBVa|MNwuwvKZyDz9;ukA)iPuGe<&G>K}AId z2|}cNIG^=3d1txj9AVa%f+}96r6mouwF(jj`H7H_KPt%thzf}iPC8ytYD9JrT1Xc$ z5)AANfh0w(>paIhOwy>-gX+@&oiVzGn3MJ}ZS9EZyNcOZAgUrH91LJ*fCT*FJ~|yrL>QS=z$1CT zU<9Aoj1sloM5&MrLA03>c-r@w`ANZT1>q|QL&*U8fLxg5oTq320DaHDLNe)ghLt2h zf*@%elgX2|CtBL$Skg?-o9O@mZ}a^yUqw!*9Bsyw7A7JmBoQ3@6Wg3Y>b|K^jr}4! znTMlQ8{Wcr{oia@y(yzB))^{oXaw`JU~VzFDlx$VH;Diq_{rxp z$gIjCt}ie)2eqz$Ub>M?IpwT`6l9UMOc_#u!a$I4 zV~`0Db9wC2R7L^>kaxL)Egk;=e%F*T zn6dK>bj(CpPcnD?F<2hd^)(kN>t$m~r?^o(uQ8=NA?CN3sAWMTdQ?m+yK9t?u${-H zMN1c`c9GRm)UH;c)7CMj|~G04LnsGtwTAN*yYu{XGh8kTGSho;=Yam7!-tm6dB@ zDsjhB8fu;5f$7>5;d9hfc}5Z>3C3=hMsQfxAwVNYUomiINi7;}7K1bCaVT`)OB$r8 z1^@ze3xgz)r?r8Z`qzC^tZ!P5smE*U9&^-6TPjzSkf09Kwg`YbWXY0pOlWesYB_3a zp*OKH2E_jWSGA%J!?r9{X;Cpwm{2s@WSASwb2s;}wjzr9Tb06Er>1hD_Y$-r8Nb&mI;t~3Hkj2M zOk=ba_!LoRUyuonJ1VTix4t8LMULsK?*_?b1r7oY(&Dztscj4uY~134znfC#0}LWm zR-~2fZ7;2y_Is*SsMR`dK*OjDUp%BbW!2O(R^6tDdaDCQKTdHx(I_>0Lwcd5~TRB!EiH z;>-AXqpdm%P10E{tbpVii-ltIQC(W#9&_)k?oyUuBub2gf_+4j`UBwa3iRIx^emr7 z>9n*Z6r9CYI;!R~FXpdWqd+WPq>wfO2N>bKU#ez$zJ9)UGWwpQ9V#q{gUX7cO_f54 z<|fk^lIg3@A8C?7z{wq>5;5`Co#=T<57>)(h`y{q9QL2x{{Vbol9J`l)9D0A3MNc_ zv-|t|bqz{;U%wIC)W_ch(Ww$QnC8Ha1+O!Q3x>IQIOxtw} zPFpTJ(!g5Mqe)h=AI@f>AUCyY3jr<`)wCESkdi1XwL(#ei>{#48#IB>{x%1E8&0#+ z3dNS9fCD&$gZM!!<^oJj%uHLKyjywe&xZQ4-A2lvt9I1oO(97jrlNsptZX*eLW;|t zQ9?ja+M*OUWhVptQRuDJ{1Ml(d3mW{`3jkeC=jzfT$|F(Ej1H5stP8WktIt51|aDC zJ=6srr*5v+mm$%v3$ zm4VY3@7Y|-jHYUdF`=nujI?=j&sY!uAJ(tp9!?h`=YN7guz;P9=Au3=v;|O8NZPk&i@E=C;hlp~=qjWZ` zdN)n2ndxnuuUe|*vgjGB3Sy9*e+lx-N}*jkt`vY|W_s6A=(ICg+}?X9Q~9jTU*?pp zT}pOi()2pVx6-+X)4w^}DH7Uw9mZk~N5x9oaGj-J;|T-s7l$gipL zUahEcge}wu68k&D&J`q*3Vwj_@9;YzmeZN*{YJM|u1z--h!pa)*hzGv5Q>6}k^={J za;lnH2x8c5_l&E$Jq(>1d1_8H>QySl0RWH*mjLcgnV%_~C-BR~8)Y@d>EZW?FH}_c zeXg4p$Lxhk8QuQ%!#H3C(v#(`#aq%c7cTrPR6Q!c|{*s8vlXXh8w* zGM=5(txfF-PT)XPy3dciUqLciUY%DiwGn9MD^jCaP&Aqqjc2N%Lb&`z31eu2P8G7< z1El7h*6J%-3z|R6psH1Zv@4xxtQz2HD+H?&z!hlgS?ZCiZyEsuc`d1-bE;TEYN`<8UU$qC?Sy_IZKM>0sCGZ$?}4-49LrRz)VhJMoXrX~a|nwR zJ}QcUkxoHU71Ep%^YFt0y0qgN;!d$gsDz=Hq*js|foip?X$3&iL6rt1!MGrBNoN(R zCQl&qFa$&oY2tC7|^cIN&+B=2Gbw8_QOR>i+$(q7s2+7u0pSNhF?zVdYiSahqovx zDP_v$L%x-yr9dZirBDozao4Hj)}?Ac>IG9#0rE&7y3F~9(BdrdZ~A_D>CUyu=1OTK zF=0lbT`VrGAOJ_5IX?^=M_19B84p`S3q$5!O2CBelfryzlh<>TPeH2G>LX0)0-Yt1_;$Ma zb*x_H5%`MLl&p|vcb1mmfTDPSa6WYud^yu-QzPJ0s9}80tVo6zkmK96;^P#rpCk|z zgCg=E!JV}K0ExlkDddonyAroCPBRK7yLYaxJ2do)xzME_8w#nqw@j+0Ew9p2_)y*cgfSH2`m=G zpDe%v=TT`kzTJhuoG~jgffE}UHLTp3bt}>8iV};pYdZ@iaG4 zTV?zzmFiLuno5+qw^ zVxwM*6f6qt`a(SfeDwxHTOskYG-*|*@hR6CWDO1jsR-v*pbWy8a8993S9G@4T`i32 zdb^b-oI`acu1xlb<-!8{$$2u;p(aYkQvy#0!-OR z0Fg1iDl1e$QT`gj0}Ccjm;g-oi9V;aU{3d{Y}SUR;Z;n-i}bdIIp#X00tiTHv@OY= z2GO2MM5tR*$TP4gOGhG@o?;lcCulLht_G=?rh+Ourmk4X5&cC#CKr9UoJ87(Usm1G z_$w=KQBj;fT=>}I%R&DD>@<=V8;#jolejDxNlY6`T`)B3jVwIC`KD%MTfeoUaZjD< z)af#%78!;T9II$h1O;_yeL|<0!3tMMo$O`dKaJYU!#l+dJ&LJyR5i6tw^L@Sbh|}b zryN0XL9+#gDE|P=d8G}3OIm`7B;kBl{5{F%a`~L+Nv5=O)KlUvT_GvvqVAGTl&-^9 z!Z5Vi!qcczQ&v}GI`(djb*LQZsK6Rdb*PA2*-0K!O9)}8-JmWmmay@UPwV|PN`UFK zUFe+^6;}G!3v9ZSr3qPLq$ISxs&Z0?JhiBx?UMtpLr4Dj-JUP2~gdi|IEoNK*#-gupW=lVU(JNVY3#X&?pw>f3HF0zr@_ zV~Lzt4+8vNt?=HmrpJAK-C5y|q>4RVp)Q}yptw@01uCtfR{hi$rkqoiEnFDbpz&*S zYD+0evV7LGNk$dWk}H~}>JnI=F)B-lF$KM#TLPMoNDvfNi7_UaB;Gb+0FVI!Z6+`` zW@`3YY%xY6@nQ@@XzKYEh?c)q_u4HSKDT;^VlN@9~u zY@KS1)iR>1MKZyW8R@dHMRI^8NJaoPH>pSOeg$cXTa2!2V*cTwA+ry8=R_{ijPvAFMyRCveVVCK${I(Q&qXrErmC9 zC|l}+NRraOX%atC!5uu1K_7kw@;|?Co&;5czVY(=;kJc)9IQKJDe#bH2o1J`L_x%Z z+G~BC@6qZ!h)hX80LP#ZPK?>$4X&^};KqQb)Os`N1 zi%f#7#%u?e1(_rrrVYoZyQ_Irg9amw<&^fA+j|T;HkB=fIO>q1@)apZ{I=7!HiOEs z1w?_I03$Lk!c55fcK-N{!66AE#E}~TYXkcIJz3g8N?20J-MPfb$StG43^B4Twk9%2CBfFdK*o^Zm@K#Lw{>-56KFqhG>NAm+5f+HzXPiP<>e@@*@2mlz8 z4W#X2EMv3_ci3|Hw9nhV->5x^j5$!DY^nhTM`$3(PA9pN2>^S5NykoxBpWFb2>d{U z9LmA4KQV@$_O|w$e*N(~cvs=Rq46J5*)*-F(9qW2(&475x>X8F1OzEqa;<4CrE7?7 zCM85C2dUPZHE96NKr+8Jn6WT6AJuWh?diTFsZyO9PhE*BHwvikb0 zQ+O7+i_D3O*ue(ahPJ%aBY9|(H7SXjfn?|`2!$*Fai`3ZwhbcP+?Z2-l4K@HR7C#( z{{UQ^bNco(pw*~t8gJfbj^C~)Ng9dtC)(zDoCH>t1uN6vzX!1xCP0s1G3^~r77$-+ zea`)&eRtyuSb_L`H~0GNaKyLNgM@+xA`kEJgB|`PXQvf|6Sy~y-{a?rMQ=1|DpGpC)e+Ij7Te+0DFn;=wRFTI8=+ufJsRb24#6Ygowm&c^=RssF`FigS<}Q zU*$fVdd?>PV8lhambU)@L4WZW+%E1Y!OZ^v?wlDJ!1v>xhNz#0`%UB9*Yd&)#MqI0 z3y*7U^51K1k2f_^H!c!q5HXBEC;P~W@6srN8^`KHBnj``J`+DN8vYOpXsg|`BJyBBdW6a8fNmkb$U-fK5Y=ogX19FrlJD_vw z2Deq}Oju1uaGI__4GiRewN*eHk*Jv>aeG{*S1h0iPzw>pZHT5YZJ4+Xo^a!~|s2n9g7nUDbAHy%?2I)(2-fFP$T~`MpM%Y^2$!?`5%~s)&wM8mS2}lJXD0*N3 z446E}Q8g7Ln1Fa9LE!cW>4o^_!&3+{2(%sexHtJ5;o9G*kwPvhxlmJHn6IZ>F8(|h z9z>-6e|FyE@{++EW)?+=$|1AK4T%cBK3DtQ6|NBtf!>j?YLCBXq;I9 zxk^v+7bA2PpoI`72_x9`+d2nZrPi`ktLjmi2%|Af5_DD5EChjW*yUYwr2hcZ^R=lV zW0o#XUZGMoQ<4yy#K!*sNwyv>s%pImVQwWMX(cW%)}6p%3jDAMgvr7|+-Gk`u_)7~ zeFd!%x25N4J8z1`U`pC%WOjiki^u$7CErNgDO9(arEzTpjs99nvPgp1OzsNa3P&>{ z4geyCW}8SY1nu|UL`aKz9{6}wBkx+|5u$i#n5n@2+^TPZmje1YR*i_*61AT}i zc#(z*mj3_}zroO_Wiu*J-aR4WnFQ|IB{QB5VnLn4C2>rAN{3S$l4NO^0^48QaBzjo zc~xe4)o;oS#~8n#M1N0upI2V$yhLe-DXcn4K4nc~l*?03zfy;pO*2j@#*(0<7aVca z@AAqJl{QO>J$%>vfBqo!{+ZLM_+&jgx$dr|MK!9Ss3J8s6&(V*31C%Jm7g;PFvA^l z_&hS%e->mjnY~C*zw*ifBC~`l>8uq|YKTh^dqw9Ff7HdMmrQt#b#9rU-oL1&2D-!bs;B6wndh_44xx{r%Ze1N(Jn#Y(K;A@of-3vzC;Ker?*wqv)=)tpoM}&v~FV7w?5o)HuUmun@XVp*H1(Z$$+mOEGd_eL#+X{kum@T1z>PKNu1(3AaxpA^(h)o;J1F;&)eEY4yV!cW`vb0R54Iy zSOP)0GaPek-w~bBqR{dlY@z0z19?dbC`zMg2W*gbi6C*$JzvqR9EV$}j%McLj&J^A zaZy+`7trcM0z?~FP5#?`aQ$a+s-1L;Sx`YLWlEE{D{P_!1eC_%6DCRO-zQkikLVzQ z!3Jb)YmR4qu?27{Q)*10YnVHbRtP&pcNU)fVa-&@TWKL)@^;MRgE{R0bK9*JTQnIK zL<_;yCv)gFi~j(OV)~v@L$Fw89%9;b$ttX50?==yUvWE}H7T%#1go^|Guj|X=6&ZM z=h0shc>DhVjA!an(IA=QXyy+#j4NWHbm|Iga8V$IC0llZKEoi-bMMa`4Vpn!HBOUE zG!6A?jjh20>m-Q75FdzyG(p&j2H=iFL~ne4i+|Wxs!?4oP9_wP zx?-?dQwl%Jkt*{trGire56FMT`cIeZ9Xh!Mk5SE2%9J+#UqWdW36t?;QZJ?uUM2*d znO~`VZwd8mr8;7RK3i2<=~GatSh`-KxAjtD&U+B#zgt45$RplKpOolysffIAtnwBMO$ z0Z)hs*y;i!Za!zz>LV3h$5m``E+mpmh*40)Z2FgTn)mK*xaC?VnB`1kaNV62M|n>Y|%auEDVBYNd^HX zJI6C&fpe6NT)dX^QvebaOF>a2Oza5*eetO%i6n`E1|nv7k^sgr?0M=(A-IkGdvFAs z?spSt-x==xrUCB}Hu>W;Hj+{bfXuIEgTF~t^KN>#uq zJ4wJG88f+45yX%{9VnTfm=SUFn8eXOU~YNd-rp$wCLm4PLd-AB4rlx^9C~6%JVAlZ z4?TLQ6;RV41tQ`Bza~xjw38O?iPo-`Q>T;7_CA{!z44*C*BGe|dXka1($dReP-YAQ z0UVPDpU~twmqe(`r!Iadxr&NTjaU3vnLI#?3yX_PzI;<*s1ZNyXt0k!Hatgu^QPNa zzcnUC&HLVnUex-x95cu|R@jXi7|g zWD->~%=Q8Rj`KJUtu=|h#(iQB5%t35>bnQm;?nh+f11A z1OjH=r}$yj5nD5nsK8YNT@Y*;3B9>}Zr2br#DS(-TC`U?WW0-8>x*^O_iAm=ERvQg zloYy}2_$VxhxzQ}{%2FP1cH8Llaez2z}nheiSz}J=vqwm4r?Jp zJfKul<&$C*i5rmwoq-&EaRF9GN{La?mr#WxO9E7o>kz`ju@{0T2b#BEXst@LUn!{@ z)AtA5NV{5TL+hX`SVDgnY;i2P<)KPS)a4th0lD-%x!9hg;9nYbK9NSBOX~HGXCY3J zT&Gd28l`$44XQAunF_|GWMm?hI;w@y>7ZqGsMRU+&lmVghf-hX`dtkf;Zy$rSCghv zl^n`cDyvs5tc0Z0gnUYF+A0FhtQl6DgC*K;B-AwGRMN)uxP=8aq#hv8+z-FEUrABS zrFBY_Y9(rQMyhX2hDTT=5JX8J9B`MXQk_PlT^f_2BBC(T>cUJx*z7Ja%I)@{x`3)z zR^G|VOcjCvl|h0501OWKJ&Zu7@ql?7j`P2#d@xjMY)UZ(Z!x&o+mZ72oE+(mO#M^r zwNWcrf`xjCnKDTP`bu_^kS0Nh>F-Dckzsy4d;7^2uz|$j%(i~EpodA)Y)HNDcs{+j zJl`D(@CU`+OX0oFj`WL-N+{TQwYyHINob`80s=`X1{F9ERFT`P?^fy5bJUudKp4a@ z5JmYhBWwGS&Gx-3JzG%Mr$G!N2vQ*M4*Lw{RzKJI!=z-7_&xxGX|BWFwA6qT^xj+D0|`8uY5u%u)&m z#t0Y_I|l+Ik1_9mY<_sYw*HXseiUjN?Lnp}>TC4PYMiQ4sTotkmvAdeHl;txVF*lu zNg$|5J#_y74fu(3bXPA`k!sV0T~;kOCS(bc2HSgsj1P&tG}IgU$|+FNtTi15VU|<1 zge>>I&}SUMTHOjMaVkQAAc6{1p5#H}+=3?^y4V)Bpl6%&u=MXf_s2G1KqBFX2F5|{ zZ`rmTs47Z9^o^cf_jPe*65sSe7)wQXOcaVPMCmM3OVI4VhAKdgk6G>p%4RW!$J9V5$U{Vk`hH zARUQ|PRANd-<+2}PAm0}#wr=WZj?F|?tQp-4x=M`04o z2@*h<5w&dZK__ydA8>qr&0n|l@JQn<6tQPNIR0Pp+-26%5}38 zh;QaI6=Hm~9as`U0zjq=fDqL8VyGK~G z(^Mg91a40Cp>nJOl_&sAb<|%gPMtaxJi)0ynhxmfK^tslNH9bnnPkhb?gzAhBL!C4 z_Zo2v!jhm$k~#dQ04Eqw8G|Bt>glMfToXK8N4M&`0wE6qCGdB}h;dJxi)(@-+nttoqm) zRE=O5(sdswB+q|Xka1I(>$yCIV@o%w-o#U+E&(S_qI{xbyxRDdELsCicrW4Ru+z3{ z%^iNCsc-RGj{g8o%}S8nGbA%fWNg$j%dXX2t}1oM>JXi%{2BpiC`w#%ohmhI^z_mx zMb3m)U}`g5y;8uC6eyCha>S_{VX0E5Q_bb;RHIQSRXQotECaC@dcdrJl@vXrq(($=E2rBGDhLdMaREkKAuRzM^{C#dyGIYa@SFKr-d zCNByDS|hc_E=^{GbyV0h5pA}=Zb&h0?r~}KuYg*TzLg8S);D59p(^refvT$jgOaxr z(hy*zC@CTdfjd>!9>0jQHR>^;O)1k`FU3O4)4YJo03Ue=0aec;7^g0IGvz*me&%-; zw-}MAzM1r>DR#Q^sB2wGC;63ZGKKg2tuU|?B#4qg9rM&F)pL5qLTNVejE$gi0YydL zFDB;zw^GaoAPRa$z^Ny_+fbYBYX}@kGq~w3C8ccj)pWMH8f4N?)YL8dgawiKW>)bo zIO5Z_Kg-BTNm6AK>Yjzqbv)Zptx~38h(y=CC<%RpPc!dmH^liyshZ8vr0m30cp+?m z3EBZWi9eP^@%2bxi*NP;AW{u%?Y#rjcD0l+s3b52Sguxlplju>kp`eJe{WjI`dcmOu%oHey1t zEH?^Hz?q4@AG94MvWso6Ow*~mHMFeUF0R6=uXkq>Qv0sF1UL|_yh2iyC^nQzijASu zspN9Bs4ya?kj=qnCsWmV5?-?s=1%Pb765D2b6udF3AE4k074DCh@=1q&PgQ8K44De z90USSegP){<^=rpVMdY~iVTH@oAy$BdP(`=0Vm1;8nljg76*O%;D^J?6MogsSGbM# z-7eE=Y0a>gFI7cEp;IM7nvp130U;#SHbUhpM_t$WA>nlDej&_t>hzrC`WlLPN07Su zm0>P!JnNUBR6qqwR{UC!fspa0eC0AUG8En_=Vqp1WFP%H7^E%uOVkcXFkujjG@CG* zl?fi6-MAV1`_I4j>+8^pJhE-;b0&5J+WU9d(->`#~d#$TDYw36axHH8wN${@9sfV9m@} z$IH}h^uya1Lj%+x7$!Ia7|EY+xWM;;sMFSGR9j*@dX9PfV5F)*0Dc?setY`ik6Bzp zmbz`>DWpx#+^YA2C2Z0nrKcWsGIt~-ph|`kg1H24fHO2{g+MiFH5cL^_MnnT^4j2E zwg}X8R1XVeHUw>2m^+iQmOE}aF@x%B%4*n4l+HB!D@YrG4z{!ujj%xgNZgetJaf}( z<>^_Qf{WehuB~E;V+&HBo7- zqN}JEdV6hMLTIY3E~Vcw3#M^?g)rN)AQH8C(TP-ind5){$GqNSsnpJRUZz&IR;_f+ zQpjer4VSHwuC8i)K~Pb8b@IyLmqevNwN{>z5Y)#?=^i>?fN1pq^y@tbrBbROWT`}_ z!73EEWOAWgA28O1q)1cEpR4ZzHT@Ol+pjJfZj##N&9qx8D5)-A#VadK6(WmIpf^t2 zZK9r@oy4gtAg^#r3Y}AJs{a7^dEg$S;7WOnj&{8~()CQpsy+dfq||6vW2HVCY52El zj!TwsEHzFm`uB)(omETGqgItgMPKz5V1V@ZD^ZDn2mmOLsl^Mw>HFoCnpbYtYrUQ^rS6fr-B z{fBdaN~f8ZP@>z&AO#@pb8y-u6q5&%Bj!8w+Sxi4mFZPMQj>^eaIB1^To6_WKkxjn&vL}!lhWc$e=j!8X8w5h-nM-e^A{{Y1Pe@sG5nZmZ}2v~wa zj7&fgpYH=FnD5kXi=^-N@9l;L1jn>~_>30m`qi~nPT-ks_FhR44)&Z50zH8UBOS;+ zx>`yXNt5MZc;JI;e$3&_Nu^Sm{4R{G-WfSM zUc*LBC3`IfDp*=c+=7>xUeHMe5TvO|AxB+IrDR%y+JGzp*@(Emtm1JxB{WOSfHYr97hKxW^oyT@4=q7 ztCy!~m?rxTg}B;w_BY09>KNkwhq%UrR<#mJq9SHs&IFDiMhNfDdiTMm1OR<*3}1pf z^N5946Seo}^ElY;d#zBqM$@sEh*E*wCvlQ@0fK$F_rdCmuj$M5&Zn6Ksil$3y207j zgEE+p_W{h@+;CP|nx$GwVCtx#+l^n_oODwE07QyE0IDqQp(^|?hGifqZY4}pH&wi= z5~8#fD8QK`6C>rE#VTrAp(n{z9A3bys2p$y*KQ+q&{^7^PM4IvXDL#RYe*wCMx#|L z*@38Z5=c-M$4MucHyfi)Z9sQxg|O>^Fce3W%B8SJ5TUpdqv`@g$6sOe*Q8a@1#gF? z;jenCNtlZOps#D0BW{0NP-5E`v4LTv03zljT=VqBdDQy$<8`d5w&~ZAM?p;KW~SuV zt;bwSL2)#4HVAP_N}dI6sc2C^QWh1~yCahff~|Eo5|rC>asglsfB+3G=I#`%9M@Os z$&@0UARf89l02(u3l_PvF}M~05>Aj*(zJz_+*00n`j-7l%gz&kOs+yq9#9fT`B|+r z1Py@T0UJiZeLGvWGmn_5Sy?I(5BQi!YZ=^<0N~o-kaxzas^rtQU2(*v2okj`BPY-Y zxlxb+l21}a;YRbwzZ0SXp=h;JI@vP3ayqN6)ACu0W}RvYRYJs60L8|}HCUM*ZTAsu zTB9{K)QrG^BopN`Z^8iJ*xQ5e59^!us?u&#Tx_=rhV5>W)0D?+ty4W9qEb*cHsF+k zrGdFAM5wJJto?5Ybeh$HMXf}?D!_to3;1Tzbbttg(nY12zNMR_wCW)mRFKvr0>w)6 zU_fOgpZ1H)VW!#R{-UPa_@-%Ui2TY@6q4i~R1&;E^uU1t6PfC-GvG>!B9?PQ-1+J2 zNFTh;7yk77E?p-YJ0NqA6Y zx6xZmNb@Z|lzG#1PMegan5~rRt5I__^codQg`=28FD$H7jb!OkhIFtbF$|>JoXYh~ zy)4E+>8lkRGm#Cdy%we^nuR>0;!!}w)~GV{n^u)-S%sy{9Z5@3Qu?YLapy{mg)L=E z-L)ZGi3gLo0oxo7x|d9$m&(%#LYPx0Q7~D&#w3WC8e+l#0_S`mQ)fA zqry-UR7Ctl!0D0=RbrZ&2$8weW19dsBn_txF3q?Ekrn`+{{Wz$OelG0%S}6J4VPp9 zh#OOavyw-|#AN(*QBX9hk29D8#12U?H~`;oTq8iz1WoKC(|`x%genR1b|d~%NJB}C zf=$Oa4(%+7k1KxP0ND1c8Sl1xRW413#rL{t+ddwcVR?SK?=PwgQ+`$3!@M<2Vv zCdX~ft^kkhCNKKFcMt^o_nz^EXi8RjP$CS^BzE}`Bezl#K>%80NgKcs@BPLT6K{sv zwc0nBpj}Ip?=tXqhM@|F7<3S((AuEwNLUL=Ab_QkqtvS83+^L+AP=-$bGG((I?pjF(c{AuQXva!?Bl@w{+Eeh>txWQ@Mx01XOHD%3tCbrdB|GVzJAA-^1R>H& zflw>Rf|oEBFI52)|!eZM?DHz2`3+BW<9;fk(=6A(ZW zL7XTU807Le97k+)pqr5v7q`94UVmr45Q7mjw1eB}Y2&vWVU=`*EZ~qbLHluz_!4LQ zy7so6htSWq{{X$CoJ7_nTn@*H#>BFHJjtKFNIZA>J@_2-&`2}?00#~(NFva8i5$ZvlA93}@6_u2>x;JYo-SSwcNmA6W z%uJG$Av~$YpGpv%sOJz!60_5zP3qNc2%&*N-GR)q`g*>HUypI01bxYl6k?Whq`>*Xa&xt2>e}QR9h+pEw)Oe$T{A! z0489dBmf|jrttSmT%KR!xF)@EGEd=2n2s7|O#Tp}0S6S>+}mc{uGFctC;|y+xt)r^ zP_f8k$ief^H?|xEnU6^Xh$aaHf<5pFKW?-vL_xo_NIYP4L8M&s&#CmoMM7FB!60`X z@}ZtSKYxCq!&FHC;jPw^qbX2<8TLGJ27V4Qc*kDEx(9PT=lAW6Ux!z)IhiC$=a~EP z*RY=njmF-l{g%Jdgq=q@V;ZN z*UM-6WlBReNHr#>Sd~XcMiSBHu>w0mFm4W?!<|x(N_v#DCaUG@DHR%=GZ-Pzfn|{4 zK{K(BQJwAUD^-D7Vyfcx5KJvK=m}a(0GuR{ph;i&N?>5lFjYJ^*Lqf2tMv*LCQh&A z-KwsYk_b|RNCR?a@!J~V)w*X;%={d^YMNjQMd^xcS*KdL4BF&{hzkOH$YB?!sp?P* zN`OS|AIn}Qd+mvXBuPo=R6$mdb#;O^BI-dP&F&-{eeH);q$yTmc^Y|<_(2wcOwVz} zt%7w|u~N`eX)U<|QoKTr4mcy2kGb|S6)J9Lc#q5S^xKhv{{Wb05ef<10rms$%>A$n zszq9@G8B@S2{Db`)0vE9bWT@6s0BeQaU2=thi)f=aI(&h1dFNEvIySO zcm`nMyGq?DwG}(sdr&-Su1zI>!|I%vTcr9MRDx6qaYPcNB`Hc$bCYwD%~j~R)Xrr{ zY_ov1sHl%FLgC^Amei%iL+LziiDQK zYH=zK2obb^q>~U7qLV%5IqR#^uR}XQYvtTHUo^Xyq^Xzoi&DJ!)da%x^;o~0`??ITo7 zI`YVI3T5!Ym8H$8z<9SkoXXPp9XPVruc_IV?6j%rlBR4+FdTw4M%b>+*I`z^T97{# zDbcLZW+~Nb%Q5QIh!Jm?oNNC8X`Y0%=}mTu4-M_t3T+1cB{4-if!A$sHmYP5ehIV& z+D*MGD?=+!^IU8t!r&`V0C;Px=H8oA&9xS(O@@*dDoFv)#5#<;lQsZsMX#sHWq+FJ z`36Q|U4~$0C8nLTRl-7uD#n(P}@hXK8XJD-4kHoAAP&kxjI*HsHL||0QhHTl? z6*9R+%|M+@8#R~8g=2r~uc~4+h?%x6chUFNVl-cc`oBP2l8+zn)9=XEK-t~O=Z{JUT9cRkR@ zQKr3BSk%coX0ps`q5xtZlrk}6Pz8Vpk`#@GD8Gw-B0u5|uesh978q4q$fj*zZc8n? zTLDLLB~XC|1`iP(1=9Lz^vta~01bL6nuKgy;jY7r8{El~cgDNMeRX>0Sgln9tqLq@ zP(v1`rX#uJti__(CGee0)LdwhQascp-!W+XI!0dh8V4n zAjpI5AWx<-bm^jJXc&+giB{Uk&@3k7)=7*VYf2hQ+l^?XY&6_L8%g}5Xfct@iTzGz z9YxZrRi~GtYO!Y%EgRo>oxj11E^%qptx&3kAMH_LV`wvRes`PVyxu6(RJvCID``p@ zz#yCh%nhJHoP#6Vt!)ax5l|2T0Q019E(zxQ9izSDw{d~%g_*j_ zKP><3zUb4x{;gq@@8EN*80z;mnc^)K~nyh??qs$>5E z%0z9!Ki>ozvWX}k#A(nJkWiP>NCSkyfCK`bM9DdV4^?@0GRVZtSo5?-{{S$3e!D?V zo1$0%p@){l%d;7oCg;-D#c|eDY*fAGGK7U3r~(8Sl26YjJ>wm0x>ZVwG`Thq52g6$ zi}u)G9RC2sl&K2KQjizB0%YwsfG$Zsv$)*hlEYs@-9V?UX+cR6Af#^RIE;WqpSC%j z6%4~tX!4a{IKP&8nAq9|_t;}DSTO;X2qrHZ^Sqs|EF*D(n&z57O+^Zjx?+Er(Ek9K z*-=qB1cH!rnC3l)R@5^rRs=zkrY#eGO~D3ld*B@2PMeWg41?vUia;v@0U(3@AQDdm zS}-?K+MHN~`iS5I-Uesi+x*Gu{)tveX5{idfM0L&afi=RVN*(}*jfo7SjjLqncL74 zkCRDIOcas3GI0^kNFp(hw{DwN>4<}>2?lm1*5mKLt{_aUONI=(fFSMOZbA7QbI8YQ zzu6(K)!^o%)jlA%LT>fwwl3R8Zc~9MOZ8Put?IYijqkDeMjCCDB~6yzD|JgyP;Eak ze;g75i4r2S!Z|v1GOu2x>Y9=Y$Wg2)VnxX?Ok76$&N|2OL2GpEwnrvwwLwaSDpg2@ zM+i%Rs}i)s0KrKnL6Sz?$=4Nj-BoFQ_fQ(IK~OFMGMP|2gcuS=G0gTobbOD+p;!Pz zC)1l=MaAR%C1e(clQSCuV_|QhBzD^rJ6c<6X=)s8vZ4~R6RsuHwl~7ZBniTkfcSTE@b+_5I*>Y*@Y^C6q2F@5&$L)_q4=pKsb^b zs6xR8cVLVJgZYjKDgr)meY$fUF#t{OeqWx`z9}A>+kS1w9+S1V*bI7Jh&*Ekem*(& z$8Xo6+6yuBPati_zWe--rX$chpSSkMhOK06Dv$wyW(T}`5i`Vf5~z_ZV*8QXn|^qU z8kUydPxD&}ZUT3t5(Z?bz3>gMHo#1@<7;Se?v01%H zX}23DAeh7e2uw&l;zXX~uS>rg%73FF)M?}dQTeYQQO4TrV<+r}e`7r&T;xZueqK*%OY6UiO8 z9d!m^D7Kg%gwMMygK~M>)Z+!IjkolGcJ~*=kz}d?P*no}a6pnw1MW!fJ@}r7sidk9 zE_F@je-D3|*l&pxX}AzfOmF+Y>4_-3_@tt(VM-5M>RPT~pn|Q`&MH!q{v|dR*qnOE zCzIAA#=SK4UWJ^?B8IC$lQ%^p{^L?vH2(nkGU`;=2B=ByHGUTA2d4F0u4uNEa%npQ z1w%N75x^iZ=gK2LKPwlYXC>}Axc5~-F#)$ zvO1|&pnuY+jxR;Elnd%qmaev)C*FRANH|n2h~l8+!1_1TGolnUHY}8r6_Kpe~E0R zBzj%}L|dg1_7f?#k)=F@%6?d^vKs?^yqvOPYW=aDjd&p8K-V01+n zjX;xliI}we_w9)435`9>@xO3v0Q5buxAE=}VPpOj>6`5 z1nqxteenzdW(r8$k$c=s8(Kb?&W`U}ZfnY?bw-|2RZOKHDMCi!21qfK!HwV(jyHZ9 z@qT}zRHsZo^Eqokz%a|=$p4?b3- z1+1n7*#0G%0fmen#~eqj_C7S%Ma0;K0wy4lxRE>JPtw$_A=av7 zB}p&Klqs-I(x_TOmU#TCfH@*ZBOoG`1ym%HChNG^pL>h^jx{+v%Caz6Rz+Fe#)Znj%>w+Id>0ScYa2n6yoA{0R$%bdzk%&AI>7+eBI#KAE) z6F2q|-v`jo<|r^CqeOyslM@qb#F+Hnan^qed{okYGwGpY)>L#A&%DOUgjM-#^P36s z$=IpM3K8&Uymim>{Wh;otZQZD0BlxZACU)*z~7S-jkZ&$jO_)bRE-2igBp3%E+k2r zzb6#C>IeOung;ykP3J&3&5E|6$6x#s51CEAKjnmi13_bO!C$Hb00|bIH^o`ZzLd-} zR7C-Iylf5bNI$#A0qcGW$Y%A_%B4DWoR-uDg9tYQ!&StOkQT=&d_ekJ@khg&`iAT5 zbyXBd3sP%onp?~%D9QDuFbGP4f)gVma~ll5T*>DZ2&$pX5Ey_#F+POb{xQt6-V^GX zH)1l(^w#fD6qUZxM3Hbv2i7@=u8!4JO(=SuXmKtnB?>~)uu`&;1c`t_k-;(~2t8P9 z3;~%0SnqB>dy{SPoqA7Bqbn&=rV5z^L=$M*C%4lQmX|{5>KbuHNds)AAZ-E+Ph}@? zA_0Tjs;tkNn}NBoy}=;Iu@)oS22fC>OmRJkpOt{O&mE)sDe+Fb!#yJX&Vr7PrFxRB z4pci*k{GLQ6_7HtJ7spGeey^&-O{F$UbUm;ne?3J6gn{`sdPXxd+=C~q zu<$CXjXAdoB*u{-7B-o__|j-rI<_X@34zD1@w{7^z)q+7k=7UXl)`QT-AKLOV>a`! z!AS#iiuI`}F(E13QzIvcKl9YY$Iuj8+HQb{{Son>X%%tuwBqpqN7B$Co#0NL!jVbr(rnAGr{PJ^eLJZ z6snd8Zb6d=R`U@bYYD`(VAQ6@;h0D~@x<-S_JKGwvZ-$-kqDBtw9;m9N|6c7<1iK4 zefqFuRhtOD(_kZxEgN83H5utE5=khfi8C?*lj~^gHumb*h2ACjfuuY+@cNg-OJya- z*;hqVWWTvl9!-+;-Ba&WIa&k?Cf%T^ZPe9Ol(w+S(v>MdB=Y{dMH@d{*Qn^`qg18@ zfl`i&K{S#GVjMUi8yK4z#R%!0Gd-H>6*`S)rBw|&v_k$W^x@VN7}i6qX-oOG0}8LY z4!2*fmWGDmM%|?~&fK*wp{7f~UT(=Q)0%5bZd0~hp`>qfELFG=)8%eeGM5{1w-rL& zOEs3N`fFAMDy=$lzC~cHOA-tdxd4(jfMjCNFIh5(8{slP!_h{I5vr9YG7G~rJ3wbZ zNkViOA_TLgH2#b5;@*_eiaI5sy|oq9i)>ZCI0eU@J=$vsURh)RALYbw6OB?-v!X z-o(m+YGFcA^gaDS;v^|(*<7^>;nA&{f-YeA^6QFMr>dj*-eJee>(FSDyssAUN38Obg| zK4^$0MSujG2)*RuWV738>~{KVbuil7C`eM^ORkVNy0ZdSwPcviCOTGcipHbKEJ?XN z%nknld}4H+B21IJ7?O6A@&FFNVMWTg(oobsl@zU{q=J~-NpT1WOvoy5t71oTsK-R3 z(V)h)RRs}Tm9(>HV2H9n)b3RjNS0s;z7ch~2!!im0BwL1C9QZ1b87%jEIxp-9XY1x zntUW&Yf@|OZzLVhRn&y47DxtJWi2uU2=d4i6W84z!#@rm4ERf?MB?{+(F1aH7YYzDY~kHPyR$$dujR35di|5F*3x!*lE&lv|NGA#iO|bDo7`BKEfc7 zXPJ>05fFKvK`riTLw3nKbU3@83UP|nT*a)UWF%u zf4ArR?THb|P<2et=6`dA#;p$|w(&}va1^aB0HlzhK?+F)FlG$k4tw@ba5CeY&l02xtRc6RF^8=|We zDuO`6X$cz=(S)mLK>P5nj) z%Tr^hg<=drGZvY-w5#QG`8I#YA9*FjBU6?A-*{O@T=TR+T z0K_o4Kaj^h)SY*2SuIvuZ}h@KQCOEKt3rLtt)bS|qF}*Nc-jtg;t-31rqdS_^Y=fV zD+>YyNN;fmxQ;imBacYNXx101K!1p7JF*gz0eXQ{)orN8N>G>l&;&^SUP0}&^%q(?i6xqUV{I2!|pMm$8aB%u|Lzi)NSB^N4Mszncd&N$DN z1N=o`L_waTG*2J?3Dh9k(Ry?f<_|E<~|Nx z&@o!|#+ob^bg0wuUQ7ic8W6)Dh|0lPLlNDL0pX^X@V?O9mr7E(NYYzEUwzk>`;{*3 z8=i0|glXOY-?(W9yK+`55OaLY}z~_jI z)sN}xg(vW|UJ6_Dt<_fZw&6`&%F^W{?o%iNNq8XyGPRVpwXA{?pfesN%T&#DtkpA= z8P`+|mlW1&tzf_-1erU*(od6BrZH#J*;g}6{6;{;hYk1&fJ{#}P}dP4Za0YU`fkzU zwvwP~^oojVg}3JJ5*(ndLPIXLkU%CJY!?9#qJVfgg_)JN}m;o1iqC}tPly35ElY2;Z5;ll?p-1 z)C$zI08(JubcWZelNM+S7N(HTAgwasOvX6{Ud>e_ud!B#7^-1qr3r7D7KXG=jP3=;%Q#@EJQGeM}DwCW*Bl-o)R4#sbC zKQsP$$4#hiBUSiKM&b&bH=Q8c5P|Diet^@cC*@0+!1Ww<9ekUarXG!D2&~4N=~kF$ z3QA00@c>|Kc${x~Rc2Jl)}rl9ib_$|%&|8PnFXv(*NwvpzR>;wXpI@#W-AwNTS9CcjdH&M;hsZ%GK%H>v@nfO(!y+x#A z!di;cU;sAw%`+l1eQ@QnnH<5TNonR2T|rPzwM3;+LV!sNH7e3=zY;Fu#t5TGVwIMX zoq;LgFeH*niINE=M3PU>9e0f(Wk7%l5IyhTbB;e=YSk}Pm#9K&X1OFHt@hvnw;0le z*WBwBZM3jzs*wTpu0=g6RT+6;ZJ0Sk?|@(!g5VWl+`zuW%y)?S->~$==}5aOqN!() z0knuDn6-j}ZNC>M2lkB*O-QDy?(csStw|0cwFsl8SOkA1uj|{mgsEdAJ3-<$t1=M+ zgBRV%>`9mt{k`nzSz-Z|Dzv7^y9)s@l~;pKjW2bSSxg5bb>y z)w&T>s(6wdLKnR-3~iWzM^yb(W|t*irbb3-5uTVA*5aE4RuD@meG&ke9{4p9oz%jp z5&*CSFk`{pbwK5a9++QPZ4F%R4e9!d_v})UX>#Mc@lGHgT$P~6R3~?cqdP!*pcfbjM&MhVz9`yM#~aD0jv(PqkYs8K

dX9KsI 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 sc5eIm^K + + 4.0.0 + + gateway-admin + 0.0.1-SNAPSHOT + jar + + gateway-admin + Demo Gateway Admin project for Spring Cloud + + + webapp-parent + business.chaoran + 0.0.1-SNAPSHOT + ../../webapps/webapp-parent/pom.xml + + + + + com.alicp.jetcache + jetcache-starter-redis + 2.5.14 + + + org.springframework.cloud + spring-cloud-gateway-core + 2.1.0.RELEASE + compile + + + diff --git a/gateway/gateway-admin/src/main/db/db.sql b/gateway/gateway-admin/src/main/db/db.sql new file mode 100644 index 0000000..63810ae --- /dev/null +++ b/gateway/gateway-admin/src/main/db/db.sql @@ -0,0 +1,66 @@ +SET NAMES utf8; + +DROP DATABASE IF EXISTS sc_gateway; +CREATE DATABASE sc_gateway DEFAULT CHARSET utf8mb4; + +USE sc_gateway; + +-- 网关路由表 +DROP TABLE IF EXISTS gateway_route; +CREATE TABLE gateway_route +( + id VARCHAR(20) PRIMARY KEY COMMENT 'id', + route_id VARCHAR(100) NOT NULL COMMENT '路由id', + uri VARCHAR(100) NOT NULL COMMENT 'uri路径', + predicates TEXT NOT NULL COMMENT '判定器', + filters TEXT COMMENT '过滤器', + orders INT COMMENT '排序', + description VARCHAR(500) COMMENT '描述', + status VARCHAR(1) DEFAULT 'Y' COMMENT '状态:Y-有效,N-无效', + created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间', + updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间', + created_by VARCHAR(100) NOT NULL COMMENT '创建人', + updated_by VARCHAR(100) NOT NULL COMMENT '更新人' +) COMMENT '网关路由表'; + +CREATE UNIQUE INDEX ux_gateway_routes_uri ON gateway_route (uri); + + +-- DML初始数据 +-- 路由数据 +INSERT INTO gateway_route (id, route_id, uri, predicates, filters, orders, description, status, created_time, updated_time, created_by, updated_by) +VALUES +(101, + 'authorization-server', + 'lb://authorization-server:8000', + '[{"name":"Path","args":{"pattern":"/authorization-server/**"}}]', + '[{"name":"StripPrefix","args":{"parts":"1"}}]', + 100, + '授权认证服务网关注册', + 'Y', now(), now(), 'system', 'system'), +(102, + 'authentication-server', + 'lb://authentication-server:8001', + '[{"name":"Path","args":{"pattern":"/authentication-server/**"}}]', + '[{"name":"StripPrefix","args":{"parts":"1"}}]', + 100, + '签权服务网关注册', + 'Y', now(), now(), 'system', 'system'), +(103, + 'organization', + 'lb://organization:8010', + '[{"name":"Path","args":{"pattern":"/organization/**"}}]', + '[{"name":"StripPrefix","args":{"parts":"1"}}]', + 100, + '系统管理相关接口', + 'Y', now(), now(), 'system', 'system'), +(104, + 'gateway-admin', + 'lb://gateway-admin:8445', + '[{"name":"Path","args":{"pattern":"/gateway-admin/**"}}]', + '[{"name":"StripPrefix","args":{"parts":"1"}}]', + 100, + '网关管理相关接口', + 'Y', now(), now(), 'system', 'system') + + diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java new file mode 100644 index 0000000..ab3378d --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java @@ -0,0 +1,20 @@ +package com.springboot.cloud.gateway.admin; + +import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation; +import com.alicp.jetcache.anno.config.EnableMethodCache; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration; + +@SpringBootApplication(exclude = GatewayClassPathWarningAutoConfiguration.class) +@EnableDiscoveryClient +@EnableCircuitBreaker +@EnableMethodCache(basePackages = "com.springboot.cloud") +@EnableCreateCacheAnnotation +public class GatewayAdminApplication { + public static void main(String[] args) { + SpringApplication.run(GatewayAdminApplication.class, args); + } +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java new file mode 100644 index 0000000..eec5208 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java @@ -0,0 +1,50 @@ +package com.springboot.cloud.gateway.admin.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Slf4j +public class BusConfig { + + public static final String QUEUE_NAME = "event-gateway"; + public static final String EXCHANGE_NAME = "spring-boot-exchange"; + public static final String ROUTING_KEY = "gateway-route"; + + @Bean + Queue queue() { + log.info("queue name:{}", QUEUE_NAME); + return new Queue(QUEUE_NAME, false); + } + + @Bean + TopicExchange exchange() { + log.info("exchange:{}", EXCHANGE_NAME); + return new TopicExchange(EXCHANGE_NAME); + } + + @Bean + Binding binding(Queue queue, TopicExchange exchange) { + log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY); + return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); + } + + @Bean + public MessageConverter messageConverter() { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper)); + } + +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java new file mode 100644 index 0000000..79c3e2d --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java @@ -0,0 +1,9 @@ +package com.springboot.cloud.gateway.admin.config; + +import com.springboot.cloud.common.web.handler.PoMetaObjectHandler; +import org.springframework.stereotype.Component; + +@Component +public class MyMetaObjectHandler extends PoMetaObjectHandler { + +} \ No newline at end of file diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java new file mode 100644 index 0000000..b36f9aa --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java @@ -0,0 +1,10 @@ +package com.springboot.cloud.gateway.admin.config; + +import com.springboot.cloud.common.web.redis.RedisConfig; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class MyRedisConfig extends RedisConfig { +} \ No newline at end of file diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java new file mode 100644 index 0000000..74b3366 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.gateway.admin.config; + +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * 初使化Mybatis审计字段自动赋值的interceptor + */ +@EnableTransactionManagement +@Configuration +public class MybatisConfig { + /** + * 分页插件 + */ + @Bean + public PaginationInterceptor paginationInterceptor() { + return new PaginationInterceptor(); + } +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java new file mode 100644 index 0000000..9d9a559 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java @@ -0,0 +1,35 @@ +package com.springboot.cloud.gateway.admin.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.springboot.cloud.gateway.admin")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("网关管理api") + .description("网关管理") + .termsOfServiceUrl("https://github.com/zhoutaoo/SpringCloud") + .version("2.0") + .build(); + } + +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java new file mode 100644 index 0000000..99fb658 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.gateway.admin.config; + +import com.springboot.cloud.common.web.interceptor.UserInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebServerMvcConfigurerAdapter implements WebMvcConfigurer { + + @Bean + public HandlerInterceptor userInterceptor() { + return new UserInterceptor(); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(userInterceptor()); + } +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java new file mode 100644 index 0000000..492d9c4 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java @@ -0,0 +1,11 @@ +package com.springboot.cloud.gateway.admin.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface GatewayRouteMapper extends BaseMapper { +} \ No newline at end of file diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java new file mode 100644 index 0000000..a989593 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java @@ -0,0 +1,61 @@ +package com.springboot.cloud.gateway.admin.entity.form; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.common.web.entity.form.BaseForm; +import com.springboot.cloud.gateway.admin.entity.po.FilterDefinition; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; +import com.springboot.cloud.gateway.admin.entity.po.PredicateDefinition; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.ArrayList; +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@ApiModel +@Data +@Slf4j +public class GatewayRouteForm extends BaseForm { + + @NotEmpty(message = "网关断言不能为空") + @ApiModelProperty(value = "网关断言") + private List predicates = new ArrayList<>(); + + @ApiModelProperty(value = "网关过滤器信息") + private List filters = new ArrayList<>(); + + @NotBlank(message = "uri不能为空") + @ApiModelProperty(value = "网关uri") + private String uri; + + @NotBlank(message = "路由id不能为空") + @ApiModelProperty(value = "网关路由id") + private String routeId; + + @ApiModelProperty(value = "排序") + private Integer orders = 0; + + @ApiModelProperty(value = "网关路由描述信息") + private String description; + + @Override + public GatewayRoute toPo(Class clazz) { + GatewayRoute gatewayRoute = new GatewayRoute(); + BeanUtils.copyProperties(this, gatewayRoute); + try { + ObjectMapper objectMapper = new ObjectMapper(); + gatewayRoute.setFilters(objectMapper.writeValueAsString(this.getFilters())); + gatewayRoute.setPredicates(objectMapper.writeValueAsString(this.getPredicates())); + } catch (JsonProcessingException e) { + log.error("网关filter或predicates配置转换异常", e); + } + return gatewayRoute; + } +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java new file mode 100644 index 0000000..6b2a733 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java @@ -0,0 +1,31 @@ +package com.springboot.cloud.gateway.admin.entity.form; + +import com.springboot.cloud.common.web.entity.form.BaseQueryForm; +import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.Past; +import java.util.Date; + +@EqualsAndHashCode(callSuper = true) +@ApiModel +@Data +public class GatewayRouteQueryForm extends BaseQueryForm { + + @ApiModelProperty(value = "uri路径", required = true) + private String uri; + + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) + @Past(message = "查询开始时间必须小于当前日期") + @ApiModelProperty(value = "查询开始时间") + private Date createdTimeStart; + + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) + @Past(message = "查询结束时间必须小于当前日期") + @ApiModelProperty(value = "查询结束时间") + private Date createdTimeEnd; +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java new file mode 100644 index 0000000..80bbcb3 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java @@ -0,0 +1,56 @@ +package com.springboot.cloud.gateway.admin.entity.ov; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.common.web.entity.vo.BaseVo; +import com.springboot.cloud.gateway.admin.entity.po.FilterDefinition; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; +import com.springboot.cloud.gateway.admin.entity.po.PredicateDefinition; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +@Slf4j +public class GatewayRouteVo extends BaseVo { + private String id; + private String routeId; + private String description; + private String status; + private String uri; + private Integer orders; + private String createdBy; + private Date createdTime; + private String updatedBy; + private Date updatedTime; + private List filters = new ArrayList<>(); + private List predicates = new ArrayList<>(); + + public GatewayRouteVo(GatewayRoute gatewayRoute) { + this.id = gatewayRoute.getId(); + this.routeId = gatewayRoute.getRouteId(); + this.uri = gatewayRoute.getUri(); + this.description = gatewayRoute.getDescription(); + this.status = gatewayRoute.getStatus(); + this.orders = gatewayRoute.getOrders(); + this.createdBy = gatewayRoute.getCreatedBy(); + this.createdTime = gatewayRoute.getCreatedTime(); + this.updatedBy = gatewayRoute.getUpdatedBy(); + this.updatedTime = gatewayRoute.getUpdatedTime(); + ObjectMapper objectMapper = new ObjectMapper(); + try { + this.filters = objectMapper.readValue(gatewayRoute.getFilters(), new TypeReference>() { + }); + this.predicates = objectMapper.readValue(gatewayRoute.getPredicates(), new TypeReference>() { + }); + } catch (IOException e) { + log.error("网关路由对象转换失败", e); + } + } +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java new file mode 100644 index 0000000..78a863f --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java @@ -0,0 +1,16 @@ +package com.springboot.cloud.gateway.admin.entity.param; + +import com.springboot.cloud.common.web.entity.param.BaseParam; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GatewayRouteQueryParam extends BaseParam { + private String uri; +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java new file mode 100644 index 0000000..298dea6 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java @@ -0,0 +1,16 @@ +package com.springboot.cloud.gateway.admin.entity.po; + +import lombok.*; + +import java.util.LinkedHashMap; +import java.util.Map; + +@EqualsAndHashCode +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FilterDefinition { + private String name; + private Map args = new LinkedHashMap<>(); +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java new file mode 100644 index 0000000..8e85508 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java @@ -0,0 +1,19 @@ +package com.springboot.cloud.gateway.admin.entity.po; + +import com.springboot.cloud.common.web.entity.po.BasePo; +import lombok.*; + +@EqualsAndHashCode(callSuper = true) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GatewayRoute extends BasePo { + private String uri; + private String routeId; + private String predicates; + private String filters; + private String description; + private Integer orders = 0; + private String status = "Y"; +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java new file mode 100644 index 0000000..aa00b75 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java @@ -0,0 +1,16 @@ +package com.springboot.cloud.gateway.admin.entity.po; + +import lombok.*; + +import java.util.LinkedHashMap; +import java.util.Map; + +@EqualsAndHashCode +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PredicateDefinition { + private String name; + private Map args = new LinkedHashMap<>(); +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java new file mode 100644 index 0000000..b5271d1 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java @@ -0,0 +1,31 @@ +package com.springboot.cloud.gateway.admin.events; + +import com.springboot.cloud.gateway.admin.config.BusConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +@Slf4j +public class EventSender { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private MessageConverter messageConverter; + + @PostConstruct + public void init() { + rabbitTemplate.setMessageConverter(messageConverter); + } + + public void send(String routingKey, Object object) { + log.info("routingKey:{}=>message:{}", routingKey, object); + rabbitTemplate.convertAndSend(BusConfig.EXCHANGE_NAME, routingKey, object); + } +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java new file mode 100644 index 0000000..27637f4 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java @@ -0,0 +1,10 @@ +package com.springboot.cloud.gateway.admin.exception; + +import com.springboot.cloud.common.web.exception.DefaultGlobalExceptionHandlerAdvice; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice { +} \ No newline at end of file diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java new file mode 100644 index 0000000..e1f5726 --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java @@ -0,0 +1,91 @@ +package com.springboot.cloud.gateway.admin.rest; + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.gateway.admin.entity.form.GatewayRouteForm; +import com.springboot.cloud.gateway.admin.entity.form.GatewayRouteQueryForm; +import com.springboot.cloud.gateway.admin.entity.ov.GatewayRouteVo; +import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; +import com.springboot.cloud.gateway.admin.service.IGatewayRouteService; +import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +@RestController +@RequestMapping("/gateway/routes") +@Api("gateway routes") +@Slf4j +public class GatewayRouteController { + + @Autowired + private IGatewayRouteService gatewayRoutService; + + @ApiOperation(value = "新增网关路由", notes = "新增一个网关路由") + @ApiImplicitParam(name = "gatewayRoutForm", value = "新增网关路由form表单", required = true, dataType = "GatewayRouteForm") + @PostMapping + public Result add(@Valid @RequestBody GatewayRouteForm gatewayRoutForm) { + log.info("name:", gatewayRoutForm); + GatewayRoute gatewayRout = gatewayRoutForm.toPo(GatewayRoute.class); + return Result.success(gatewayRoutService.add(gatewayRout)); + } + + @ApiOperation(value = "删除网关路由", notes = "根据url的id来指定删除对象") + @ApiImplicitParam(paramType = "path", name = "id", value = "网关路由ID", required = true, dataType = "string") + @DeleteMapping(value = "/{id}") + public Result delete(@PathVariable String id) { + return Result.success(gatewayRoutService.delete(id)); + } + + @ApiOperation(value = "修改网关路由", notes = "修改指定网关路由信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "网关路由ID", required = true, dataType = "string"), + @ApiImplicitParam(name = "gatewayRoutForm", value = "网关路由实体", required = true, dataType = "GatewayRouteForm") + }) + @PutMapping(value = "/{id}") + public Result update(@PathVariable String id, @Valid @RequestBody GatewayRouteForm gatewayRoutForm) { + GatewayRoute gatewayRout = gatewayRoutForm.toPo(GatewayRoute.class); + gatewayRout.setId(id); + return Result.success(gatewayRoutService.update(gatewayRout)); + } + + @ApiOperation(value = "获取网关路由", notes = "根据id获取指定网关路由信息") + @ApiImplicitParam(paramType = "path", name = "id", value = "网关路由ID", required = true, dataType = "string") + @GetMapping(value = "/{id}") + public Result get(@PathVariable String id) { + log.info("get with id:{}", id); + return Result.success(new GatewayRouteVo(gatewayRoutService.get(id))); + } + + @ApiOperation(value = "根据uri获取网关路由", notes = "根据uri获取网关路由信息,简单查询") + @ApiImplicitParam(paramType = "query", name = "name", value = "网关路由路径", required = true, dataType = "string") + @ApiResponses( + @ApiResponse(code = 200, message = "处理成功", response = Result.class) + ) + @GetMapping + public Result getByUri(@RequestParam String uri) { + return Result.success(gatewayRoutService.query(new GatewayRouteQueryParam(uri)).stream().findFirst()); + } + + @ApiOperation(value = "搜索网关路由", notes = "根据条件查询网关路由信息") + @ApiImplicitParam(name = "gatewayRoutQueryForm", value = "网关路由查询参数", required = true, dataType = "GatewayRouteQueryForm") + @ApiResponses( + @ApiResponse(code = 200, message = "处理成功", response = Result.class) + ) + @PostMapping(value = "/conditions") + public Result search(@Valid @RequestBody GatewayRouteQueryForm gatewayRouteQueryForm) { + return Result.success(gatewayRoutService.query(gatewayRouteQueryForm.toParam(GatewayRouteQueryParam.class))); + } + + @ApiOperation(value = "重载网关路由", notes = "将所以网关的路由全部重载到redis中") + @ApiResponses( + @ApiResponse(code = 200, message = "处理成功", response = Result.class) + ) + @PostMapping(value = "/overload") + public Result overload() { + return Result.success(gatewayRoutService.overload()); + } + +} \ No newline at end of file diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java new file mode 100644 index 0000000..35f490a --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java @@ -0,0 +1,53 @@ +package com.springboot.cloud.gateway.admin.service; + +import com.springboot.cloud.gateway.admin.entity.ov.GatewayRouteVo; +import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; + +import java.util.List; + +public interface IGatewayRouteService { + /** + * 获取网关路由 + * + * @param id + * @return + */ + GatewayRoute get(String id); + + /** + * 新增网关路由 + * + * @param gatewayRoute + * @return + */ + boolean add(GatewayRoute gatewayRoute); + + /** + * 查询网关路由 + * + * @return + */ + List query(GatewayRouteQueryParam gatewayRouteQueryParam); + + /** + * 更新网关路由信息 + * + * @param gatewayRoute + */ + boolean update(GatewayRoute gatewayRoute); + + /** + * 根据id删除网关路由 + * + * @param id + */ + boolean delete(String id); + + /** + * 重新加载网关路由配置到redis + * + * @return 成功返回true + */ + boolean overload(); +} diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java new file mode 100644 index 0000000..bfc18dc --- /dev/null +++ b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java @@ -0,0 +1,117 @@ +package com.springboot.cloud.gateway.admin.service.impl; + +import com.alicp.jetcache.Cache; +import com.alicp.jetcache.anno.CacheType; +import com.alicp.jetcache.anno.CreateCache; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.gateway.admin.config.BusConfig; +import com.springboot.cloud.gateway.admin.dao.GatewayRouteMapper; +import com.springboot.cloud.gateway.admin.entity.ov.GatewayRouteVo; +import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam; +import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute; +import com.springboot.cloud.gateway.admin.events.EventSender; +import com.springboot.cloud.gateway.admin.service.IGatewayRouteService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.FilterDefinition; +import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition; +import org.springframework.cloud.gateway.route.RouteDefinition; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class GatewayRouteService extends ServiceImpl implements IGatewayRouteService { + + private static final String GATEWAY_ROUTES = "gateway_routes::"; + + @CreateCache(name = GATEWAY_ROUTES, cacheType = CacheType.REMOTE) + private Cache gatewayRouteCache; + + @Autowired + private EventSender eventSender; + + @Override + public boolean add(GatewayRoute gatewayRoute) { + boolean isSuccess = this.save(gatewayRoute); + // 转化为gateway需要的类型,缓存到redis, 并事件通知各网关应用 + RouteDefinition routeDefinition = gatewayRouteToRouteDefinition(gatewayRoute); + gatewayRouteCache.put(gatewayRoute.getRouteId(), routeDefinition); + eventSender.send(BusConfig.ROUTING_KEY, routeDefinition); + return isSuccess; + } + + @Override + public boolean delete(String id) { + GatewayRoute gatewayRoute = this.getById(id); + // 删除redis缓存, 并事件通知各网关应用 + gatewayRouteCache.remove(gatewayRoute.getRouteId()); + eventSender.send(BusConfig.ROUTING_KEY, gatewayRouteToRouteDefinition(gatewayRoute)); + return this.removeById(id); + } + + @Override + public boolean update(GatewayRoute gatewayRoute) { + boolean isSuccess = this.updateById(gatewayRoute); + // 转化为gateway需要的类型,缓存到redis, 并事件通知各网关应用 + RouteDefinition routeDefinition = gatewayRouteToRouteDefinition(gatewayRoute); + gatewayRouteCache.put(gatewayRoute.getRouteId(), routeDefinition); + eventSender.send(BusConfig.ROUTING_KEY, routeDefinition); + return isSuccess; + } + + /** + * 将数据库中json对象转换为网关需要的RouteDefinition对象 + * + * @param gatewayRoute + * @return RouteDefinition + */ + private RouteDefinition gatewayRouteToRouteDefinition(GatewayRoute gatewayRoute) { + RouteDefinition routeDefinition = new RouteDefinition(); + routeDefinition.setId(gatewayRoute.getRouteId()); + routeDefinition.setOrder(gatewayRoute.getOrders()); + routeDefinition.setUri(URI.create(gatewayRoute.getUri())); + ObjectMapper objectMapper = new ObjectMapper(); + try { + routeDefinition.setFilters(objectMapper.readValue(gatewayRoute.getFilters(), new TypeReference>() { + })); + routeDefinition.setPredicates(objectMapper.readValue(gatewayRoute.getPredicates(), new TypeReference>() { + })); + } catch (IOException e) { + log.error("网关路由对象转换失败", e); + } + return routeDefinition; + } + + @Override + public GatewayRoute get(String id) { + return this.getById(id); + } + + @Override + public List query(GatewayRouteQueryParam gatewayRouteQueryParam) { + QueryWrapper queryWrapper = gatewayRouteQueryParam.build(); + queryWrapper.eq(StringUtils.isNotBlank(gatewayRouteQueryParam.getUri()), "uri", gatewayRouteQueryParam.getUri()); + return this.list(queryWrapper).stream().map(GatewayRouteVo::new).collect(Collectors.toList()); + } + + @Override + @PostConstruct + public boolean overload() { + List gatewayRoutes = this.list(new QueryWrapper<>()); + gatewayRoutes.forEach(gatewayRoute -> + gatewayRouteCache.put(gatewayRoute.getRouteId(), gatewayRouteToRouteDefinition(gatewayRoute)) + ); + log.info("全局初使化网关路由成功!"); + return true; + } +} diff --git a/gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java b/gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java new file mode 100644 index 0000000..c82cb51 --- /dev/null +++ b/gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java @@ -0,0 +1,16 @@ +package com.springboot.cloud.gateway.admin; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class GatewayAdminApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/gateway/gateway-web/.gitignore b/gateway/gateway-web/.gitignore new file mode 100644 index 0000000..82eca33 --- /dev/null +++ b/gateway/gateway-web/.gitignore @@ -0,0 +1,25 @@ +/target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/build/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ \ No newline at end of file diff --git a/gateway/gateway-web/pom.xml b/gateway/gateway-web/pom.xml new file mode 100644 index 0000000..baaf78b --- /dev/null +++ b/gateway/gateway-web/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + business.chaoran + gateway-web + 0.0.1-SNAPSHOT + jar + + gateway-web + Demo Gateway Api project for Spring Boot + + + business.chaoran + gateway + 0.0.1-SNAPSHOT + + + + + + business.chaoran + core + 0.0.1-SNAPSHOT + + + + org.springframework.cloud + spring-cloud-starter-gateway + + + + org.springframework.boot + spring-boot-starter-data-redis-reactive + + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + io.springfox + springfox-swagger2 + 2.9.2 + + + + business.chaoran + authentication-client + 0.0.1-SNAPSHOT + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.4.RELEASE + + + + build-info + repackage + + + + + + gateway-web + + diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java new file mode 100644 index 0000000..f1bde13 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java @@ -0,0 +1,23 @@ +package com.springboot.cloud.gateway; + +import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation; +import com.alicp.jetcache.anno.config.EnableMethodCache; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients(basePackages = "com.springboot.cloud.auth.client") +@EnableCircuitBreaker +@EnableMethodCache(basePackages = "com.springboot.cloud") +@EnableCreateCacheAnnotation +public class GatewayApplication { + public static void main(String[] args) { + SpringApplication.run(GatewayApplication.class, args); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java new file mode 100644 index 0000000..e94b91a --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java @@ -0,0 +1,69 @@ +package com.springboot.cloud.gateway.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.gateway.events.BusReceiver; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.*; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; +import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; +import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Slf4j +public class BusConfig { + + private static final String EXCHANGE_NAME = "spring-boot-exchange"; + private static final String ROUTING_KEY = "gateway-route"; + + @Value("${spring.application.name}") + private String appName; + + @Bean + Queue queue() { + String queueName = new Base64UrlNamingStrategy(appName + ".").generateName(); + log.info("queue name:{}", queueName); + return new Queue(queueName, false); + } + + @Bean + TopicExchange exchange() { + log.info("exchange:{}", EXCHANGE_NAME); + return new TopicExchange(EXCHANGE_NAME); + } + + @Bean + Binding binding(Queue queue, TopicExchange exchange) { + log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY); + return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); + } + + @Bean + SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory, MessageListenerAdapter messageListenerAdapter, Queue queue) { + log.info("init simpleMessageListenerContainer: {}", queue.getName()); + SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory); + container.setQueueNames(queue.getName()); + container.setMessageListener(messageListenerAdapter); + return container; + } + + @Bean + MessageListenerAdapter messageListenerAdapter(BusReceiver busReceiver, MessageConverter messageConverter) { + log.info("new listener"); + return new MessageListenerAdapter(busReceiver, messageConverter); + } + + @Bean + public MessageConverter messageConverter() { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper)); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java new file mode 100644 index 0000000..8f086a4 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java @@ -0,0 +1,32 @@ +package com.springboot.cloud.gateway.config; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.ReactiveRedisTemplate; +import org.springframework.data.redis.core.script.RedisScript; +import org.springframework.validation.Validator; +import reactor.core.publisher.Mono; + +import java.util.List; + +@Configuration +public class DefaultRedisRateLimiter extends RedisRateLimiter { + + Config getDefaultConfig() { + return super.getConfig().get("defaultFilters"); + } + + public DefaultRedisRateLimiter(ReactiveRedisTemplate redisTemplate, + RedisScript> script, + @Qualifier("defaultValidator") Validator validator) { + super(redisTemplate, script, validator); + } + + @Override + public Mono isAllowed(String routeId, String id) { + if (null == super.getConfig().get(routeId)) + getConfig().put(routeId, getDefaultConfig()); + return super.isAllowed(routeId, id); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java new file mode 100644 index 0000000..e155632 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java @@ -0,0 +1,46 @@ +package com.springboot.cloud.gateway.config; + +import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Mono; + +/** + * 自定义限流标志的key,多个维度可以从这里入手 + * exchange对象中获取服务ID、请求信息,用户信息等 + */ +@Component +public class RequestRateLimiterConfig { + + /** + * ip地址限流 + * + * @return 限流key + */ + @Bean + @Primary + public KeyResolver remoteAddressKeyResolver() { + return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getHostName()); + } + + /** + * 请求路径限流 + * + * @return 限流key + */ + @Bean + public KeyResolver apiKeyResolver() { + return exchange -> Mono.just(exchange.getRequest().getPath().value()); + } + + /** + * username限流 + * + * @return 限流key + */ + @Bean + public KeyResolver userKeyResolver() { + return exchange -> Mono.just(exchange.getRequest().getQueryParams().getFirst("username")); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java new file mode 100644 index 0000000..5a41835 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java @@ -0,0 +1,48 @@ +package com.springboot.cloud.gateway.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; +import springfox.documentation.swagger.web.*; + +import java.util.Optional; + +@RestController +@RequestMapping("/swagger-resources") +public class SwaggerHandler { + + @Autowired(required = false) + private SecurityConfiguration securityConfiguration; + + @Autowired(required = false) + private UiConfiguration uiConfiguration; + + private final SwaggerResourcesProvider swaggerResources; + + @Autowired + public SwaggerHandler(SwaggerResourcesProvider swaggerResources) { + this.swaggerResources = swaggerResources; + } + + + @GetMapping("/configuration/security") + public Mono> securityConfiguration() { + return Mono.just(new ResponseEntity<>( + Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK)); + } + + @GetMapping("/configuration/ui") + public Mono> uiConfiguration() { + return Mono.just(new ResponseEntity<>( + Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK)); + } + + @GetMapping("") + public Mono swaggerResources() { + return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK))); + } +} \ No newline at end of file diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java new file mode 100644 index 0000000..14e1b7d --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java @@ -0,0 +1,45 @@ +package com.springboot.cloud.gateway.config; + +import com.springboot.cloud.gateway.service.RouteService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Component; +import springfox.documentation.swagger.web.SwaggerResource; +import springfox.documentation.swagger.web.SwaggerResourcesProvider; + +import java.util.ArrayList; +import java.util.List; + +@Component +@Primary +@AllArgsConstructor +@Slf4j +public class SwaggerProvider implements SwaggerResourcesProvider { + public static final String API_URI = "/v2/api-docs"; + + @Autowired + private final RouteService routeService; + + @Override + public List get() { + List resources = new ArrayList<>(); + routeService.getRouteDefinitions().stream() + .forEach(routeDefinition -> routeDefinition.getPredicates().stream() + .filter(predicateDefinition -> "Path".equalsIgnoreCase(predicateDefinition.getName())) + .peek(predicateDefinition -> log.debug("路由配置参数:{}", predicateDefinition.getArgs())) + .forEach(predicateDefinition -> resources.add(swaggerResource(routeDefinition.getId(), + predicateDefinition.getArgs().get("pattern").replace("/**", API_URI))))); + log.debug("resources:{}", resources); + return resources; + } + + private SwaggerResource swaggerResource(String name, String location) { + SwaggerResource swaggerResource = new SwaggerResource(); + swaggerResource.setName(name); + swaggerResource.setSwaggerVersion("2.0"); + swaggerResource.setUrl(location); + return swaggerResource; + } +} \ No newline at end of file diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java new file mode 100644 index 0000000..cc4cc2a --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.gateway.events; + +import com.springboot.cloud.gateway.service.RouteService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.route.RouteDefinition; +import org.springframework.stereotype.Component; + + +//TODO 待实现删除,更新操作 +@Component +@Slf4j +public class BusReceiver { + + @Autowired + private RouteService routeService; + + public void handleMessage(RouteDefinition routeDefinition) { + log.info("Received Message:<{}>", routeDefinition); + routeService.save(routeDefinition); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java new file mode 100644 index 0000000..faa67a7 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java @@ -0,0 +1,52 @@ +package com.springboot.cloud.gateway.exception; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.web.ErrorProperties; +import org.springframework.boot.autoconfigure.web.ResourceProperties; +import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler; +import org.springframework.boot.web.reactive.error.ErrorAttributes; +import org.springframework.context.ApplicationContext; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.reactive.function.BodyInserters; +import org.springframework.web.reactive.function.server.*; +import reactor.core.publisher.Mono; + +import java.util.Map; + +@Slf4j +public class CustomErrorWebExceptionHandler extends DefaultErrorWebExceptionHandler { + + @Autowired + private GateWayExceptionHandlerAdvice gateWayExceptionHandlerAdvice; + + /** + * Create a new {@code DefaultErrorWebExceptionHandler} instance. + * + * @param errorAttributes the error attributes + * @param resourceProperties the resources configuration properties + * @param errorProperties the error configuration properties + * @param applicationContext the current application context + */ + public CustomErrorWebExceptionHandler(ErrorAttributes errorAttributes, ResourceProperties resourceProperties, + ErrorProperties errorProperties, ApplicationContext applicationContext) { + super(errorAttributes, resourceProperties, errorProperties, applicationContext); + } + + @Override + protected RouterFunction getRoutingFunction(ErrorAttributes errorAttributes) { + return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse); + } + + @Override + protected Mono renderErrorResponse(ServerRequest request) { + Map error = getErrorAttributes(request, isIncludeStackTrace(request, MediaType.ALL)); + HttpStatus errorStatus = getHttpStatus(error); + Throwable throwable = getError(request); + return ServerResponse.status(errorStatus) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .body(BodyInserters.fromObject(gateWayExceptionHandlerAdvice.handle(throwable))); + //.doOnNext((resp) -> logError(request, errorStatus)); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java new file mode 100644 index 0000000..d8a27d4 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java @@ -0,0 +1,64 @@ +package com.springboot.cloud.gateway.exception; + +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; +import org.springframework.boot.autoconfigure.web.ResourceProperties; +import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration; +import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.reactive.error.ErrorAttributes; +import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.codec.ServerCodecConfigurer; +import org.springframework.web.reactive.config.WebFluxConfigurer; +import org.springframework.web.reactive.result.view.ViewResolver; + +import java.util.Collections; +import java.util.List; + +@Configuration +@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) +@ConditionalOnClass(WebFluxConfigurer.class) +@AutoConfigureBefore(WebFluxAutoConfiguration.class) +@EnableConfigurationProperties({ServerProperties.class, ResourceProperties.class}) +public class ExceptionAutoConfiguration { + + private ServerProperties serverProperties; + + private ApplicationContext applicationContext; + + private ResourceProperties resourceProperties; + + private List viewResolvers; + + private ServerCodecConfigurer serverCodecConfigurer; + + public ExceptionAutoConfiguration(ServerProperties serverProperties, + ResourceProperties resourceProperties, + ObjectProvider> viewResolversProvider, + ServerCodecConfigurer serverCodecConfigurer, + ApplicationContext applicationContext) { + this.serverProperties = serverProperties; + this.applicationContext = applicationContext; + this.resourceProperties = resourceProperties; + this.viewResolvers = viewResolversProvider + .getIfAvailable(() -> Collections.emptyList()); + this.serverCodecConfigurer = serverCodecConfigurer; + } + + @Bean + public ErrorWebExceptionHandler errorWebExceptionHandler(ErrorAttributes errorAttributes) { + DefaultErrorWebExceptionHandler exceptionHandler = new CustomErrorWebExceptionHandler( + errorAttributes, this.resourceProperties, + this.serverProperties.getError(), this.applicationContext); + exceptionHandler.setViewResolvers(this.viewResolvers); + exceptionHandler.setMessageWriters(this.serverCodecConfigurer.getWriters()); + exceptionHandler.setMessageReaders(this.serverCodecConfigurer.getReaders()); + return exceptionHandler; + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java new file mode 100644 index 0000000..f49a550 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java @@ -0,0 +1,92 @@ +package com.springboot.cloud.gateway.exception; + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.common.core.exception.SystemErrorType; +import io.jsonwebtoken.ExpiredJwtException; +import io.jsonwebtoken.MalformedJwtException; +import io.jsonwebtoken.SignatureException; +import io.netty.channel.ConnectTimeoutException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.gateway.support.NotFoundException; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.server.ResponseStatusException; + +@Slf4j +@Component +public class GateWayExceptionHandlerAdvice { + + @ExceptionHandler(value = {ResponseStatusException.class}) + public Result handle(ResponseStatusException ex) { + log.error("response status exception:{}", ex.getMessage()); + return Result.fail(SystemErrorType.GATEWAY_ERROR); + } + + @ExceptionHandler(value = {ConnectTimeoutException.class}) + public Result handle(ConnectTimeoutException ex) { + log.error("connect timeout exception:{}", ex.getMessage()); + return Result.fail(SystemErrorType.GATEWAY_CONNECT_TIME_OUT); + } + + @ExceptionHandler(value = {NotFoundException.class}) + @ResponseStatus(HttpStatus.NOT_FOUND) + public Result handle(NotFoundException ex) { + log.error("not found exception:{}", ex.getMessage()); + return Result.fail(SystemErrorType.GATEWAY_NOT_FOUND_SERVICE); + } + + @ExceptionHandler(value = {ExpiredJwtException.class}) + @ResponseStatus(HttpStatus.UNAUTHORIZED) + public Result handle(ExpiredJwtException ex) { + log.error("ExpiredJwtException:{}", ex.getMessage()); + return Result.fail(SystemErrorType.INVALID_TOKEN); + } + + @ExceptionHandler(value = {SignatureException.class}) + @ResponseStatus(HttpStatus.UNAUTHORIZED) + public Result handle(SignatureException ex) { + log.error("SignatureException:{}", ex.getMessage()); + return Result.fail(SystemErrorType.INVALID_TOKEN); + } + + @ExceptionHandler(value = {MalformedJwtException.class}) + @ResponseStatus(HttpStatus.UNAUTHORIZED) + public Result handle(MalformedJwtException ex) { + log.error("MalformedJwtException:{}", ex.getMessage()); + return Result.fail(SystemErrorType.INVALID_TOKEN); + } + + @ExceptionHandler(value = {RuntimeException.class}) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public Result handle(RuntimeException ex) { + log.error("runtime exception:{}", ex.getMessage()); + return Result.fail(); + } + + @ExceptionHandler(value = {Exception.class}) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public Result handle(Exception ex) { + log.error("exception:{}", ex.getMessage()); + return Result.fail(); + } + + @ExceptionHandler(value = {Throwable.class}) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public Result handle(Throwable throwable) { + Result result = Result.fail(); + if (throwable instanceof ResponseStatusException) { + result = handle((ResponseStatusException) throwable); + } else if (throwable instanceof ConnectTimeoutException) { + result = handle((ConnectTimeoutException) throwable); + } else if (throwable instanceof NotFoundException) { + result = handle((NotFoundException) throwable); + } else if (throwable instanceof RuntimeException) { + result = handle((RuntimeException) throwable); + } else if (throwable instanceof Exception) { + result = handle((Exception) throwable); + } + return result; + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java new file mode 100644 index 0000000..ff4cfd8 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java @@ -0,0 +1,110 @@ +package com.springboot.cloud.gateway.filter; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.auth.client.service.IAuthService; +import com.springboot.cloud.gateway.service.PermissionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.buffer.DataBuffer; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.util.DigestUtils; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.util.Optional; + +/** + * 请求url权限校验 + */ +@Configuration +@ComponentScan(basePackages = "com.springboot.cloud.auth.client") +@Slf4j +public class AccessGatewayFilter implements GlobalFilter { + + private static final String X_CLIENT_TOKEN_USER = "x-client-token-user"; + private static final String X_CLIENT_TOKEN = "x-client-token"; + private static final String X_CLIENT_SECRET = "gateway-web"; + private static final String USER_CURRENT_COMPANY="company"; + + /** + * 由authentication-client模块提供签权的feign客户端 + */ + @Autowired + private IAuthService authService; + + @Autowired + private PermissionService permissionService; + + /** + * 1.首先网关检查token是否有效,无效直接返回401,不调用签权服务 + * 2.调用签权服务器看是否对该请求有权限,有权限进入下一个filter,没有权限返回401 + * + * @param exchange + * @param chain + * @return + */ + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + String authentication = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION); + String url = request.getPath().value(); + String method = request.getMethod().name(); + //后端识别companyId + String companyId = Optional.ofNullable(request.getQueryParams().toSingleValueMap().get("companyId")).orElseGet(String::new); + log.debug("url:{},headers:{}", url, request.getHeaders()); + //不需要网关签权的url + if (authService.ignoreAuthentication(url)) { + return chain.filter(exchange); + } + //调用签权服务看用户是否有权限,若有权限进入下一个filter + if (permissionService.permission(companyId, authentication, url)) { + //设置服务间调用请求头 + ServerHttpRequest.Builder builder = request.mutate(); + String originStr = new StringBuilder().append(url).append(method).append(X_CLIENT_TOKEN).append(X_CLIENT_SECRET).toString(); + String md5Secret = DigestUtils.md5DigestAsHex(originStr.getBytes()); + builder.header(X_CLIENT_TOKEN, md5Secret); + builder.header(USER_CURRENT_COMPANY,companyId); + //将jwt token中的用户信息传给服务 + builder.header(X_CLIENT_TOKEN_USER, getUserToken(authentication)); + return chain.filter(exchange.mutate().request(builder.build()).build()); + } + return unauthorized(exchange); + } + + /** + * 提取jwt token中的数据,转为json + * + * @param authentication + * @return + */ + private String getUserToken(String authentication) { + String token = "{}"; + try { + token = new ObjectMapper().writeValueAsString(authService.getJwt(authentication).getBody()); + return token; + } catch (JsonProcessingException e) { + log.error("token json error:{}", e.getMessage()); + } + return token; + } + + /** + * 网关拒绝,返回401 + * + * @param + */ + private Mono unauthorized(ServerWebExchange serverWebExchange) { + serverWebExchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED); + DataBuffer buffer = serverWebExchange.getResponse() + .bufferFactory().wrap(HttpStatus.UNAUTHORIZED.getReasonPhrase().getBytes()); + return serverWebExchange.getResponse().writeWith(Flux.just(buffer)); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java new file mode 100644 index 0000000..5913706 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java @@ -0,0 +1,37 @@ +package com.springboot.cloud.gateway.filter; + +import com.springboot.cloud.gateway.config.SwaggerProvider; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +//@Component +@Slf4j +public class SwaggerHeaderFilter implements GlobalFilter, Ordered { + + private static final String HEADER_NAME = "X-Forwarded-Prefix"; + + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ServerHttpRequest request = exchange.getRequest(); + String path = request.getURI().getPath(); + if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) { + return chain.filter(exchange); + } + String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI)); + log.info("basePath: {}", basePath); + ServerHttpRequest newRequest = request.mutate().header(HEADER_NAME, basePath).build(); + ServerWebExchange newExchange = exchange.mutate().request(newRequest).build(); + return chain.filter(newExchange); + } + + @Override + public int getOrder() { + return -200; + } +} \ No newline at end of file diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java new file mode 100644 index 0000000..a8e1239 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java @@ -0,0 +1,39 @@ +package com.springboot.cloud.gateway.routes; + +import com.springboot.cloud.gateway.service.RouteService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.route.RouteDefinition; +import org.springframework.cloud.gateway.route.RouteDefinitionRepository; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@Component +@Slf4j +public class RedisRouteDefinitionRepository implements RouteDefinitionRepository { + + @Autowired + private RouteService routeService; + + @Override + public Flux getRouteDefinitions() { + return Flux.fromIterable(routeService.getRouteDefinitions()); + } + + @Override + public Mono save(Mono route) { + return route.flatMap(routeDefinition -> { + routeService.save(routeDefinition); + return Mono.empty(); + }); + } + + @Override + public Mono delete(Mono routeId) { + return routeId.flatMap(id -> { + routeService.delete(id); + return Mono.empty(); + }); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/PermissionService.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/PermissionService.java new file mode 100644 index 0000000..f401d52 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/PermissionService.java @@ -0,0 +1,12 @@ +package com.springboot.cloud.gateway.service; + +public interface PermissionService { + /** + * + * @param companyId + * @param authentication + * @param url + * @return + */ + boolean permission(String companyId,String authentication, String url); +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/RouteService.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/RouteService.java new file mode 100644 index 0000000..b1c308b --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/RouteService.java @@ -0,0 +1,13 @@ +package com.springboot.cloud.gateway.service; + +import org.springframework.cloud.gateway.route.RouteDefinition; + +import java.util.Collection; + +public interface RouteService { + Collection getRouteDefinitions(); + + boolean save(RouteDefinition routeDefinition); + + boolean delete(String routeId); +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionServiceImpl.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionServiceImpl.java new file mode 100644 index 0000000..988d247 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionServiceImpl.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.gateway.service.impl; + +import com.springboot.cloud.auth.client.service.IAuthService; +import com.springboot.cloud.gateway.service.PermissionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PermissionServiceImpl implements PermissionService { + + /** + * 由authentication-client模块提供签权的feign客户端 + */ + @Autowired + private IAuthService authService; + + @Override + public boolean permission(String companyId, String authentication, String url) { + return authService.hasPermission(companyId,authentication, url); + } +} diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteServiceImpl.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteServiceImpl.java new file mode 100644 index 0000000..4213327 --- /dev/null +++ b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteServiceImpl.java @@ -0,0 +1,82 @@ +package com.springboot.cloud.gateway.service.impl; + +import com.alicp.jetcache.Cache; +import com.alicp.jetcache.anno.CacheType; +import com.alicp.jetcache.anno.CreateCache; +import com.springboot.cloud.gateway.service.RouteService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.route.RouteDefinition; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.annotation.PostConstruct; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class RouteServiceImpl implements RouteService { + + private static final String GATEWAY_ROUTES = "gateway_routes::"; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + @CreateCache(name = GATEWAY_ROUTES, cacheType = CacheType.REMOTE) + private Cache gatewayRouteCache; + + private Map routeDefinitionMaps = new HashMap<>(); + + @PostConstruct + private void loadRouteDefinition() { + log.info("loadRouteDefinition, 开始初使化路由"); + Set gatewayKeys = stringRedisTemplate.keys(GATEWAY_ROUTES + "*"); + if (CollectionUtils.isEmpty(gatewayKeys)) { + return; + } + log.info("预计初使化路由, gatewayKeys:{}", gatewayKeys); + // 去掉key的前缀 + Set gatewayKeyIds = gatewayKeys.stream().map(key -> { + return key.replace(GATEWAY_ROUTES, StringUtils.EMPTY); + }).collect(Collectors.toSet()); + Map allRoutes = gatewayRouteCache.getAll(gatewayKeyIds); + log.info("gatewayKeys:{}", allRoutes); + // 以下代码原因是,jetcache将RouteDefinition返序列化后,uri发生变化,未初使化,导致路由异常,以下代码是重新初使化uri + allRoutes.values().forEach(routeDefinition -> { + try { + routeDefinition.setUri(new URI(routeDefinition.getUri().toASCIIString())); + } catch (URISyntaxException e) { + log.error("网关加载RouteDefinition异常:", e); + } + }); + routeDefinitionMaps.putAll(allRoutes); + log.info("共初使化路由信息:{}", routeDefinitionMaps.size()); + } + + @Override + public Collection getRouteDefinitions() { + return routeDefinitionMaps.values(); + } + + @Override + public boolean save(RouteDefinition routeDefinition) { + routeDefinitionMaps.put(routeDefinition.getId(), routeDefinition); + log.info("新增路由1条:{},目前路由共{}条", routeDefinition, routeDefinitionMaps.size()); + return true; + } + + @Override + public boolean delete(String routeId) { + routeDefinitionMaps.remove(routeId); + log.info("删除路由1条:{},目前路由共{}条", routeId, routeDefinitionMaps.size()); + return true; + } +} diff --git a/gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java b/gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java new file mode 100644 index 0000000..2f351f2 --- /dev/null +++ b/gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.gateway; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +@AutoConfigureMockMvc +public class GatewayApplicationTests { + + @Test + public void contextLoads() { + + } +} diff --git a/gateway/pom.xml b/gateway/pom.xml new file mode 100644 index 0000000..3c1ea41 --- /dev/null +++ b/gateway/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + + business.chaoran + xin-cloud + 1.0-SNAPSHOT + + + business.chaoran + gateway + 0.0.1-SNAPSHOT + pom + + gateway + Demo Gateway project for Spring Cloud + + + gateway-web + gateway-admin + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + com.alicp.jetcache + jetcache-starter-redis + 2.5.14 + + + org.apache.commons + commons-pool2 + 2.6.0 + + + diff --git a/monitor/admin/.gitignore b/monitor/admin/.gitignore new file mode 100644 index 0000000..3a05198 --- /dev/null +++ b/monitor/admin/.gitignore @@ -0,0 +1,16 @@ +target/ +logs/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr diff --git a/monitor/admin/pom.xml b/monitor/admin/pom.xml new file mode 100644 index 0000000..ed49693 --- /dev/null +++ b/monitor/admin/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + business.chaoran + admin + 0.0.1-SNAPSHOT + jar + + admin + Demo project for Spring Cloud Admin + + + business.chaoran + monitor + 0.0.1-SNAPSHOT + + + + 2.1.6 + + + + + de.codecentric + spring-boot-admin-starter-server + ${admin-server.version} + + + org.springframework.boot + spring-boot-starter-security + + + diff --git a/monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java b/monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java new file mode 100644 index 0000000..75958a3 --- /dev/null +++ b/monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java @@ -0,0 +1,15 @@ +package com.springboot.admin; + +import de.codecentric.boot.admin.server.config.EnableAdminServer; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableAdminServer +public class AdminApplication { + public static void main(String[] args) { + SpringApplication.run(AdminApplication.class, args); + } +} diff --git a/monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java b/monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java new file mode 100644 index 0000000..de63a79 --- /dev/null +++ b/monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java @@ -0,0 +1,37 @@ +package com.springboot.admin; + +import de.codecentric.boot.admin.server.config.AdminServerProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; + +@Configuration +public class SecurityConfig extends WebSecurityConfigurerAdapter { + private final String adminContextPath; + + public SecurityConfig(AdminServerProperties adminServerProperties) { + this.adminContextPath = adminServerProperties.getContextPath(); + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + // @formatter:off + SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); + successHandler.setTargetUrlParameter("redirectTo"); + + http.authorizeRequests() + .antMatchers(adminContextPath + "/assets/**").permitAll() + .antMatchers(adminContextPath + "/actuator/**").permitAll() + .antMatchers(adminContextPath + "/login").permitAll() + .anyRequest().authenticated() + .and() + .formLogin().loginPage(adminContextPath + "/login") + .successHandler(successHandler).and() + .logout().logoutUrl(adminContextPath + "/logout") + .and() + .httpBasic().and() + .csrf().disable(); + // @formatter:on + } +} \ No newline at end of file diff --git a/monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java b/monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java new file mode 100644 index 0000000..d6647d0 --- /dev/null +++ b/monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java @@ -0,0 +1,16 @@ +package com.springboot.admin; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ConsumerApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/monitor/pom.xml b/monitor/pom.xml new file mode 100644 index 0000000..0e29eff --- /dev/null +++ b/monitor/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + business.chaoran + monitor + 0.0.1-SNAPSHOT + pom + + monitor + Demo Monitor project for Spring Boot + + + business.chaoran + xin-cloud + 1.0-SNAPSHOT + + + + admin + + + + + org.springframework.boot + spring-boot-starter-web + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..3e87ba0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,144 @@ + + + 4.0.0 + + business.chaoran + xin-cloud + 1.0-SNAPSHOT + pom + + cloud + + auth + common + gateway + monitor + sysadmin + webapps + + + + + + + + org.springframework.boot + spring-boot-dependencies + 2.1.10.RELEASE + pom + import + + + org.springframework.cloud + spring-cloud-dependencies + Greenwich.RELEASE + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + 2.1.0.RELEASE + pom + import + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + + com.alicp.jetcache + jetcache-starter-redis + 2.5.14 + + + + + + UTF-8 + UTF-8 + 1.8 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + com.alibaba.cloud + spring-cloud-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-alibaba-nacos-config + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-zipkin + + + + org.springframework.cloud + spring-cloud-starter-bus-amqp + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + + org.projectlombok + lombok + 1.18.10 + compile + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.4.RELEASE + + + + build-info + repackage + + + + + + + diff --git a/sysadmin/organization/pom.xml b/sysadmin/organization/pom.xml new file mode 100644 index 0000000..20a7cb2 --- /dev/null +++ b/sysadmin/organization/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + organization + 0.0.1-SNAPSHOT + war + + + organization + Demo Organization project for Spring Boot + + + sysadmin + business.chaoran + 0.0.1-SNAPSHOT + + + + + com.alicp.jetcache + jetcache-starter-redis + 2.5.14 + + + org.springframework.cloud + spring-cloud-gateway-core + compile + + + + + org.slf4j + slf4j-simple + compile + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + org.springframework.boot + spring-boot-starter-logging + + + + + javax.servlet + javax.servlet-api + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.4.RELEASE + + + + build-info + repackage + + + + + + org.apache.maven.plugins + maven-war-plugin + 3.0.0 + + + organization + + diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java new file mode 100644 index 0000000..e4b93cf --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java @@ -0,0 +1,27 @@ +package com.springboot.cloud.sysadmin.organization; + +import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation; +import com.alicp.jetcache.anno.config.EnableMethodCache; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration; + +@SpringBootApplication(exclude = GatewayClassPathWarningAutoConfiguration.class) +@EnableDiscoveryClient +@EnableCircuitBreaker +@EnableMethodCache(basePackages = "com.springboot.cloud") +@EnableCreateCacheAnnotation +public class OrganizationApplication extends SpringBootServletInitializer { + public static void main(String[] args) { + SpringApplication.run(OrganizationApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(OrganizationApplication.class); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java new file mode 100644 index 0000000..2f1df72 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java @@ -0,0 +1,76 @@ +package com.springboot.cloud.sysadmin.organization.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 消息设置 + * 监听 company_application_popedom表的操作 + */ +@Configuration +@Slf4j +public class BusConfig { + + public static final String QUEUE_NAME = "event-organization"; + public static final String EXCHANGE_NAME = "spring-boot-exchange"; + public static final String ROUTING_KEY = "organization-popedom"; + + /** + * 设置消息队列 + * + * @return + */ + @Bean + Queue queue() { + log.info("queue name:{}", QUEUE_NAME); + return new Queue(QUEUE_NAME, false); + } + + /** + * 设置主题交换机 + * + * @return + */ + @Bean + TopicExchange exchange() { + log.info("exchange:{}", EXCHANGE_NAME); + return new TopicExchange(EXCHANGE_NAME); + } + + /** + * 绑定队列到主题交换机,并设置关联键 + * + * @param queue + * @param exchange + * @return + */ + @Bean + Binding binding(Queue queue, TopicExchange exchange) { + log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY); + return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); + } + + /** + * 设置消息体用jackson序列化 + * + * @return + */ + @Bean + public MessageConverter messageConverter() { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper)); + } + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java new file mode 100644 index 0000000..83b2619 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java @@ -0,0 +1,9 @@ +package com.springboot.cloud.sysadmin.organization.config; + +import com.springboot.cloud.common.web.handler.PoMetaObjectHandler; +import org.springframework.stereotype.Component; + +@Component +public class MyMetaObjectHandler extends PoMetaObjectHandler { + +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java new file mode 100644 index 0000000..97f2529 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java @@ -0,0 +1,11 @@ +package com.springboot.cloud.sysadmin.organization.config; + +import com.springboot.cloud.common.web.redis.RedisConfig; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableCaching +public class MyRedisConfig extends RedisConfig { + +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java new file mode 100644 index 0000000..ce05428 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java @@ -0,0 +1,29 @@ +package com.springboot.cloud.sysadmin.organization.config; + +import com.baomidou.mybatisplus.core.injector.ISqlInjector; +import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + + +@EnableTransactionManagement +@Configuration +public class MybatisConfig { + /** + * 初使化Mybatis审计字段自动赋值的interceptor + */ + @Bean + public ISqlInjector sqlInjector() { + return new LogicSqlInjector(); + } + + /** + * 分页插件 + */ + @Bean + public PaginationInterceptor paginationInterceptor() { + return new PaginationInterceptor(); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/NacosRegisterConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/NacosRegisterConfig.java new file mode 100644 index 0000000..0b4e243 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/NacosRegisterConfig.java @@ -0,0 +1,56 @@ +package com.springboot.cloud.sysadmin.organization.config; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-24 FXY Created + ********************************************** + */ + +import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.context.annotation.Configuration; + +import javax.management.MBeanServer; +import javax.management.ObjectName; +import javax.management.Query; +import java.lang.management.ManagementFactory; +import java.util.Set; + +@Configuration +@Slf4j +public class NacosRegisterConfig implements ApplicationRunner { + + @Autowired(required = false) + private NacosAutoServiceRegistration registration; + + private Integer port; + + public NacosRegisterConfig() { + try { + this.port = Integer.parseInt(getTomcatPort()); + } catch (Exception e) { + log.error("获取tomcat端口出错了,原因:{}", e.toString()); + } + } + + @Override + public void run(ApplicationArguments args) { + if (registration != null && port != null) { + registration.setPort(port); + registration.start(); + } + } + + //获取tomcat端口 + private String getTomcatPort() throws Exception { + MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer(); + Set objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"))); + String port = objectNames.iterator().next().getKeyProperty("port"); + return port; + } + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java new file mode 100644 index 0000000..20f19d4 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java @@ -0,0 +1,35 @@ +package com.springboot.cloud.sysadmin.organization.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.springboot.cloud.sysadmin.organization")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("系统管理API") + .description("系统管理,组织人员管理、角色权限管理、岗位管理") + .termsOfServiceUrl("https://github.com/zhoutaoo/SpringCloud") + .version("2.0") + .build(); + } + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java new file mode 100644 index 0000000..acd71b5 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.sysadmin.organization.config; + +import com.springboot.cloud.common.web.interceptor.UserInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebServerMvcConfigurerAdapter implements WebMvcConfigurer { + + @Bean + public HandlerInterceptor userInterceptor() { + return new UserInterceptor(); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(userInterceptor()); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GatewayRouteMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GatewayRouteMapper.java new file mode 100644 index 0000000..cc657d5 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GatewayRouteMapper.java @@ -0,0 +1,11 @@ +package com.springboot.cloud.sysadmin.organization.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.GatewayRoute; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface GatewayRouteMapper extends BaseMapper { +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/UserMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/UserMapper.java new file mode 100644 index 0000000..9a33021 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/UserMapper.java @@ -0,0 +1,11 @@ +package com.springboot.cloud.sysadmin.organization.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.User; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface UserMapper extends BaseMapper { +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradeMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradeMapper.java new file mode 100644 index 0000000..461a9e8 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradeMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationGrade; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface ApplicationGradeMapper extends BaseMapper{ +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradePopedomMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradePopedomMapper.java new file mode 100644 index 0000000..7c109d0 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationGradePopedomMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationGradePopedom; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface ApplicationGradePopedomMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationMapper.java new file mode 100644 index 0000000..e81d022 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.application.Application; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface ApplicationMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationPopedomMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationPopedomMapper.java new file mode 100644 index 0000000..2bb98ad --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/application/ApplicationPopedomMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface ApplicationPopedomMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationLicenseMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationLicenseMapper.java new file mode 100644 index 0000000..a311c1c --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationLicenseMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationLicense; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyApplicationLicenseMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationPopedomMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationPopedomMapper.java new file mode 100644 index 0000000..d0676d5 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyApplicationPopedomMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationPopedom; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyApplicationPopedomMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyMapper.java new file mode 100644 index 0000000..dd9e4ac --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.Company; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleMapper.java new file mode 100644 index 0000000..2beeeb8 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRole; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyRoleMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRolePopedomMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRolePopedomMapper.java new file mode 100644 index 0000000..e5a3af7 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRolePopedomMapper.java @@ -0,0 +1,19 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRolePopedom; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyRolePopedomMapper extends BaseMapper { + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleUserMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleUserMapper.java new file mode 100644 index 0000000..9271270 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyRoleUserMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRoleUser; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyRoleUserMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyUserMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyUserMapper.java new file mode 100644 index 0000000..06dabb0 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/company/CompanyUserMapper.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.dao.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyUser; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Repository +@Mapper +public interface CompanyUserMapper extends BaseMapper { +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/GatewayRoute.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/GatewayRoute.java new file mode 100644 index 0000000..f28fe51 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/GatewayRoute.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.sysadmin.organization.entity.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.springboot.cloud.common.web.entity.po.BasePo; +import lombok.*; + +@EqualsAndHashCode(callSuper = true) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("gateway_route") +public class GatewayRoute extends BasePo { + private String uri; + private String routeId; + private String predicates; + private String filters; + private String description; + private Integer orders = 0; + private String status = "Y"; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/User.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/User.java new file mode 100644 index 0000000..37d16d9 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/User.java @@ -0,0 +1,35 @@ +package com.springboot.cloud.sysadmin.organization.entity.po; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("user") +public class User { + @TableId + private String id; + private String name; + private Date registryTime; + private String identity; + private String nickName; + private String photo; + private String lastModifier; + private Date lastModifyTime; + private String state; + private String mobile; + private String email; + private String introduce; + private String avatar; + private String signature; + private String password; + private String username; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/Application.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/Application.java new file mode 100644 index 0000000..ea4146e --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/Application.java @@ -0,0 +1,29 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +@Builder +@Data +@TableName("application") +public class Application { + @TableId + private String code; + private String name; + private Integer type; + private String description; + private Date deployedTime; + private Integer orderNo; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGrade.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGrade.java new file mode 100644 index 0000000..62724b2 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGrade.java @@ -0,0 +1,23 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@TableName("application_grade") +public class ApplicationGrade { + private String applicationCode; + private Integer grade; + private String mame; + private String description; + private boolean isFree; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGradePopedom.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGradePopedom.java new file mode 100644 index 0000000..4365eab --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationGradePopedom.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@TableName("application_grade_popedom") +public class ApplicationGradePopedom { + private String applicationCode; + private Integer grade; + private Integer popedomId; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationPopedom.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationPopedom.java new file mode 100644 index 0000000..ea86edb --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/application/ApplicationPopedom.java @@ -0,0 +1,34 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@TableName("application_popedom") +@NoArgsConstructor +public class ApplicationPopedom { + private String applicationCode; + private String id; + private String name; + private String parentId; + private String url; + private String icon; + private String isMenu; + private String description; + private String path; + private String redirect; + private String component; + private String title; + private boolean alwaysShow; + private boolean hidden; + private Integer orderNo; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/Company.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/Company.java new file mode 100644 index 0000000..ea30ce2 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/Company.java @@ -0,0 +1,55 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +@Data +@Builder +@TableName("company") +public class Company { + @TableId + private String id; + private String name; + private String registerId; + private String ownerId; + private Date registerTime; + private String businessLicense; + private String address; + private String description; + private String photo; + private String lastModifier; + private Date lastModifyTime; + private String province; + private String city; + private String county; + private String street; + private Double longitude; + private double latitude; + private Double state; + private String grade; + private String contacter; + private String mobile; + private String tel; + private String email; + private String weixin; + private boolean isFranchiser; + private boolean isIsv; + private String serviceTime; + private String hotlinePhone; + private String logo; + private String logW; + private String icpNo; + private String shortName; + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationLicense.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationLicense.java new file mode 100644 index 0000000..dfde132 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationLicense.java @@ -0,0 +1,28 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + +@Data +@Builder +@TableName("company_application_license") +public class CompanyApplicationLicense { + private String companyId; + private String franchiserId; + private String applicationCode; + private String grade; + private Date expireDate; + private boolean isForever; + private String state; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationPopedom.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationPopedom.java new file mode 100644 index 0000000..b3f9be5 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyApplicationPopedom.java @@ -0,0 +1,21 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@TableName("company_application_popedom") +public class CompanyApplicationPopedom { + private String companyId; + private String applicationCode; + private String popedomId; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRole.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRole.java new file mode 100644 index 0000000..ca55f6d --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRole.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@TableName("company_role") +public class CompanyRole { + private String companyId; + private String id; + private String name; + private String remark; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRolePopedom.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRolePopedom.java new file mode 100644 index 0000000..7bc3068 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRolePopedom.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@TableName("company_role_popedom") +public class CompanyRolePopedom { + private String companyId; + private String roleId; + private String applicationCode; + private String popedomId; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRoleUser.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRoleUser.java new file mode 100644 index 0000000..1ce35f6 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyRoleUser.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@TableName("company_role_user") +public class CompanyRoleUser { + private String companyId; + private String roleId; + private String userId; + private boolean isDefault; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyUser.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyUser.java new file mode 100644 index 0000000..9c80a1f --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/po/company/CompanyUser.java @@ -0,0 +1,27 @@ +package com.springboot.cloud.sysadmin.organization.entity.po.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@TableName("company_user") +@NoArgsConstructor +public class CompanyUser { + private String companyId; + private String userId; + private String organizationId; + private String empNo; + private String position; + private Integer isDefault; + private Integer state; + private String mobile; +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Menu.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Menu.java new file mode 100644 index 0000000..0415fc5 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Menu.java @@ -0,0 +1,66 @@ +package com.springboot.cloud.sysadmin.organization.entity.vo; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-05 FXY Created + ********************************************** + */ + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class Menu { + + @JsonIgnore + private String parentId; + + @JsonIgnore + private String id; + + private String redirect; + private String path; + private String component; + private List

children; + private String name; + private boolean hidden; + private boolean alwaysShow; + private Meta meta; + + public Menu(String path, String redirect, boolean hidden) { + this.path = path; + this.redirect = redirect.equals("") ? null : redirect; + this.hidden = hidden; + } + + public Menu(ApplicationPopedom applicationPopedom) { + this.meta = new Meta(); + this.meta.title = applicationPopedom.getTitle(); + this.meta.icon = applicationPopedom.getIcon(); + String s = Optional.ofNullable(applicationPopedom.getRedirect()).orElseGet(String::new); + this.redirect = s.equals("") ? null : s; + this.path = applicationPopedom.getPath(); + this.component = applicationPopedom.getComponent(); + this.name = applicationPopedom.getName(); + this.hidden = applicationPopedom.isHidden(); + this.alwaysShow = applicationPopedom.isAlwaysShow(); + this.id = applicationPopedom.getId(); + this.parentId = applicationPopedom.getParentId(); + this.children = new ArrayList<>(); + } + + @Data + @JsonInclude(value = JsonInclude.Include.NON_NULL) + class Meta { + private String icon; + private String title; + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Popedom.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Popedom.java new file mode 100644 index 0000000..6e53039 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/entity/vo/Popedom.java @@ -0,0 +1,47 @@ +package com.springboot.cloud.sysadmin.organization.entity.vo; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-04 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import lombok.Data; +import org.springframework.beans.BeanUtils; + +import java.util.Objects; + +@Data +public class Popedom extends ApplicationPopedom { + private String companyId; + + public Popedom(ApplicationPopedom applicationPopedom, String companyId) { + this.companyId = companyId; + BeanUtils.copyProperties(applicationPopedom, this); + } + + public Popedom(ApplicationPopedom applicationPopedom) { + BeanUtils.copyProperties(applicationPopedom, this); + } + + public Popedom(String companyId){ + this.companyId=companyId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Popedom)) return false; + if (!super.equals(o)) return false; + Popedom popedom = (Popedom) o; + return Objects.equals(companyId, popedom.companyId); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), companyId); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/events/EventSender.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/events/EventSender.java new file mode 100644 index 0000000..19d961e --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/events/EventSender.java @@ -0,0 +1,31 @@ +package com.springboot.cloud.sysadmin.organization.events; + +import com.springboot.cloud.sysadmin.organization.config.BusConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +@Slf4j +public class EventSender { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private MessageConverter messageConverter; + + @PostConstruct + public void init() { + rabbitTemplate.setMessageConverter(messageConverter); + } + + public void send(String routingKey, Object object) { + log.info("routingKey:{}=>message:{}", routingKey, object); + rabbitTemplate.convertAndSend(BusConfig.EXCHANGE_NAME, routingKey, object); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/GlobalExceptionHandlerAdvice.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/GlobalExceptionHandlerAdvice.java new file mode 100644 index 0000000..1c5563e --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/GlobalExceptionHandlerAdvice.java @@ -0,0 +1,18 @@ +package com.springboot.cloud.sysadmin.organization.exception; + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.common.web.exception.DefaultGlobalExceptionHandlerAdvice; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice { + + @ExceptionHandler(value = {UserNotFoundException.class}) + public Result userNotFound(UserNotFoundException ex) { + log.error(ex.getMessage()); + return Result.fail(ex.getErrorType()); + } +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/OrganizationErrorType.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/OrganizationErrorType.java new file mode 100644 index 0000000..c244235 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/OrganizationErrorType.java @@ -0,0 +1,25 @@ +package com.springboot.cloud.sysadmin.organization.exception; + +import com.springboot.cloud.common.core.exception.ErrorType; +import lombok.Getter; + +@Getter +public enum OrganizationErrorType implements ErrorType { + + USER_NOT_FOUND("030100", "用户未找到!"), + ROLE_NOT_FOUND("030200", "角色未找到!"); + + /** + * 错误类型码 + */ + private String code; + /** + * 错误类型描述信息 + */ + private String mesg; + + OrganizationErrorType(String code, String mesg) { + this.code = code; + this.mesg = mesg; + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/RoleNotFoundException.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/RoleNotFoundException.java new file mode 100644 index 0000000..f48b159 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/RoleNotFoundException.java @@ -0,0 +1,13 @@ +package com.springboot.cloud.sysadmin.organization.exception; + +import com.springboot.cloud.common.core.exception.BaseException; + +public class RoleNotFoundException extends BaseException { + public RoleNotFoundException() { + super(OrganizationErrorType.ROLE_NOT_FOUND); + } + + public RoleNotFoundException(String message) { + super(OrganizationErrorType.ROLE_NOT_FOUND, message); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/UserNotFoundException.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/UserNotFoundException.java new file mode 100644 index 0000000..b6cdb7f --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/exception/UserNotFoundException.java @@ -0,0 +1,13 @@ +package com.springboot.cloud.sysadmin.organization.exception; + +import com.springboot.cloud.common.core.exception.BaseException; + +public class UserNotFoundException extends BaseException { + public UserNotFoundException() { + super(OrganizationErrorType.USER_NOT_FOUND); + } + + public UserNotFoundException(String message) { + super(OrganizationErrorType.USER_NOT_FOUND, message); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/CompanyController.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/CompanyController.java new file mode 100644 index 0000000..6a966b3 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/CompanyController.java @@ -0,0 +1,92 @@ +package com.springboot.cloud.sysadmin.organization.rest; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.sysadmin.organization.exception.UserNotFoundException; +import com.springboot.cloud.sysadmin.organization.service.ApplicationService; +import com.springboot.cloud.sysadmin.organization.service.CompanyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Optional; + +@RestController +@RequestMapping("/company") +@Slf4j +public class CompanyController { + + @Autowired + CompanyService companyService; + + @Autowired + ApplicationService applicationService; + + @GetMapping("/getPopedom") + public Result getCompanyRoleUserPopedom(@RequestParam("companyId") String companyId, @RequestParam("username") String username) { + Optional.ofNullable(companyId).orElseThrow(UserNotFoundException::new); + Optional.ofNullable(username).orElseThrow(UserNotFoundException::new); + return Result.success(companyService.getCompanyUserPopedom(companyId, username)); + } + + @GetMapping("/getCompanyAllPopedom") + public Result getCompanyAllPopedom(@RequestParam("companyId") String companyId) { + Optional.ofNullable(companyId).orElseThrow(UserNotFoundException::new); + return Result.success(companyService.getCompanyAllPopedom(companyId)); + } + + @RequestMapping("/license") + public Result license(@RequestParam("companyId") String companyId, @RequestParam("applicationCode") String applicationCode) { + Optional.ofNullable(companyId).orElseThrow(UserNotFoundException::new); + Optional.ofNullable(applicationCode).orElseThrow(UserNotFoundException::new); + return Result.success(applicationService.license(companyId, applicationCode)); + } + + @GetMapping("/getAllPopedom") + public Result getAllPopedom() { + return Result.success(companyService.getAllPopedom()); + } + + @GetMapping("/getUserAllCompany") + public Result getUserAllCompany(@RequestParam("userId") String userId){ + Optional.ofNullable(userId).orElseThrow(UserNotFoundException::new); + return Result.success(companyService.getUserAllCompany(userId)); + } + + +// @GetMapping("/getPopedom") +// public Result getCompanyRoleUserPopedom() { +// return Result.success(companyService.getCompanyUserPopedom(UserContextHolder.getInstance().getCurrentCompany(), UserContextHolder.getInstance().getUsername())); +// } +// +// @GetMapping("/getCompanyAllPopedom") +// public Result getCompanyAllPopedom() { +// return Result.success(companyService.getCompanyAllPopedom(UserContextHolder.getInstance().getCurrentCompany())); +// } +// +// @RequestMapping("/license") +// public Result license(@RequestParam("applicationCode") String applicationCode) { +// return Result.success(applicationService.license(UserContextHolder.getInstance().getCurrentCompany(), applicationCode)); +// } +// +// @GetMapping("/getAllPopedom") +// public Result getAllPopedom() { +// return Result.success(companyService.getAllPopedom()); +// } +// +// @GetMapping("/getUserAllCompany") +// public Result getUserAllCompany(@RequestParam("userId") String userId) { +// Optional.ofNullable(userId).orElseThrow(UserNotFoundException::new); +// return Result.success(companyService.getUserAllCompany(userId)); +// } + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/HrDemo.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/HrDemo.java new file mode 100644 index 0000000..5c4f129 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/HrDemo.java @@ -0,0 +1,35 @@ +package com.springboot.cloud.sysadmin.organization.rest; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-04 FXY Created + ********************************************** + */ + +import com.springboot.cloud.common.core.entity.vo.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/hr") +@Slf4j +public class HrDemo { + + @GetMapping("/list") + public Result list(){ + return Result.success("list访问成功!"); + } + + @GetMapping("/delete") + public Result delete(){ + return Result.success("delete访问成功!"); + } + + @GetMapping("/update") + public Result update(){ + return Result.success("update访问成功!"); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/MenuController.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/MenuController.java new file mode 100644 index 0000000..337ced4 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/MenuController.java @@ -0,0 +1,34 @@ +package com.springboot.cloud.sysadmin.organization.rest; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-05 FXY Created + ********************************************** + */ + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.sysadmin.organization.exception.UserNotFoundException; +import com.springboot.cloud.sysadmin.organization.service.MenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Optional; + +@RestController +@RequestMapping("/menu") +public class MenuController { + + @Autowired + MenuService menuService; + + @GetMapping("/index") + public Result index(@RequestParam("companyId")String companyId){ + Optional.ofNullable(companyId).orElseThrow(UserNotFoundException::new); + return Result.success(menuService.index(companyId)); + } + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/RoleController.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/RoleController.java new file mode 100644 index 0000000..409b793 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/RoleController.java @@ -0,0 +1,29 @@ +package com.springboot.cloud.sysadmin.organization.rest; + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.sysadmin.organization.exception.UserNotFoundException; +import com.springboot.cloud.sysadmin.organization.service.CompanyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Optional; + +@RestController +@RequestMapping("/role") +@Slf4j +public class RoleController { + + @Autowired + CompanyService companyService; + + @GetMapping("/getRoleUser") + public Result getUserByUsername(@RequestParam("userId")String userId){ + Optional.ofNullable(userId).orElseThrow(UserNotFoundException::new); + return Result.success(companyService.getCompanyRoleUser(userId)); + } + +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/UserController.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/UserController.java new file mode 100644 index 0000000..9bd8e44 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/rest/UserController.java @@ -0,0 +1,29 @@ +package com.springboot.cloud.sysadmin.organization.rest; + +import com.springboot.cloud.common.core.entity.vo.Result; +import com.springboot.cloud.sysadmin.organization.exception.UserNotFoundException; +import com.springboot.cloud.sysadmin.organization.service.UserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Optional; + +@RestController +@RequestMapping("/user") +@Slf4j +public class UserController { + + @Autowired + UserService userService; + + @GetMapping("/getUserByUsernameOrMobile") + public Result getUserByUsername(@RequestParam("payload")String payload){ + Optional.ofNullable(payload).orElseThrow(UserNotFoundException::new); + return Result.success(userService.getUserByUsernameOrMobile(payload)); + } + +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/ApplicationService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/ApplicationService.java new file mode 100644 index 0000000..e264d78 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/ApplicationService.java @@ -0,0 +1,22 @@ +package com.springboot.cloud.sysadmin.organization.service; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-31 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationLicense; + +public interface ApplicationService { + + /** + * 取得公司应用许可信息 + * @param companyId 公司编号 + * @param applicationCode 应用编码 + * @return + */ + public CompanyApplicationLicense license(String companyId,String applicationCode); +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/CompanyService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/CompanyService.java new file mode 100644 index 0000000..1b8d71f --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/CompanyService.java @@ -0,0 +1,72 @@ +package com.springboot.cloud.sysadmin.organization.service; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRolePopedom; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRoleUser; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyUser; +import com.springboot.cloud.sysadmin.organization.entity.vo.Popedom; + +import java.util.List; + +public interface CompanyService { + /** + * 得到用户所有的角色 + * @param companyId + * @param userId + * @return + */ + public List getCompanyRoleUser(String companyId, String userId); + + /** + * 得到用户所有的角色 + */ + public List getCompanyRoleUser(String userId); + + /** + * 得到角色资源 + * @param companyId + * @param roleId + * @return + */ + public List getCompanyRolePopedom(String companyId, String roleId); + + /** + * 得到角色资源 + * @param companyId + * @param roleIds + * @return + */ + public List getCompanyRolePopedom(String companyId,List roleIds); + + + /** + * 得到用户资源 + * @return + */ + public List getCompanyUserPopedom(String companyId,String userId); + + /** + * 得到公司所有资源 + * @param companyId + * @return + */ + public List getCompanyAllPopedom(String companyId); + + /** + * 得到所有公司资源 + */ + public List getAllPopedom(); + + /** + * 得到用户对应的所有公司 + */ + public List getUserAllCompany(String userId); +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/GatewayService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/GatewayService.java new file mode 100644 index 0000000..06c52eb --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/GatewayService.java @@ -0,0 +1,11 @@ +package com.springboot.cloud.sysadmin.organization.service; + +public interface GatewayService { + + /** + * 重新加载网关路由配置到redis + * + * @return 成功返回true + */ + void overload(); +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/MenuService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/MenuService.java new file mode 100644 index 0000000..37e003e --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/MenuService.java @@ -0,0 +1,24 @@ +package com.springboot.cloud.sysadmin.organization.service; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-05 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.vo.Menu; + +import java.util.List; + +public interface MenuService { + + /** + * 公司编号得到菜单信息 + * @param companyId 公司编号 + * @return + */ + public List index(String companyId); + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/UserService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/UserService.java new file mode 100644 index 0000000..419c40a --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/UserService.java @@ -0,0 +1,14 @@ +package com.springboot.cloud.sysadmin.organization.service; + +import com.springboot.cloud.sysadmin.organization.entity.po.User; + +public interface UserService { + + /** + * 账户或者手机号获取用户信息 + * @param payload + * @return + */ + public User getUserByUsernameOrMobile(String payload); + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/ApplicationPopedomService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/ApplicationPopedomService.java new file mode 100644 index 0000000..aad438b --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/ApplicationPopedomService.java @@ -0,0 +1,23 @@ +package com.springboot.cloud.sysadmin.organization.service.application; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; + +import java.util.List; + +public interface ApplicationPopedomService { + + /** + * 根据资源编号获取资源信息 + * @param ids 资源编号 + * @return + */ + public List getApplicationPopedom(List ids); +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/impl/ApplicationPopedomServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/impl/ApplicationPopedomServiceImpl.java new file mode 100644 index 0000000..4ea80cd --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/application/impl/ApplicationPopedomServiceImpl.java @@ -0,0 +1,31 @@ +package com.springboot.cloud.sysadmin.organization.service.application.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.application.ApplicationPopedomMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.service.application.ApplicationPopedomService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +public class ApplicationPopedomServiceImpl extends ServiceImpl implements ApplicationPopedomService { + + @Override + public List getApplicationPopedom(List ids) { + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.in("id",ids); + return this.list(queryWrapper); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationLicenseService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationLicenseService.java new file mode 100644 index 0000000..82939e1 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationLicenseService.java @@ -0,0 +1,23 @@ +package com.springboot.cloud.sysadmin.organization.service.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationLicense; + +public interface CompanyApplicationLicenseService { + + /** + * 查询公司应用许可 + * @param companyId 公司编号 + * @param applicationCode 应用代码 + * @return + */ + public CompanyApplicationLicense license(String companyId,String applicationCode); + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationPopedomService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationPopedomService.java new file mode 100644 index 0000000..e35c417 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyApplicationPopedomService.java @@ -0,0 +1,29 @@ +package com.springboot.cloud.sysadmin.organization.service.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationPopedom; + +import java.util.List; + +public interface CompanyApplicationPopedomService { + + /** + * 得到公司所有应用资源 + * @param companyId 公司编号 + * @return + */ + public List getApplicationPopedom(String companyId); + + /** + * 得到所有公司资源 + */ + public List getApplicationPopedom(); + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRolePopedomService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRolePopedomService.java new file mode 100644 index 0000000..c5666eb --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRolePopedomService.java @@ -0,0 +1,33 @@ +package com.springboot.cloud.sysadmin.organization.service.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRolePopedom; + +import java.util.List; + +public interface CompanyRolePopedomService { + /** + * 得到公司角色资源 + * @param companyId 公司编号 + * @param roleId 角色编号 + * @return + */ + public List getCompanyRolePopedom(String companyId, String roleId); + + + /** + * 得到公司角色资源 + * @param companyId 公司编号 + * @param roleIds 角色编号集合 + * @return + */ + public List getCompanyRolePopedom(String companyId,List roleIds); + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRoleUserService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRoleUserService.java new file mode 100644 index 0000000..44aef6b --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyRoleUserService.java @@ -0,0 +1,25 @@ +package com.springboot.cloud.sysadmin.organization.service.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRoleUser; + +import java.util.List; + +public interface CompanyRoleUserService { + + /** + * 根据公司编号和用户编号得到角色信息 + * @param companyId 公司编号 + * @param userId 用户账号 + * @return + */ + public List getRoleByCompanyIdAndUserId(String companyId, String userId); + +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyUserService.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyUserService.java new file mode 100644 index 0000000..3fa339c --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/CompanyUserService.java @@ -0,0 +1,33 @@ +package com.springboot.cloud.sysadmin.organization.service.company; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyUser; + +import java.util.List; + +public interface CompanyUserService { + + /** + * 根据公司编号和用户编号取得用户信息 + * + * @param companyId 公司编号 + * @param userId 用户编号 + * @return + */ + public CompanyUser getUserByCompanyIdAndUserId(String companyId, String userId); + + + /** + * 根据用户编号得到公司信息 + * @param userId 用户编号 + * @return + */ + public List getCompanyByUserId(String userId); +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationLicenseServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationLicenseServiceImpl.java new file mode 100644 index 0000000..b3c2752 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationLicenseServiceImpl.java @@ -0,0 +1,28 @@ +package com.springboot.cloud.sysadmin.organization.service.company.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.company.CompanyApplicationLicenseMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationLicense; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyApplicationLicenseService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class CompanyApplicationLicenseServiceImpl extends ServiceImpl implements CompanyApplicationLicenseService { + @Override + public CompanyApplicationLicense license(String companyId, String applicationCode) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("company_id",companyId).eq("application_code",applicationCode); + return getOne(queryWrapper); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationPopedomServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationPopedomServiceImpl.java new file mode 100644 index 0000000..ac0709c --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyApplicationPopedomServiceImpl.java @@ -0,0 +1,38 @@ +package com.springboot.cloud.sysadmin.organization.service.company.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.company.CompanyApplicationPopedomMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyApplicationPopedomService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class CompanyApplicationPopedomServiceImpl extends ServiceImpl implements CompanyApplicationPopedomService { + + @Override + public List getApplicationPopedom(String companyId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("company_id",companyId); + return list(queryWrapper); + } + + @Override + public List getApplicationPopedom() { + return list(); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRolePopedomServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRolePopedomServiceImpl.java new file mode 100644 index 0000000..60c6cbd --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRolePopedomServiceImpl.java @@ -0,0 +1,38 @@ +package com.springboot.cloud.sysadmin.organization.service.company.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.company.CompanyRolePopedomMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRolePopedom; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyRolePopedomService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +public class CompanyRolePopedomServiceImpl extends ServiceImpl implements CompanyRolePopedomService { + + @Override + public List getCompanyRolePopedom(String companyId, String roleId) { + QueryWrapper companyRolePopedomQueryWrapper = new QueryWrapper<>(); + companyRolePopedomQueryWrapper.eq("company_id", companyId).eq("role_id", roleId); + return this.list(companyRolePopedomQueryWrapper); + } + + @Override + public List getCompanyRolePopedom(String companyId, List roleIds) { + QueryWrapper companyRolePopedomQueryWrapper = new QueryWrapper<>(); + companyRolePopedomQueryWrapper.eq("company_id", companyId).in("role_id", roleIds); + return this.list(companyRolePopedomQueryWrapper); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRoleUserServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRoleUserServiceImpl.java new file mode 100644 index 0000000..c3a0a27 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyRoleUserServiceImpl.java @@ -0,0 +1,33 @@ +package com.springboot.cloud.sysadmin.organization.service.company.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.company.CompanyRoleUserMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRoleUser; +import com.springboot.cloud.sysadmin.organization.exception.UserNotFoundException; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyRoleUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@Service +@Slf4j +public class CompanyRoleUserServiceImpl extends ServiceImpl implements CompanyRoleUserService { + + @Override + public List getRoleByCompanyIdAndUserId(String companyId, String userId) { + QueryWrapper companyRoleUserQueryWrapper = new QueryWrapper<>(); + companyRoleUserQueryWrapper.eq("company_id", companyId).eq("user_id", userId); + return this.list(companyRoleUserQueryWrapper); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyUserServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyUserServiceImpl.java new file mode 100644 index 0000000..810cdb2 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/company/impl/CompanyUserServiceImpl.java @@ -0,0 +1,42 @@ +package com.springboot.cloud.sysadmin.organization.service.company.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.company.CompanyUserMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyUser; +import com.springboot.cloud.sysadmin.organization.exception.UserNotFoundException; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyRoleUserService; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@Service +@Slf4j +public class CompanyUserServiceImpl extends ServiceImpl implements CompanyUserService { + + @Override + public CompanyUser getUserByCompanyIdAndUserId(String companyId, String userId) { + QueryWrapper userQueryWrapper=new QueryWrapper<>(); + userQueryWrapper.eq("company_id",companyId).eq("user_id",userId); + return this.getOne(userQueryWrapper); + } + + @Override + public List getCompanyByUserId(String userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id",userId); + return this.list(queryWrapper); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/ApplicationServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/ApplicationServiceImpl.java new file mode 100644 index 0000000..1a2a805 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/ApplicationServiceImpl.java @@ -0,0 +1,27 @@ +package com.springboot.cloud.sysadmin.organization.service.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-31 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationLicense; +import com.springboot.cloud.sysadmin.organization.service.ApplicationService; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyApplicationLicenseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class ApplicationServiceImpl implements ApplicationService { + + @Autowired + CompanyApplicationLicenseService companyApplicationLicenseService; + + @Override + public CompanyApplicationLicense license(String companyId, String applicationCode) { + return companyApplicationLicenseService.license(companyId,applicationCode); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/CompanyServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/CompanyServiceImpl.java new file mode 100644 index 0000000..b08d7f7 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/CompanyServiceImpl.java @@ -0,0 +1,112 @@ +package com.springboot.cloud.sysadmin.organization.service.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-29 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.User; +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRolePopedom; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyRoleUser; +import com.springboot.cloud.sysadmin.organization.entity.po.company.CompanyUser; +import com.springboot.cloud.sysadmin.organization.entity.vo.Popedom; +import com.springboot.cloud.sysadmin.organization.service.CompanyService; +import com.springboot.cloud.sysadmin.organization.service.UserService; +import com.springboot.cloud.sysadmin.organization.service.application.ApplicationPopedomService; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyApplicationPopedomService; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyRolePopedomService; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyRoleUserService; +import com.springboot.cloud.sysadmin.organization.service.company.CompanyUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@Service +@Slf4j +public class CompanyServiceImpl implements CompanyService { + + @Autowired + UserService userService; + + @Autowired + CompanyUserService companyUserService; + + @Autowired + CompanyRoleUserService companyRoleUserService; + + @Autowired + CompanyRolePopedomService companyRolePopedomService; + + @Autowired + ApplicationPopedomService applicationPopedomService; + + @Autowired + CompanyApplicationPopedomService companyApplicationPopedomService; + + @Override + public List getCompanyRoleUser(String companyId, String userId) { + return companyRoleUserService.getRoleByCompanyIdAndUserId(companyId, userId); + } + + @Override + public List getCompanyRoleUser(String userId) { + //找到用户对应的所有公司 + List companyUsers = companyUserService.getCompanyByUserId(userId); + //找到用户默认的公司 + CompanyUser companyUser = companyUsers.stream().filter(a -> a.getIsDefault() == 1).findAny().orElseGet(CompanyUser::new); + + //找到用户的所有角色 + return companyRoleUserService.getRoleByCompanyIdAndUserId(companyUser.getCompanyId(), userId); + } + + @Override + public List getCompanyRolePopedom(String companyId, String roleId) { + return companyRolePopedomService.getCompanyRolePopedom(companyId, roleId); + } + + @Override + public List getCompanyRolePopedom(String companyId, List roleIds) { + return companyRolePopedomService.getCompanyRolePopedom(companyId, roleIds); + } + + @Override + public List getCompanyUserPopedom(String companyId, String username) { + User user = userService.getUserByUsernameOrMobile(username); + List companyRoleUsers = getCompanyRoleUser(companyId, user.getId()); + List roleIds = companyRoleUsers.stream().map(CompanyRoleUser::getRoleId).collect(Collectors.toList()); + List companyRolePopedoms = getCompanyRolePopedom(companyId, roleIds); + List popedomIds = companyRolePopedoms.stream().map(CompanyRolePopedom::getPopedomId).collect(Collectors.toList()); + return applicationPopedomService.getApplicationPopedom(popedomIds); + } + + @Override + public List getCompanyAllPopedom(String companyId) { + List companyApplicationPopedoms = companyApplicationPopedomService.getApplicationPopedom(companyId); + List popedomIds = companyApplicationPopedoms.stream().map(CompanyApplicationPopedom::getPopedomId).collect(Collectors.toList()); + return applicationPopedomService.getApplicationPopedom(popedomIds); + } + + @Override + public List getAllPopedom() { + //先获取所有公司的功能 + List companyApplicationPopedoms = companyApplicationPopedomService.getApplicationPopedom(); + Map> company2PopedomIds = companyApplicationPopedoms.stream().collect(Collectors.groupingBy(CompanyApplicationPopedom::getCompanyId, Collectors.mapping(CompanyApplicationPopedom::getPopedomId, Collectors.toList()))); + return company2PopedomIds.keySet().stream().flatMap(a -> applicationPopedomService.getApplicationPopedom(company2PopedomIds.get(a)).stream().map(b -> new Popedom(b, a))).collect(Collectors.toList()); + } + + @Override + public List getUserAllCompany(String userId) { + return companyUserService.getCompanyByUserId(userId); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/GatewayServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/GatewayServiceImpl.java new file mode 100644 index 0000000..4c10b1d --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/GatewayServiceImpl.java @@ -0,0 +1,73 @@ +package com.springboot.cloud.sysadmin.organization.service.impl; + +import com.alicp.jetcache.Cache; +import com.alicp.jetcache.anno.CacheType; +import com.alicp.jetcache.anno.CreateCache; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.springboot.cloud.sysadmin.organization.dao.GatewayRouteMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.GatewayRoute; +import com.springboot.cloud.sysadmin.organization.service.GatewayService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.gateway.filter.FilterDefinition; +import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition; +import org.springframework.cloud.gateway.route.RouteDefinition; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.io.IOException; +import java.net.URI; +import java.util.List; + +@Service +@Slf4j +public class GatewayServiceImpl extends ServiceImpl implements GatewayService { + + private static final String GATEWAY_ROUTES = "gateway_routes::"; + + /** + * 将路由信息存入redis + */ + @CreateCache(name = GATEWAY_ROUTES, cacheType = CacheType.REMOTE) + private Cache gatewayRouteCache; + + /** + * 将数据库中json对象转换为网关需要的RouteDefinition对象 + * + * @param gatewayRoute + * @return RouteDefinition + */ + private RouteDefinition gatewayRouteToRouteDefinition(GatewayRoute gatewayRoute) { + RouteDefinition routeDefinition = new RouteDefinition(); + routeDefinition.setId(gatewayRoute.getRouteId()); + routeDefinition.setOrder(gatewayRoute.getOrders()); + routeDefinition.setUri(URI.create(gatewayRoute.getUri())); + ObjectMapper objectMapper = new ObjectMapper(); + try { + routeDefinition.setFilters(objectMapper.readValue(gatewayRoute.getFilters(), new TypeReference>() { + })); + routeDefinition.setPredicates(objectMapper.readValue(gatewayRoute.getPredicates(), new TypeReference>() { + })); + } catch (IOException e) { + log.error("网关路由对象转换失败", e); + } + return routeDefinition; + } + + /** + * 初始化加载进redis + * + * @return + */ + @Override + @PostConstruct + public void overload() { + List gatewayRoutes = this.list(new QueryWrapper<>()); + gatewayRoutes.forEach(gatewayRoute -> + gatewayRouteCache.put(gatewayRoute.getRouteId(), gatewayRouteToRouteDefinition(gatewayRoute)) + ); + log.info("全局初使化网关路由成功!"); + } +} diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/MenuServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/MenuServiceImpl.java new file mode 100644 index 0000000..435b3ab --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/MenuServiceImpl.java @@ -0,0 +1,63 @@ +package com.springboot.cloud.sysadmin.organization.service.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2021-01-05 FXY Created + ********************************************** + */ + + +import com.springboot.cloud.sysadmin.organization.entity.po.application.ApplicationPopedom; +import com.springboot.cloud.sysadmin.organization.entity.vo.Menu; +import com.springboot.cloud.sysadmin.organization.service.CompanyService; +import com.springboot.cloud.sysadmin.organization.service.MenuService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class MenuServiceImpl implements MenuService { + + + @Autowired + CompanyService companyService; + + @Override + public List index(String companyId) { + + //得到公司对应的所有权限 + List allPopedoms = companyService.getCompanyAllPopedom(companyId); + + //先选出菜单 + List popedoms = allPopedoms.stream().filter(a -> a.getIsMenu().equals("1") || a.getIsMenu().equals("2")).collect(Collectors.toList()); + + //转换节点到菜单 + List menuList = popedoms.stream().map(a -> new Menu(a)).collect(Collectors.toList()); + + //构建菜单树 + List result = buildMenuTree(menuList, null); + + //添加默认显示 + result.add(new Menu("*", "/404", true)); + + return result; + } + + + //递归生成树 + private List buildMenuTree(List menuList, String pid) { + List treeList = new ArrayList<>(); + menuList.stream().forEach(menu -> { + if (StringUtils.equals(pid, menu.getParentId())) { + menu.setChildren(buildMenuTree(menuList, menu.getId())); + treeList.add(menu); + } + }); + return treeList; + } +} \ No newline at end of file diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/UserServiceImpl.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..ed69081 --- /dev/null +++ b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/service/impl/UserServiceImpl.java @@ -0,0 +1,36 @@ +package com.springboot.cloud.sysadmin.organization.service.impl; + +/* + ********************************************** + * DATE PERSON REASON + * 2020-12-30 FXY Created + ********************************************** + */ + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.springboot.cloud.sysadmin.organization.dao.UserMapper; +import com.springboot.cloud.sysadmin.organization.entity.po.User; +import com.springboot.cloud.sysadmin.organization.service.UserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class UserServiceImpl extends ServiceImpl implements UserService { + + /** + * username用户账户,唯一 + * mobile 用户手机号,唯一 + * + * @param payload + * @return + */ + @Override + public User getUserByUsernameOrMobile(String payload) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("username", payload).or().eq("mobile", payload); + return getOne(queryWrapper); + } +} diff --git a/sysadmin/pom.xml b/sysadmin/pom.xml new file mode 100644 index 0000000..1b5abbe --- /dev/null +++ b/sysadmin/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + sysadmin + 0.0.1-SNAPSHOT + pom + + sysadmin + Demo Sysadmin project for Spring Boot + + + webapp-parent + business.chaoran + 0.0.1-SNAPSHOT + ../webapps/webapp-parent/pom.xml + + + + organization + + \ No newline at end of file diff --git a/webapps/pom.xml b/webapps/pom.xml new file mode 100644 index 0000000..9a64241 --- /dev/null +++ b/webapps/pom.xml @@ -0,0 +1,104 @@ + + + 4.0.0 + + webapps + pom + 0.0.1-SNAPSHOT + + webapps + Demo Webapps project for Spring Boot + + + xin-cloud + business.chaoran + 1.0-SNAPSHOT + + + + webapp-parent + + + + + org.springframework.boot + spring-boot-starter-web + + + + business.chaoran + web + 0.0.1-SNAPSHOT + + + + com.alibaba + druid-spring-boot-starter + 1.1.9 + + + + mysql + mysql-connector-java + 8.0.18 + + + org.flywaydb + flyway-core + test + 5.1.3 + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + + + + + io.github.swagger2markup + swagger2markup-maven-plugin + 1.3.4 + + http://localhost:8001/v2/api-docs + src/main/docs/asciidoc/generated + + ASCIIDOC + + + + + + org.asciidoctor + asciidoctor-maven-plugin + 1.5.6 + + src/main/docs/asciidoc/generated + src/main/gst/asciidoc/html + html + coderay + + book + left + 3 + + + + + + + + + + + \ No newline at end of file diff --git a/webapps/webapp-parent/pom.xml b/webapps/webapp-parent/pom.xml new file mode 100644 index 0000000..8d4dab6 --- /dev/null +++ b/webapps/webapp-parent/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + webapp-parent + pom + 0.0.1-SNAPSHOT + + + webapps + business.chaoran + 0.0.1-SNAPSHOT + + + + + + com.baomidou + mybatis-plus-boot-starter + 3.1.0 + + + org.mybatis + mybatis-spring + 2.0.0 + + + + \ No newline at end of file