├── .gitignore ├── LICENSE ├── README.md ├── ace-auth ├── ace-auth-client │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── github │ │ └── wxiaoqi │ │ └── security │ │ └── auth │ │ └── client │ │ ├── EnableAceAuthClient.java │ │ ├── annotation │ │ ├── IgnoreClientToken.java │ │ └── IgnoreUserToken.java │ │ ├── config │ │ ├── FeignOkHttpConfig.java │ │ ├── ServiceAuthConfig.java │ │ └── UserAuthConfig.java │ │ ├── configuration │ │ └── AutoConfiguration.java │ │ ├── exception │ │ ├── JwtIllegalArgumentException.java │ │ ├── JwtSignatureException.java │ │ └── JwtTokenExpiredException.java │ │ ├── feign │ │ └── ServiceAuthFeign.java │ │ ├── interceptor │ │ ├── OkHttpTokenInterceptor.java │ │ ├── ServiceAuthRestInterceptor.java │ │ └── UserAuthRestInterceptor.java │ │ ├── jwt │ │ ├── ServiceAuthUtil.java │ │ └── UserAuthUtil.java │ │ └── runner │ │ └── AuthClientRunner.java ├── ace-auth-common │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── github │ │ └── wxiaoqi │ │ └── security │ │ └── auth │ │ └── common │ │ ├── constatns │ │ └── CommonConstants.java │ │ └── util │ │ ├── StringHelper.java │ │ └── jwt │ │ ├── IJWTInfo.java │ │ ├── JWTHelper.java │ │ ├── JWTInfo.java │ │ └── RsaKeyHelper.java ├── ace-auth-server │ ├── pom.xml │ └── src │ │ ├── db │ │ └── init.sql │ │ └── main │ │ ├── docker │ │ └── Dockerfile │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ └── security │ │ │ └── auth │ │ │ ├── AuthBootstrap.java │ │ │ ├── bean │ │ │ └── ClientInfo.java │ │ │ ├── biz │ │ │ ├── ClientBiz.java │ │ │ └── ClientServiceBiz.java │ │ │ ├── configuration │ │ │ ├── ClientConfiguration.java │ │ │ ├── FeignConfiguration.java │ │ │ ├── KeyConfiguration.java │ │ │ ├── RedisConfiguration.java │ │ │ ├── UserConfiguration.java │ │ │ └── WebConfiguration.java │ │ │ ├── controller │ │ │ ├── AuthController.java │ │ │ ├── ClientController.java │ │ │ └── ServiceController.java │ │ │ ├── entity │ │ │ ├── Client.java │ │ │ └── ClientService.java │ │ │ ├── feign │ │ │ └── IUserService.java │ │ │ ├── interceptor │ │ │ ├── ClientTokenInterceptor.java │ │ │ ├── ServiceAuthRestInterceptor.java │ │ │ └── UserAuthRestInterceptor.java │ │ │ ├── mapper │ │ │ ├── ClientMapper.java │ │ │ └── ClientServiceMapper.java │ │ │ ├── runner │ │ │ └── AuthServerRunner.java │ │ │ ├── service │ │ │ ├── AuthClientService.java │ │ │ ├── AuthService.java │ │ │ └── impl │ │ │ │ ├── AuthServiceImpl.java │ │ │ │ └── DBAuthClientService.java │ │ │ ├── util │ │ │ ├── client │ │ │ │ └── ClientTokenUtil.java │ │ │ └── user │ │ │ │ ├── JwtAuthenticationRequest.java │ │ │ │ ├── JwtAuthenticationResponse.java │ │ │ │ └── JwtTokenUtil.java │ │ │ └── vo │ │ │ └── FrontUser.java │ │ └── resources │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ └── mapper │ │ ├── ClientMapper.xml │ │ └── ClientServiceMapper.xml └── pom.xml ├── ace-common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── github │ └── wxiaoqi │ └── security │ └── common │ ├── biz │ └── BaseBiz.java │ ├── constant │ ├── CommonConstants.java │ ├── RestCodeConstants.java │ └── UserConstant.java │ ├── context │ └── BaseContextHandler.java │ ├── exception │ ├── BaseException.java │ └── auth │ │ ├── ClientForbiddenException.java │ │ ├── ClientInvalidException.java │ │ ├── ClientTokenException.java │ │ ├── UserInvalidException.java │ │ └── UserTokenException.java │ ├── handler │ └── GlobalExceptionHandler.java │ ├── msg │ ├── BaseResponse.java │ ├── ListRestResponse.java │ ├── ObjectRestResponse.java │ ├── TableResultResponse.java │ └── auth │ │ ├── TokenErrorResponse.java │ │ └── TokenForbiddenResponse.java │ ├── rest │ └── BaseController.java │ ├── service │ ├── BaseService.java │ └── impl │ │ └── BaseServiceImpl.java │ ├── util │ ├── ClientUtil.java │ ├── EntityUtils.java │ ├── Query.java │ ├── ReflectionUtils.java │ ├── StringHelper.java │ ├── TreeUtil.java │ └── UUIDUtils.java │ ├── vo │ └── TreeNode.java │ └── web │ └── ParameterRequestWrapper.java ├── ace-control ├── ace-monitor │ ├── pom.xml │ └── src │ │ └── main │ │ ├── docker │ │ └── Dockerfile │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ └── security │ │ │ └── monitor │ │ │ └── MonitorBootstrap.java │ │ └── resources │ │ └── application.yml ├── ace-nacos │ ├── db │ │ └── init_nacos.sql │ ├── nacos-server-0.8.0.zip │ └── nacos │ │ ├── LICENSE │ │ ├── NOTICE │ │ ├── bin │ │ ├── shutdown.cmd │ │ ├── shutdown.sh │ │ ├── startup.cmd │ │ └── startup.sh │ │ ├── conf │ │ ├── application.properties │ │ ├── application.properties.example │ │ ├── cluster.conf.example │ │ ├── nacos-logback.xml │ │ ├── nacos-mysql.sql │ │ └── schema.sql │ │ └── plugins │ │ └── cmdb │ │ └── nacos-cmdb-plugin-example.jar ├── ace-sentinel │ └── sentinel-dashboard.jar └── pom.xml ├── ace-gate ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── github │ │ └── wxiaoqi │ │ └── security │ │ └── gate │ │ ├── GatewayServerBootstrap.java │ │ ├── config │ │ └── GatewayConfig.java │ │ ├── fallback │ │ └── UserServiceFallback.java │ │ ├── feign │ │ ├── ILogService.java │ │ └── IUserService.java │ │ ├── filter │ │ └── AccessGatewayFilter.java │ │ ├── handler │ │ └── RequestBodyRoutePredicateFactory.java │ │ └── utils │ │ └── DBLog.java │ └── resources │ ├── application.yml │ └── bootstrap.yml ├── ace-modules ├── ace-admin │ ├── db │ │ └── init.sql │ ├── pom.xml │ └── src │ │ └── main │ │ ├── docker │ │ ├── Dockerfile │ │ └── wait-for-it.sh │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ └── security │ │ │ └── admin │ │ │ ├── AdminBootstrap.java │ │ │ ├── biz │ │ │ ├── ElementBiz.java │ │ │ ├── GateLogBiz.java │ │ │ ├── GroupBiz.java │ │ │ ├── GroupTypeBiz.java │ │ │ ├── MenuBiz.java │ │ │ ├── ResourceAuthorityBiz.java │ │ │ └── UserBiz.java │ │ │ ├── config │ │ │ └── WebConfiguration.java │ │ │ ├── constant │ │ │ └── AdminCommonConstant.java │ │ │ ├── entity │ │ │ ├── Element.java │ │ │ ├── GateLog.java │ │ │ ├── Group.java │ │ │ ├── GroupType.java │ │ │ ├── Menu.java │ │ │ ├── ResourceAuthority.java │ │ │ └── User.java │ │ │ ├── mapper │ │ │ ├── ElementMapper.java │ │ │ ├── GateLogMapper.java │ │ │ ├── GroupMapper.java │ │ │ ├── GroupTypeMapper.java │ │ │ ├── MenuMapper.java │ │ │ ├── ResourceAuthorityMapper.java │ │ │ └── UserMapper.java │ │ │ ├── rest │ │ │ ├── ElementController.java │ │ │ ├── GateLogController.java │ │ │ ├── GroupController.java │ │ │ ├── GroupTypeController.java │ │ │ ├── MenuController.java │ │ │ └── UserController.java │ │ │ ├── rpc │ │ │ ├── LogRest.java │ │ │ ├── UserRest.java │ │ │ └── service │ │ │ │ └── PermissionService.java │ │ │ └── vo │ │ │ ├── AuthorityMenuTree.java │ │ │ ├── FrontUser.java │ │ │ ├── GroupTree.java │ │ │ ├── GroupUsers.java │ │ │ └── MenuTree.java │ │ └── resources │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ ├── builder │ │ └── generatorConfig.xml │ │ ├── logback.xml │ │ └── mapper │ │ ├── ElementMapper.xml │ │ ├── GateLogMapper.xml │ │ ├── GroupMapper.xml │ │ ├── GroupTypeMapper.xml │ │ ├── MenuMapper.xml │ │ ├── ResourceAuthorityMapper.xml │ │ └── UserMapper.xml ├── ace-generator │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ └── security │ │ │ └── generator │ │ │ ├── GeneratorBootstrap.java │ │ │ ├── config │ │ │ └── WebConfig.java │ │ │ ├── controller │ │ │ └── HomeController.java │ │ │ ├── entity │ │ │ ├── ColumnEntity.java │ │ │ └── TableEntity.java │ │ │ ├── mapper │ │ │ └── GeneratorMapper.java │ │ │ ├── rest │ │ │ └── GeneratorRest.java │ │ │ ├── service │ │ │ └── GeneratorService.java │ │ │ └── utils │ │ │ ├── DateUtils.java │ │ │ └── GeneratorUtils.java │ │ └── resources │ │ ├── application.yml │ │ ├── generator.properties │ │ ├── mapper │ │ └── GeneratorMapper.xml │ │ ├── static │ │ ├── README.md │ │ ├── ag │ │ │ └── generator │ │ │ │ └── generator.js │ │ ├── bootstrap.min.js │ │ ├── css │ │ │ ├── ag.css │ │ │ ├── begtable.css │ │ │ ├── bootstrap.min.css │ │ │ ├── btable.css │ │ │ ├── global.css │ │ │ ├── layout.css │ │ │ ├── layui.css │ │ │ ├── layui.mobile.css │ │ │ ├── login.css │ │ │ ├── main.css │ │ │ ├── modules │ │ │ │ ├── code.css │ │ │ │ ├── icheck │ │ │ │ │ ├── flat │ │ │ │ │ │ ├── _all.css │ │ │ │ │ │ ├── aero.css │ │ │ │ │ │ ├── aero.png │ │ │ │ │ │ ├── aero@2x.png │ │ │ │ │ │ ├── blue.css │ │ │ │ │ │ ├── blue.png │ │ │ │ │ │ ├── blue@2x.png │ │ │ │ │ │ ├── flat.css │ │ │ │ │ │ ├── flat.png │ │ │ │ │ │ ├── flat@2x.png │ │ │ │ │ │ ├── green.css │ │ │ │ │ │ ├── green.png │ │ │ │ │ │ ├── green@2x.png │ │ │ │ │ │ ├── grey.css │ │ │ │ │ │ ├── grey.png │ │ │ │ │ │ ├── grey@2x.png │ │ │ │ │ │ ├── orange.css │ │ │ │ │ │ ├── orange.png │ │ │ │ │ │ ├── orange@2x.png │ │ │ │ │ │ ├── pink.css │ │ │ │ │ │ ├── pink.png │ │ │ │ │ │ ├── pink@2x.png │ │ │ │ │ │ ├── purple.css │ │ │ │ │ │ ├── purple.png │ │ │ │ │ │ ├── purple@2x.png │ │ │ │ │ │ ├── red.css │ │ │ │ │ │ ├── red.png │ │ │ │ │ │ ├── red@2x.png │ │ │ │ │ │ ├── yellow.css │ │ │ │ │ │ ├── yellow.png │ │ │ │ │ │ └── yellow@2x.png │ │ │ │ │ ├── futurico │ │ │ │ │ │ ├── futurico.css │ │ │ │ │ │ ├── futurico.png │ │ │ │ │ │ └── futurico@2x.png │ │ │ │ │ ├── icheck.css │ │ │ │ │ ├── line │ │ │ │ │ │ ├── _all.css │ │ │ │ │ │ ├── aero.css │ │ │ │ │ │ ├── blue.css │ │ │ │ │ │ ├── green.css │ │ │ │ │ │ ├── grey.css │ │ │ │ │ │ ├── line.css │ │ │ │ │ │ ├── line.png │ │ │ │ │ │ ├── line@2x.png │ │ │ │ │ │ ├── orange.css │ │ │ │ │ │ ├── pink.css │ │ │ │ │ │ ├── purple.css │ │ │ │ │ │ ├── red.css │ │ │ │ │ │ └── yellow.css │ │ │ │ │ ├── minimal │ │ │ │ │ │ ├── _all.css │ │ │ │ │ │ ├── aero.css │ │ │ │ │ │ ├── aero.png │ │ │ │ │ │ ├── aero@2x.png │ │ │ │ │ │ ├── blue.css │ │ │ │ │ │ ├── blue.png │ │ │ │ │ │ ├── blue@2x.png │ │ │ │ │ │ ├── green.css │ │ │ │ │ │ ├── green.png │ │ │ │ │ │ ├── green@2x.png │ │ │ │ │ │ ├── grey.css │ │ │ │ │ │ ├── grey.png │ │ │ │ │ │ ├── grey@2x.png │ │ │ │ │ │ ├── minimal.css │ │ │ │ │ │ ├── minimal.png │ │ │ │ │ │ ├── minimal@2x.png │ │ │ │ │ │ ├── orange.css │ │ │ │ │ │ ├── orange.png │ │ │ │ │ │ ├── orange@2x.png │ │ │ │ │ │ ├── pink.css │ │ │ │ │ │ ├── pink.png │ │ │ │ │ │ ├── pink@2x.png │ │ │ │ │ │ ├── purple.css │ │ │ │ │ │ ├── purple.png │ │ │ │ │ │ ├── purple@2x.png │ │ │ │ │ │ ├── red.css │ │ │ │ │ │ ├── red.png │ │ │ │ │ │ ├── red@2x.png │ │ │ │ │ │ ├── yellow.css │ │ │ │ │ │ ├── yellow.png │ │ │ │ │ │ └── yellow@2x.png │ │ │ │ │ ├── polaris │ │ │ │ │ │ ├── polaris.css │ │ │ │ │ │ ├── polaris.png │ │ │ │ │ │ └── polaris@2x.png │ │ │ │ │ └── square │ │ │ │ │ │ ├── _all.css │ │ │ │ │ │ ├── aero.css │ │ │ │ │ │ ├── aero.png │ │ │ │ │ │ ├── aero@2x.png │ │ │ │ │ │ ├── blue.css │ │ │ │ │ │ ├── blue.png │ │ │ │ │ │ ├── blue@2x.png │ │ │ │ │ │ ├── green.css │ │ │ │ │ │ ├── green.png │ │ │ │ │ │ ├── green@2x.png │ │ │ │ │ │ ├── grey.css │ │ │ │ │ │ ├── grey.png │ │ │ │ │ │ ├── grey@2x.png │ │ │ │ │ │ ├── orange.css │ │ │ │ │ │ ├── orange.png │ │ │ │ │ │ ├── orange@2x.png │ │ │ │ │ │ ├── pink.css │ │ │ │ │ │ ├── pink.png │ │ │ │ │ │ ├── pink@2x.png │ │ │ │ │ │ ├── purple.css │ │ │ │ │ │ ├── purple.png │ │ │ │ │ │ ├── purple@2x.png │ │ │ │ │ │ ├── red.css │ │ │ │ │ │ ├── red.png │ │ │ │ │ │ ├── red@2x.png │ │ │ │ │ │ ├── square.css │ │ │ │ │ │ ├── square.png │ │ │ │ │ │ ├── square@2x.png │ │ │ │ │ │ ├── yellow.css │ │ │ │ │ │ ├── yellow.png │ │ │ │ │ │ └── yellow@2x.png │ │ │ │ ├── laydate │ │ │ │ │ ├── icon.png │ │ │ │ │ └── laydate.css │ │ │ │ └── layer │ │ │ │ │ └── default │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── layer.css │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ └── loading-2.gif │ │ │ └── table.css │ │ ├── datas │ │ │ ├── area_data.js │ │ │ ├── btable_data.json │ │ │ ├── laytpl_laypage_data.json │ │ │ ├── nav.js │ │ │ ├── nav.json │ │ │ ├── nav_content.json │ │ │ └── nav_member.json │ │ ├── face │ │ │ ├── 0.gif │ │ │ ├── 1.gif │ │ │ ├── 10.gif │ │ │ ├── 11.gif │ │ │ ├── 12.gif │ │ │ ├── 13.gif │ │ │ ├── 14.gif │ │ │ ├── 15.gif │ │ │ ├── 16.gif │ │ │ ├── 17.gif │ │ │ ├── 18.gif │ │ │ ├── 19.gif │ │ │ ├── 2.gif │ │ │ ├── 22.gif │ │ │ ├── 24.gif │ │ │ ├── 25.gif │ │ │ ├── 26.gif │ │ │ ├── 27.gif │ │ │ ├── 29.gif │ │ │ ├── 3.gif │ │ │ ├── 33.gif │ │ │ ├── 34.gif │ │ │ ├── 35.gif │ │ │ ├── 36.gif │ │ │ ├── 37.gif │ │ │ ├── 38.gif │ │ │ ├── 39.gif │ │ │ ├── 4.gif │ │ │ ├── 41.gif │ │ │ ├── 43.gif │ │ │ ├── 44.gif │ │ │ ├── 45.gif │ │ │ ├── 46.gif │ │ │ ├── 48.gif │ │ │ ├── 49.gif │ │ │ ├── 5.gif │ │ │ ├── 50.gif │ │ │ ├── 52.gif │ │ │ ├── 53.gif │ │ │ ├── 54.gif │ │ │ ├── 55.gif │ │ │ ├── 56.gif │ │ │ ├── 59.gif │ │ │ ├── 6.gif │ │ │ ├── 61.gif │ │ │ ├── 62.gif │ │ │ ├── 63.gif │ │ │ ├── 65.gif │ │ │ ├── 66.gif │ │ │ ├── 67.gif │ │ │ ├── 69.gif │ │ │ ├── 7.gif │ │ │ ├── 70.gif │ │ │ └── 71.gif │ │ ├── font │ │ │ ├── iconfont.svg │ │ │ └── iconfont.woff │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── images │ │ │ ├── 0.jpg │ │ │ ├── logo-1.png │ │ │ └── xx.png │ │ ├── js │ │ │ ├── area.js │ │ │ ├── baajax.js │ │ │ ├── begtable.js │ │ │ ├── btable.js │ │ │ ├── common.js │ │ │ ├── index.js │ │ │ ├── layout.js │ │ │ ├── navbar.js │ │ │ ├── paging.js │ │ │ ├── tab.js │ │ │ └── validator.js │ │ ├── lay │ │ │ ├── dest │ │ │ │ ├── layui.all.js │ │ │ │ └── layui.mod.js │ │ │ ├── lib │ │ │ │ └── jquery.js │ │ │ └── modules │ │ │ │ ├── code.js │ │ │ │ ├── element.js │ │ │ │ ├── flow.js │ │ │ │ ├── form.js │ │ │ │ ├── jquery.js │ │ │ │ ├── laydate.js │ │ │ │ ├── layedit.js │ │ │ │ ├── layer.js │ │ │ │ ├── laypage.js │ │ │ │ ├── laytpl.js │ │ │ │ ├── mobile.js │ │ │ │ ├── tree.js │ │ │ │ ├── upload.js │ │ │ │ └── util.js │ │ ├── layui.js │ │ ├── modules │ │ │ ├── icheck.js │ │ │ ├── menu.js │ │ │ └── pjax.js │ │ └── plugins │ │ │ ├── HyperDown │ │ │ ├── LICENSE │ │ │ └── Parser.js │ │ │ ├── bootstrap-table │ │ │ ├── bootstrap-table-mobile.min.js │ │ │ ├── bootstrap-table.min.js │ │ │ ├── css │ │ │ │ └── bootstrap-table.min.css │ │ │ └── locale │ │ │ │ ├── bootstrap-table-zh-CN.js │ │ │ │ └── bootstrap-table-zh-CN.min.js │ │ │ ├── bootstrap-treeview │ │ │ ├── css │ │ │ │ └── bootstrap-treeview.min.css │ │ │ └── js │ │ │ │ └── bootstrap-treeview.min.js │ │ │ ├── font-awesome │ │ │ ├── css │ │ │ │ ├── font-awesome.css │ │ │ │ └── font-awesome.min.css │ │ │ └── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── jquery-treegrid │ │ │ ├── css │ │ │ │ └── jquery.treegrid.css │ │ │ ├── extension │ │ │ │ └── jquery.treegrid.extension.js │ │ │ ├── img │ │ │ │ ├── collapse.png │ │ │ │ ├── expand.png │ │ │ │ ├── file.png │ │ │ │ └── folder.png │ │ │ └── js │ │ │ │ ├── jquery.treegrid.bootstrap3.js │ │ │ │ └── jquery.treegrid.min.js │ │ │ ├── jquery.min.js │ │ │ ├── marked │ │ │ └── marked.js │ │ │ └── select2 │ │ │ ├── css │ │ │ ├── select2.css │ │ │ └── select2.min.css │ │ │ └── js │ │ │ ├── i18n │ │ │ ├── ar.js │ │ │ ├── az.js │ │ │ ├── bg.js │ │ │ ├── ca.js │ │ │ ├── cs.js │ │ │ ├── da.js │ │ │ ├── de.js │ │ │ ├── el.js │ │ │ ├── en.js │ │ │ ├── es.js │ │ │ ├── et.js │ │ │ ├── eu.js │ │ │ ├── fa.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ ├── gl.js │ │ │ ├── he.js │ │ │ ├── hi.js │ │ │ ├── hr.js │ │ │ ├── hu.js │ │ │ ├── id.js │ │ │ ├── is.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── km.js │ │ │ ├── ko.js │ │ │ ├── lt.js │ │ │ ├── lv.js │ │ │ ├── mk.js │ │ │ ├── ms.js │ │ │ ├── nb.js │ │ │ ├── nl.js │ │ │ ├── pl.js │ │ │ ├── pt-BR.js │ │ │ ├── pt.js │ │ │ ├── ro.js │ │ │ ├── ru.js │ │ │ ├── sk.js │ │ │ ├── sr-Cyrl.js │ │ │ ├── sr.js │ │ │ ├── sv.js │ │ │ ├── th.js │ │ │ ├── tr.js │ │ │ ├── uk.js │ │ │ ├── vi.js │ │ │ ├── zh-CN.js │ │ │ └── zh-TW.js │ │ │ ├── select2.full.js │ │ │ ├── select2.full.min.js │ │ │ ├── select2.js │ │ │ └── select2.min.js │ │ ├── template │ │ ├── biz.java.vm │ │ ├── controller.java.vm │ │ ├── entity.java.vm │ │ ├── index.js.vm │ │ ├── index.vue.vm │ │ ├── mapper.java.vm │ │ └── mapper.xml.vm │ │ └── templates │ │ ├── about.html │ │ ├── generator │ │ └── list.html │ │ └── index.html ├── ace-interface │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── github │ │ └── wxiaoqi │ │ └── security │ │ └── api │ │ └── vo │ │ ├── authority │ │ └── PermissionInfo.java │ │ ├── log │ │ └── LogInfo.java │ │ ├── search │ │ └── IndexObject.java │ │ └── user │ │ └── UserInfo.java ├── ace-tool │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ ├── ToolBootstrap.java │ │ │ ├── config │ │ │ ├── CloudStorageConfig.java │ │ │ └── LuceneConfiguration.java │ │ │ ├── oss │ │ │ ├── cloud │ │ │ │ ├── AliyunCloudStorageService.java │ │ │ │ ├── CloudStorageService.java │ │ │ │ ├── OSSFactory.java │ │ │ │ ├── QcloudCloudStorageService.java │ │ │ │ └── QiniuCloudStorageService.java │ │ │ ├── constants │ │ │ │ └── OSSConstant.java │ │ │ └── controller │ │ │ │ └── OssController.java │ │ │ └── search │ │ │ ├── controller │ │ │ └── SearchController.java │ │ │ ├── lucene │ │ │ ├── LuceneDao.java │ │ │ └── util │ │ │ │ ├── DocumentUtil.java │ │ │ │ ├── IKAnalyzer5x.java │ │ │ │ ├── IKTokenizer5x.java │ │ │ │ └── QueryUtil.java │ │ │ └── service │ │ │ ├── LuceneService.java │ │ │ └── impl │ │ │ └── LuceneServiceImpl.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yml └── pom.xml ├── ace-sidecar ├── ace-sidecar-client-demo │ ├── pom.xml │ ├── readme.md │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ └── security │ │ │ └── sidecarclient │ │ │ ├── PythonServerBootstrap.java │ │ │ ├── client │ │ │ └── PythonFeignClient.java │ │ │ ├── entity │ │ │ └── Message.java │ │ │ └── rest │ │ │ └── PythonController.java │ │ └── resources │ │ └── application.yml ├── ace-sidecar-server │ ├── pom.xml │ ├── readme.md │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── wxiaoqi │ │ │ └── security │ │ │ └── sidecar │ │ │ └── SidercarBootstrap.java │ │ └── resources │ │ └── application.yml └── pom.xml ├── alibaba-base └── nacos.sql ├── docker-compose.yml └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | */target 2 | *.iml 3 | /.idea 4 | *.class 5 | target/ 6 | .project 7 | .settings/ 8 | .classpath 9 | ace-modules/ace-tool/src/main/resources/application-dev.yml 10 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/EnableAceAuthClient.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client; 2 | 3 | import com.github.wxiaoqi.security.auth.client.configuration.AutoConfiguration; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.context.annotation.Import; 6 | 7 | import java.lang.annotation.*; 8 | 9 | /** 10 | * Created by ace on 2017/9/15. 11 | */ 12 | @Target(ElementType.TYPE) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Import(AutoConfiguration.class) 15 | @Documented 16 | @Inherited 17 | public @interface EnableAceAuthClient { 18 | } 19 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/annotation/IgnoreClientToken.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 忽略服务鉴权 10 | * Created by ace on 2017/9/27. 11 | */ 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @Target(value={ElementType.METHOD,ElementType.TYPE}) 14 | public @interface IgnoreClientToken { 15 | } 16 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/annotation/IgnoreUserToken.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 忽略用户鉴权 10 | * Created by ace on 2017/9/27. 11 | */ 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @Target(value={ElementType.METHOD,ElementType.TYPE}) 14 | public @interface IgnoreUserToken { 15 | } 16 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/config/FeignOkHttpConfig.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.config; 2 | 3 | import com.github.wxiaoqi.security.auth.client.interceptor.OkHttpTokenInterceptor; 4 | import feign.Feign; 5 | import okhttp3.ConnectionPool; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.boot.autoconfigure.AutoConfigureBefore; 8 | import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; 9 | import org.springframework.cloud.openfeign.FeignAutoConfiguration; 10 | import org.springframework.context.annotation.Bean; 11 | import org.springframework.context.annotation.Configuration; 12 | 13 | import java.util.concurrent.TimeUnit; 14 | 15 | @AutoConfigureBefore(FeignAutoConfiguration.class) 16 | @Configuration 17 | @ConditionalOnClass(Feign.class) 18 | public class FeignOkHttpConfig { 19 | 20 | @Autowired 21 | OkHttpTokenInterceptor okHttpLoggingInterceptor; 22 | 23 | private int feignOkHttpReadTimeout = 60; 24 | private int feignConnectTimeout = 60; 25 | private int feignWriteTimeout = 120; 26 | 27 | @Bean 28 | public okhttp3.OkHttpClient okHttpClient() { 29 | return new okhttp3.OkHttpClient.Builder().readTimeout(feignOkHttpReadTimeout, TimeUnit.SECONDS).connectTimeout(feignConnectTimeout, TimeUnit.SECONDS) 30 | .writeTimeout(feignWriteTimeout, TimeUnit.SECONDS).connectionPool(new ConnectionPool()) 31 | .addInterceptor(okHttpLoggingInterceptor) 32 | .build(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/config/UserAuthConfig.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.config; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | 7 | /** 8 | * Created by ace on 2017/9/15. 9 | */ 10 | public class UserAuthConfig { 11 | 12 | @Value("${auth.user.token-header}") 13 | private String tokenHeader; 14 | 15 | private byte[] pubKeyByte; 16 | 17 | public String getTokenHeader() { 18 | return tokenHeader; 19 | } 20 | 21 | public void setTokenHeader(String tokenHeader) { 22 | this.tokenHeader = tokenHeader; 23 | } 24 | 25 | public String getToken(HttpServletRequest request){ 26 | return request.getHeader(this.getTokenHeader()); 27 | } 28 | 29 | public byte[] getPubKeyByte() { 30 | return pubKeyByte; 31 | } 32 | 33 | public void setPubKeyByte(byte[] pubKeyByte) { 34 | this.pubKeyByte = pubKeyByte; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/configuration/AutoConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.configuration; 2 | 3 | import com.github.wxiaoqi.security.auth.client.config.ServiceAuthConfig; 4 | import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.ComponentScan; 7 | import org.springframework.context.annotation.Configuration; 8 | 9 | /** 10 | * Created by ace on 2017/9/15. 11 | */ 12 | @Configuration 13 | @ComponentScan({"com.github.wxiaoqi.security.auth.client","com.github.wxiaoqi.security.auth.common.event"}) 14 | public class AutoConfiguration { 15 | @Bean 16 | ServiceAuthConfig getServiceAuthConfig(){ 17 | return new ServiceAuthConfig(); 18 | } 19 | 20 | @Bean 21 | UserAuthConfig getUserAuthConfig(){ 22 | return new UserAuthConfig(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/exception/JwtIllegalArgumentException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.exception; 2 | 3 | /** 4 | * Created by ace on 2017/9/15. 5 | */ 6 | public class JwtIllegalArgumentException extends Exception { 7 | public JwtIllegalArgumentException(String s) { 8 | super(s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/exception/JwtSignatureException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.exception; 2 | 3 | /** 4 | * 5 | * @author ace 6 | * @date 2017/9/15 7 | */ 8 | public class JwtSignatureException extends Exception { 9 | public JwtSignatureException(String s) { 10 | super(s); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/exception/JwtTokenExpiredException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.exception; 2 | 3 | /** 4 | * Created by ace on 2017/9/15. 5 | */ 6 | public class JwtTokenExpiredException extends Exception { 7 | public JwtTokenExpiredException(String s) { 8 | super(s); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/jwt/UserAuthUtil.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.client.jwt; 2 | 3 | import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; 4 | import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; 5 | import com.github.wxiaoqi.security.auth.common.util.jwt.JWTHelper; 6 | import com.github.wxiaoqi.security.common.exception.auth.UserTokenException; 7 | import io.jsonwebtoken.ExpiredJwtException; 8 | import io.jsonwebtoken.SignatureException; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.context.annotation.Configuration; 11 | 12 | /** 13 | * Created by ace on 2017/9/15. 14 | */ 15 | @Configuration 16 | public class UserAuthUtil { 17 | @Autowired 18 | private UserAuthConfig userAuthConfig; 19 | public IJWTInfo getInfoFromToken(String token) throws Exception { 20 | try { 21 | return JWTHelper.getInfoFromToken(token, userAuthConfig.getPubKeyByte()); 22 | }catch (ExpiredJwtException ex){ 23 | throw new UserTokenException("User token expired!"); 24 | }catch (SignatureException ex){ 25 | throw new UserTokenException("User token signature error!"); 26 | }catch (IllegalArgumentException ex){ 27 | throw new UserTokenException("User token is null or empty!"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | ace-auth 7 | com.github.wxiaoqi 8 | 2.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ace-auth-common 13 | 14 | 15 | io.jsonwebtoken 16 | jjwt 17 | 0.7.0 18 | 19 | 20 | joda-time 21 | joda-time 22 | 2.9.5 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-common/src/main/java/com/github/wxiaoqi/security/auth/common/constatns/CommonConstants.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.common.constatns; 2 | 3 | /** 4 | * Created by ace on 2017/8/29. 5 | */ 6 | public class CommonConstants { 7 | public final static String RESOURCE_TYPE_MENU = "menu"; 8 | public final static String RESOURCE_TYPE_BTN = "button"; 9 | public static final Integer EX_TOKEN_ERROR_CODE = 40101; 10 | // 用户token异常 11 | public static final Integer EX_USER_INVALID_CODE = 40102; 12 | // 客户端token异常 13 | public static final Integer EX_CLIENT_INVALID_CODE = 40131; 14 | public static final Integer EX_CLIENT_FORBIDDEN_CODE = 40331; 15 | public static final Integer EX_OTHER_CODE = 500; 16 | public static final String CONTEXT_KEY_USER_ID = "currentUserId"; 17 | public static final String CONTEXT_KEY_USERNAME = "currentUserName"; 18 | public static final String CONTEXT_KEY_USER_NAME = "currentUser"; 19 | public static final String CONTEXT_KEY_USER_TOKEN = "currentUserToken"; 20 | public static final String JWT_KEY_USER_ID = "userId"; 21 | public static final String JWT_KEY_NAME = "name"; 22 | } 23 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-common/src/main/java/com/github/wxiaoqi/security/auth/common/util/StringHelper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.common.util; 2 | 3 | /** 4 | * Created by ace on 2017/9/10. 5 | */ 6 | public class StringHelper { 7 | public static String getObjectValue(Object obj){ 8 | return obj==null?"":obj.toString(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-common/src/main/java/com/github/wxiaoqi/security/auth/common/util/jwt/IJWTInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.common.util.jwt; 2 | 3 | /** 4 | * Created by ace on 2017/9/10. 5 | */ 6 | public interface IJWTInfo { 7 | /** 8 | * 获取用户名 9 | * @return 10 | */ 11 | String getUniqueName(); 12 | 13 | /** 14 | * 获取用户ID 15 | * @return 16 | */ 17 | String getId(); 18 | 19 | /** 20 | * 获取名称 21 | * @return 22 | */ 23 | String getName(); 24 | } 25 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM livingobjects/jre8 2 | VOLUME /tmp 3 | ADD ace-auth.jar app.jar 4 | RUN bash -c 'touch /app.jar' 5 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 6 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth; 2 | 3 | 4 | import org.mybatis.spring.annotation.MapperScan; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 7 | import org.springframework.boot.autoconfigure.SpringBootApplication; 8 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 9 | import org.springframework.cloud.openfeign.EnableFeignClients; 10 | 11 | /** 12 | * Created by Ace on 2017/6/2. 13 | */ 14 | @SpringBootApplication 15 | @EnableDiscoveryClient 16 | @EnableFeignClients 17 | @MapperScan("com.github.wxiaoqi.security.auth.mapper") 18 | @EnableAutoConfiguration 19 | public class AuthBootstrap { 20 | public static void main(String[] args) { 21 | SpringApplication.run(AuthBootstrap.class, args); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/bean/ClientInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.bean; 2 | 3 | 4 | import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; 5 | 6 | /** 7 | * Created by ace on 2017/9/10. 8 | */ 9 | public class ClientInfo implements IJWTInfo { 10 | String clientId; 11 | String name; 12 | 13 | public ClientInfo(String clientId, String name, String id) { 14 | this.clientId = clientId; 15 | this.name = name; 16 | this.id = id; 17 | } 18 | 19 | public void setId(String id) { 20 | this.id = id; 21 | } 22 | 23 | String id; 24 | public String getClientId() { 25 | return clientId; 26 | } 27 | 28 | public void setClientId(String clientId) { 29 | this.clientId = clientId; 30 | } 31 | 32 | public void setName(String name) { 33 | this.name = name; 34 | } 35 | 36 | @Override 37 | public String getUniqueName() { 38 | return clientId; 39 | } 40 | 41 | @Override 42 | public String getId() { 43 | return id; 44 | } 45 | 46 | @Override 47 | public String getName() { 48 | return name; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/biz/ClientServiceBiz.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.biz; 2 | 3 | import com.github.wxiaoqi.security.auth.entity.ClientService; 4 | import com.github.wxiaoqi.security.auth.mapper.ClientServiceMapper; 5 | import com.github.wxiaoqi.security.common.biz.BaseBiz; 6 | import org.springframework.stereotype.Service; 7 | 8 | /** 9 | * @author ace 10 | * @create 2017/12/30. 11 | */ 12 | @Service 13 | public class ClientServiceBiz extends BaseBiz { 14 | } 15 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/ClientConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.configuration; 2 | 3 | import org.springframework.beans.factory.annotation.Value; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * Created by ace on 2017/9/12. 8 | */ 9 | @Configuration 10 | public class ClientConfiguration { 11 | @Value("${client.id}") 12 | private String clientId; 13 | @Value("${client.secret}") 14 | private String clientSecret; 15 | @Value("${client.token-header}") 16 | private String clientTokenHeader; 17 | 18 | public String getClientTokenHeader() { 19 | return clientTokenHeader; 20 | } 21 | 22 | public String getClientSecret() { 23 | return clientSecret; 24 | } 25 | 26 | public String getClientId() { 27 | return clientId; 28 | } 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/FeignConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.configuration; 2 | 3 | import com.github.wxiaoqi.security.auth.interceptor.ClientTokenInterceptor; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * Created by ace on 2017/9/12. 9 | */ 10 | @Configuration 11 | public class FeignConfiguration { 12 | @Bean 13 | ClientTokenInterceptor getClientTokenInterceptor(){ 14 | return new ClientTokenInterceptor(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/KeyConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.configuration; 2 | 3 | import lombok.Data; 4 | import org.springframework.beans.factory.annotation.Value; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * @author ace 9 | * @create 2017/12/17. 10 | */ 11 | @Configuration 12 | @Data 13 | public class KeyConfiguration { 14 | @Value("${jwt.rsa-secret}") 15 | private String userSecret; 16 | @Value("${client.rsa-secret}") 17 | private String serviceSecret; 18 | private byte[] userPubKey; 19 | private byte[] userPriKey; 20 | private byte[] servicePriKey; 21 | private byte[] servicePubKey; 22 | } 23 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/UserConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.configuration; 2 | 3 | import lombok.Data; 4 | import org.springframework.beans.factory.annotation.Value; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * @author ace 9 | * @create 2017/12/26. 10 | */ 11 | @Configuration 12 | @Data 13 | public class UserConfiguration { 14 | @Value("${jwt.token-header}") 15 | private String userTokenHeader; 16 | } 17 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/controller/ServiceController.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.controller; 2 | 3 | import com.github.wxiaoqi.security.auth.biz.ClientBiz; 4 | import com.github.wxiaoqi.security.auth.entity.Client; 5 | import com.github.wxiaoqi.security.auth.entity.ClientService; 6 | import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 7 | import com.github.wxiaoqi.security.common.rest.BaseController; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | /** 11 | * @author ace 12 | * @create 2017/12/26. 13 | */ 14 | @RestController 15 | @RequestMapping("service") 16 | public class ServiceController extends BaseController{ 17 | 18 | @RequestMapping(value = "/{id}/client", method = RequestMethod.PUT) 19 | @ResponseBody 20 | public ObjectRestResponse modifyUsers(@PathVariable int id, String clients){ 21 | baseBiz.modifyClientServices(id, clients); 22 | return new ObjectRestResponse().rel(true); 23 | } 24 | 25 | @RequestMapping(value = "/{id}/client", method = RequestMethod.GET) 26 | @ResponseBody 27 | public ObjectRestResponse getUsers(@PathVariable int id){ 28 | return new ObjectRestResponse().rel(true).data(baseBiz.getClientServices(id)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/feign/IUserService.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.feign; 2 | 3 | import com.github.wxiaoqi.security.api.vo.user.UserInfo; 4 | import com.github.wxiaoqi.security.auth.configuration.FeignConfiguration; 5 | import com.github.wxiaoqi.security.auth.util.user.JwtAuthenticationRequest; 6 | import org.springframework.cloud.openfeign.FeignClient; 7 | import org.springframework.web.bind.annotation.RequestBody; 8 | import org.springframework.web.bind.annotation.RequestMapping; 9 | import org.springframework.web.bind.annotation.RequestMethod; 10 | 11 | 12 | /** 13 | * ${DESCRIPTION} 14 | * 15 | * @author wanghaobin 16 | * @create 2017-06-21 8:11 17 | */ 18 | @FeignClient(value = "ace-admin",configuration = FeignConfiguration.class) 19 | public interface IUserService { 20 | @RequestMapping(value = "/api/user/validate", method = RequestMethod.POST) 21 | public UserInfo validate(@RequestBody JwtAuthenticationRequest authenticationRequest); 22 | } 23 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/interceptor/ClientTokenInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.interceptor; 2 | 3 | import com.github.wxiaoqi.security.auth.configuration.ClientConfiguration; 4 | import com.github.wxiaoqi.security.auth.service.AuthClientService; 5 | import feign.RequestInterceptor; 6 | import feign.RequestTemplate; 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | 11 | /** 12 | * Created by ace on 2017/9/12. 13 | */ 14 | public class ClientTokenInterceptor implements RequestInterceptor { 15 | private Logger logger = LoggerFactory.getLogger(ClientTokenInterceptor.class); 16 | @Autowired 17 | private ClientConfiguration clientConfiguration; 18 | @Autowired 19 | private AuthClientService authClientService; 20 | 21 | @Override 22 | public void apply(RequestTemplate requestTemplate) { 23 | try { 24 | requestTemplate.header(clientConfiguration.getClientTokenHeader(), authClientService.apply(clientConfiguration.getClientId(), clientConfiguration.getClientSecret())); 25 | } catch (Exception e) { 26 | e.printStackTrace(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/mapper/ClientMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.mapper; 2 | 3 | import com.github.wxiaoqi.security.auth.entity.Client; 4 | import tk.mybatis.mapper.common.Mapper; 5 | 6 | import java.util.List; 7 | 8 | public interface ClientMapper extends Mapper { 9 | // @Select(" SELECT\n" + 10 | // " client.CODE\n" + 11 | // " FROM\n" + 12 | // " auth_client client\n" + 13 | // " INNER JOIN auth_client_service gcs ON gcs.client_id = client.id\n" + 14 | // " WHERE\n" + 15 | // " gcs.service_id = #{serviceId}") 16 | // @ResultType(String.class) 17 | List selectAllowedClient(String serviceId); 18 | 19 | List selectAuthorityServiceInfo(int clientId); 20 | } -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/mapper/ClientServiceMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.mapper; 2 | 3 | import com.github.wxiaoqi.security.auth.entity.ClientService; 4 | import tk.mybatis.mapper.common.Mapper; 5 | 6 | public interface ClientServiceMapper extends Mapper { 7 | void deleteByServiceId(int id); 8 | } -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/service/AuthClientService.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.service; 2 | 3 | 4 | import java.util.List; 5 | 6 | /** 7 | * Created by ace on 2017/9/10. 8 | */ 9 | public interface AuthClientService { 10 | public String apply(String clientId, String secret) throws Exception; 11 | 12 | /** 13 | * 获取授权的客户端列表 14 | * @param serviceId 15 | * @param secret 16 | * @return 17 | */ 18 | public List getAllowedClient(String serviceId, String secret); 19 | 20 | /** 21 | * 获取服务授权的客户端列表 22 | * @param serviceId 23 | * @return 24 | */ 25 | public List getAllowedClient(String serviceId); 26 | 27 | public void registryClient(); 28 | 29 | public void validate(String clientId, String secret) throws Exception; 30 | } 31 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/service/AuthService.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.service; 2 | 3 | 4 | import com.github.wxiaoqi.security.auth.util.user.JwtAuthenticationRequest; 5 | 6 | public interface AuthService { 7 | String login(JwtAuthenticationRequest authenticationRequest) throws Exception; 8 | String refresh(String oldToken) throws Exception; 9 | void validate(String token) throws Exception; 10 | } 11 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/util/client/ClientTokenUtil.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.util.client; 2 | 3 | import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; 4 | import com.github.wxiaoqi.security.auth.common.util.jwt.JWTHelper; 5 | import com.github.wxiaoqi.security.auth.configuration.KeyConfiguration; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.beans.factory.annotation.Value; 10 | import org.springframework.context.annotation.Configuration; 11 | 12 | /** 13 | * Created by ace on 2017/9/10. 14 | */ 15 | @Configuration 16 | public class ClientTokenUtil { 17 | private Logger logger = LoggerFactory.getLogger(ClientTokenUtil.class); 18 | 19 | @Value("${client.expire}") 20 | private int expire; 21 | @Autowired 22 | private KeyConfiguration keyConfiguration; 23 | 24 | public String generateToken(IJWTInfo jwtInfo) throws Exception { 25 | return JWTHelper.generateToken(jwtInfo, keyConfiguration.getServicePriKey(), expire); 26 | } 27 | 28 | public IJWTInfo getInfoFromToken(String token) throws Exception { 29 | return JWTHelper.getInfoFromToken(token, keyConfiguration.getServicePubKey()); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/util/user/JwtAuthenticationRequest.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.util.user; 2 | 3 | import java.io.Serializable; 4 | 5 | public class JwtAuthenticationRequest implements Serializable { 6 | 7 | private static final long serialVersionUID = -8445943548965154778L; 8 | 9 | private String username; 10 | private String password; 11 | 12 | 13 | public JwtAuthenticationRequest(String username, String password) { 14 | this.username = username; 15 | this.password = password; 16 | } 17 | 18 | public JwtAuthenticationRequest() { 19 | } 20 | 21 | public String getPassword() { 22 | return password; 23 | } 24 | 25 | public void setPassword(String password) { 26 | this.password = password; 27 | } 28 | 29 | public String getUsername() { 30 | return username; 31 | } 32 | 33 | public void setUsername(String username) { 34 | this.username = username; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/util/user/JwtAuthenticationResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.util.user; 2 | 3 | import java.io.Serializable; 4 | 5 | public class JwtAuthenticationResponse implements Serializable { 6 | private static final long serialVersionUID = 1250166508152483573L; 7 | 8 | private final String token; 9 | 10 | public JwtAuthenticationResponse(String token) { 11 | this.token = token; 12 | } 13 | 14 | public String getToken() { 15 | return this.token; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/util/user/JwtTokenUtil.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.auth.util.user; 2 | 3 | import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; 4 | import com.github.wxiaoqi.security.auth.common.util.jwt.JWTHelper; 5 | import com.github.wxiaoqi.security.auth.configuration.KeyConfiguration; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.beans.factory.annotation.Value; 8 | import org.springframework.data.redis.core.RedisTemplate; 9 | import org.springframework.stereotype.Component; 10 | 11 | /** 12 | * Created by ace on 2017/9/10. 13 | */ 14 | @Component 15 | public class JwtTokenUtil { 16 | 17 | @Value("${jwt.expire}") 18 | private int expire; 19 | @Autowired 20 | private KeyConfiguration keyConfiguration; 21 | 22 | @Autowired 23 | private RedisTemplate redisTemplate; 24 | 25 | public String generateToken(IJWTInfo jwtInfo) throws Exception { 26 | return JWTHelper.generateToken(jwtInfo, keyConfiguration.getUserPriKey(),expire); 27 | } 28 | 29 | public IJWTInfo getInfoFromToken(String token) throws Exception { 30 | return JWTHelper.getInfoFromToken(token, keyConfiguration.getUserPubKey()); 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /ace-auth/ace-auth-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ace-auth 4 | cloud: 5 | nacos: 6 | config: 7 | server-addr: 127.0.0.1:8848 8 | file-extension: yaml 9 | profiles: 10 | active: dev -------------------------------------------------------------------------------- /ace-auth/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | ace-security 7 | com.github.wxiaoqi 8 | 2.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ace-auth 13 | pom 14 | 15 | 16 | ace-auth-client 17 | ace-auth-server 18 | ace-auth-common 19 | 20 | 21 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/constant/CommonConstants.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.constant; 2 | 3 | /** 4 | * Created by ace on 2017/8/29. 5 | */ 6 | public class CommonConstants { 7 | public final static String RESOURCE_TYPE_MENU = "menu"; 8 | public final static String RESOURCE_TYPE_BTN = "button"; 9 | // 用户token异常 10 | public static final Integer EX_USER_INVALID_CODE = 40101; 11 | public static final Integer EX_USER_PASS_INVALID_CODE = 40001; 12 | // 客户端token异常 13 | public static final Integer EX_CLIENT_INVALID_CODE = 40301; 14 | public static final Integer EX_CLIENT_FORBIDDEN_CODE = 40331; 15 | public static final Integer EX_OTHER_CODE = 500; 16 | public static final String CONTEXT_KEY_USER_ID = "currentUserId"; 17 | public static final String CONTEXT_KEY_USERNAME = "currentUserName"; 18 | public static final String CONTEXT_KEY_USER_NAME = "currentUser"; 19 | public static final String CONTEXT_KEY_USER_TOKEN = "currentUserToken"; 20 | public static final String JWT_KEY_USER_ID = "userId"; 21 | public static final String JWT_KEY_NAME = "name"; 22 | } 23 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/constant/RestCodeConstants.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.constant; 2 | 3 | /** 4 | * Created by ace on 2017/8/23. 5 | */ 6 | public class RestCodeConstants { 7 | 8 | public static final int TOKEN_ERROR_CODE = 40101; 9 | public static final int TOKEN_FORBIDDEN_CODE = 40301; 10 | } 11 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/constant/UserConstant.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.constant; 2 | 3 | /** 4 | * ${DESCRIPTION} 5 | * 6 | * @author wanghaobin 7 | * @create 2017-06-14 8:36 8 | */ 9 | public class UserConstant { 10 | public static int PW_ENCORDER_SALT = 12; 11 | } 12 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/BaseException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.exception; 2 | 3 | /** 4 | * Created by ace on 2017/9/8. 5 | */ 6 | public class BaseException extends RuntimeException { 7 | private int status = 200; 8 | 9 | public int getStatus() { 10 | return status; 11 | } 12 | 13 | public void setStatus(int status) { 14 | this.status = status; 15 | } 16 | 17 | public BaseException() { 18 | } 19 | 20 | public BaseException(String message,int status) { 21 | super(message); 22 | this.status = status; 23 | } 24 | 25 | public BaseException(String message) { 26 | super(message); 27 | } 28 | 29 | public BaseException(String message, Throwable cause) { 30 | super(message, cause); 31 | } 32 | 33 | public BaseException(Throwable cause) { 34 | super(cause); 35 | } 36 | 37 | public BaseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { 38 | super(message, cause, enableSuppression, writableStackTrace); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/auth/ClientForbiddenException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.exception.auth; 2 | 3 | 4 | import com.github.wxiaoqi.security.common.constant.CommonConstants; 5 | import com.github.wxiaoqi.security.common.exception.BaseException; 6 | 7 | /** 8 | * Created by ace on 2017/9/12. 9 | */ 10 | public class ClientForbiddenException extends BaseException { 11 | public ClientForbiddenException(String message) { 12 | super(message, CommonConstants.EX_CLIENT_FORBIDDEN_CODE); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/auth/ClientInvalidException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.exception.auth; 2 | 3 | 4 | import com.github.wxiaoqi.security.common.constant.CommonConstants; 5 | import com.github.wxiaoqi.security.common.exception.BaseException; 6 | 7 | /** 8 | * Created by ace on 2017/9/10. 9 | */ 10 | public class ClientInvalidException extends BaseException { 11 | public ClientInvalidException(String message) { 12 | super(message, CommonConstants.EX_CLIENT_INVALID_CODE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/auth/ClientTokenException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.exception.auth; 2 | 3 | 4 | import com.github.wxiaoqi.security.common.constant.CommonConstants; 5 | import com.github.wxiaoqi.security.common.exception.BaseException; 6 | 7 | /** 8 | * Created by ace on 2017/9/10. 9 | */ 10 | public class ClientTokenException extends BaseException { 11 | public ClientTokenException(String message) { 12 | super(message, CommonConstants.EX_CLIENT_INVALID_CODE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/auth/UserInvalidException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.exception.auth; 2 | 3 | 4 | import com.github.wxiaoqi.security.common.constant.CommonConstants; 5 | import com.github.wxiaoqi.security.common.exception.BaseException; 6 | 7 | /** 8 | * Created by ace on 2017/9/8. 9 | */ 10 | public class UserInvalidException extends BaseException { 11 | public UserInvalidException(String message) { 12 | super(message, CommonConstants.EX_USER_PASS_INVALID_CODE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/auth/UserTokenException.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.exception.auth; 2 | 3 | 4 | import com.github.wxiaoqi.security.common.constant.CommonConstants; 5 | import com.github.wxiaoqi.security.common.exception.BaseException; 6 | 7 | /** 8 | * Created by ace on 2017/9/8. 9 | */ 10 | public class UserTokenException extends BaseException { 11 | public UserTokenException(String message) { 12 | super(message, CommonConstants.EX_USER_INVALID_CODE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/msg/BaseResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.msg; 2 | 3 | /** 4 | * Created by ace on 2017/8/23. 5 | */ 6 | public class BaseResponse { 7 | private int status = 200; 8 | private String message; 9 | 10 | public BaseResponse(int status, String message) { 11 | this.status = status; 12 | this.message = message; 13 | } 14 | 15 | public BaseResponse() { 16 | } 17 | 18 | public String getMessage() { 19 | return message; 20 | } 21 | 22 | public void setMessage(String message) { 23 | this.message = message; 24 | } 25 | 26 | public int getStatus() { 27 | return status; 28 | } 29 | 30 | public void setStatus(int status) { 31 | this.status = status; 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/msg/ListRestResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.msg; 2 | 3 | /** 4 | * ${DESCRIPTION} 5 | * 6 | * @author wanghaobin 7 | * @create 2017-06-09 7:32 8 | */ 9 | public class ListRestResponse { 10 | String msg; 11 | T result; 12 | int count; 13 | 14 | 15 | 16 | public String getMsg() { 17 | return msg; 18 | } 19 | 20 | public void setMsg(String msg) { 21 | this.msg = msg; 22 | } 23 | 24 | public T getResult() { 25 | return result; 26 | } 27 | 28 | public void setResult(T result) { 29 | this.result = result; 30 | } 31 | 32 | public int getCount() { 33 | return count; 34 | } 35 | 36 | public void setCount(int count) { 37 | this.count = count; 38 | } 39 | 40 | public ListRestResponse count(int count) { 41 | this.setCount(count); 42 | return this; 43 | } 44 | 45 | public ListRestResponse count(Long count) { 46 | this.setCount(count.intValue()); 47 | return this; 48 | } 49 | 50 | public ListRestResponse msg(String msg) { 51 | this.setMsg(msg); 52 | return this; 53 | } 54 | 55 | public ListRestResponse result(T result) { 56 | this.setResult(result); 57 | return this; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/msg/ObjectRestResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.msg; 2 | 3 | /** 4 | * Created by Ace on 2017/6/11. 5 | */ 6 | public class ObjectRestResponse extends BaseResponse { 7 | 8 | T data; 9 | boolean rel; 10 | 11 | public boolean isRel() { 12 | return rel; 13 | } 14 | 15 | public void setRel(boolean rel) { 16 | this.rel = rel; 17 | } 18 | 19 | 20 | public ObjectRestResponse rel(boolean rel) { 21 | this.setRel(rel); 22 | return this; 23 | } 24 | 25 | 26 | public ObjectRestResponse data(T data) { 27 | this.setData(data); 28 | return this; 29 | } 30 | public T getData() { 31 | return data; 32 | } 33 | 34 | public void setData(T data) { 35 | this.data = data; 36 | } 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/msg/auth/TokenErrorResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.msg.auth; 2 | 3 | import com.github.wxiaoqi.security.common.constant.RestCodeConstants; 4 | import com.github.wxiaoqi.security.common.msg.BaseResponse; 5 | 6 | /** 7 | * Created by ace on 2017/8/23. 8 | */ 9 | public class TokenErrorResponse extends BaseResponse { 10 | public TokenErrorResponse(String message) { 11 | super(RestCodeConstants.TOKEN_ERROR_CODE, message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/msg/auth/TokenForbiddenResponse.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.msg.auth; 2 | 3 | import com.github.wxiaoqi.security.common.constant.RestCodeConstants; 4 | import com.github.wxiaoqi.security.common.msg.BaseResponse; 5 | 6 | /** 7 | * Created by ace on 2017/8/25. 8 | */ 9 | public class TokenForbiddenResponse extends BaseResponse { 10 | public TokenForbiddenResponse(String message) { 11 | super(RestCodeConstants.TOKEN_FORBIDDEN_CODE, message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/util/ClientUtil.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.util; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | 5 | public class ClientUtil { 6 | /** 7 | * 获取客户端真实ip 8 | * @param request 9 | * @return 10 | */ 11 | public static String getClientIp(HttpServletRequest request){ 12 | String ip = request.getHeader("x-forwarded-for"); 13 | if (ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)) { 14 | ip = request.getHeader("Proxy-Client-IP"); 15 | } 16 | if (ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)) { 17 | ip = request.getHeader("WL-Proxy-Client-IP"); 18 | } 19 | if (ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)) { 20 | ip = request.getRemoteAddr(); 21 | } 22 | return ip; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/util/Query.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.util; 2 | 3 | 4 | import java.util.LinkedHashMap; 5 | import java.util.Map; 6 | 7 | /** 8 | * 查询参数 9 | */ 10 | public class Query extends LinkedHashMap { 11 | private static final long serialVersionUID = 1L; 12 | //当前页码 13 | private int page = 1; 14 | //每页条数 15 | private int limit = 10; 16 | 17 | public Query(Map params){ 18 | this.putAll(params); 19 | //分页参数 20 | if(params.get("page")!=null) { 21 | this.page = Integer.parseInt(params.get("page").toString()); 22 | } 23 | if(params.get("limit")!=null) { 24 | this.limit = Integer.parseInt(params.get("limit").toString()); 25 | } 26 | this.remove("page"); 27 | this.remove("limit"); 28 | } 29 | 30 | 31 | public int getPage() { 32 | return page; 33 | } 34 | 35 | public void setPage(int page) { 36 | this.page = page; 37 | } 38 | 39 | public int getLimit() { 40 | return limit; 41 | } 42 | 43 | public void setLimit(int limit) { 44 | this.limit = limit; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/util/StringHelper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.util; 2 | 3 | /** 4 | * Created by ace on 2017/9/10. 5 | */ 6 | public class StringHelper { 7 | public static String getObjectValue(Object obj){ 8 | return obj==null?"":obj.toString(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/util/UUIDUtils.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.util; 2 | 3 | import java.util.UUID; 4 | 5 | /** 6 | * Created by ace on 2017/9/27. 7 | */ 8 | public class UUIDUtils { 9 | public static String[] chars = new String[] { "a", "b", "c", "d", "e", "f", 10 | "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", 11 | "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", 12 | "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", 13 | "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", 14 | "W", "X", "Y", "Z" }; 15 | 16 | 17 | public static String generateShortUuid() { 18 | StringBuffer shortBuffer = new StringBuffer(); 19 | String uuid = UUID.randomUUID().toString().replace("-", ""); 20 | for (int i = 0; i < 8; i++) { 21 | String str = uuid.substring(i * 4, i * 4 + 4); 22 | int x = Integer.parseInt(str, 16); 23 | shortBuffer.append(chars[x % 0x3E]); 24 | } 25 | return shortBuffer.toString(); 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ace-common/src/main/java/com/github/wxiaoqi/security/common/vo/TreeNode.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.common.vo; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by Ace on 2017/6/12. 8 | */ 9 | public class TreeNode { 10 | protected int id; 11 | protected int parentId; 12 | 13 | public List getChildren() { 14 | return children; 15 | } 16 | 17 | public void setChildren(List children) { 18 | this.children = children; 19 | } 20 | 21 | List children = new ArrayList(); 22 | 23 | public int getId() { 24 | return id; 25 | } 26 | 27 | public void setId(int id) { 28 | this.id = id; 29 | } 30 | 31 | public int getParentId() { 32 | return parentId; 33 | } 34 | 35 | public void setParentId(int parentId) { 36 | this.parentId = parentId; 37 | } 38 | 39 | public void add(TreeNode node){ 40 | children.add(node); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ace-control/ace-monitor/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM livingobjects/jre8 2 | VOLUME /tmp 3 | ADD ace-monitor.jar app.jar 4 | RUN bash -c 'touch /app.jar' 5 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 6 | -------------------------------------------------------------------------------- /ace-control/ace-monitor/src/main/java/com/github/wxiaoqi/security/monitor/MonitorBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.monitor; 2 | 3 | import de.codecentric.boot.admin.server.config.EnableAdminServer; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 7 | 8 | /** 9 | * ${DESCRIPTION} 10 | * 11 | * @author wanghaobin 12 | * @create 2017-05-25 12:44 13 | */ 14 | @SpringBootApplication 15 | @EnableAdminServer 16 | @EnableDiscoveryClient 17 | public class MonitorBootstrap { 18 | public static void main(String[] args) { 19 | SpringApplication.run(MonitorBootstrap.class, args); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ace-control/ace-monitor/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ace-monitor 4 | cloud: 5 | nacos: 6 | discovery: 7 | server-addr: 127.0.0.1:8848 8 | 9 | server: 10 | port: 8764 #启动端口 11 | # 12 | #eureka: 13 | # instance: 14 | # preferIpAddress: true 15 | # statusPageUrlPath: /actuator/info 16 | # healthCheckUrlPath: /actuator/health 17 | # client: 18 | # registerWithEureka: true 19 | # fetchRegistry: true 20 | # serviceUrl: 21 | # defaultZone: http://localhost:8761/eureka/ 22 | 23 | 24 | -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos-server-0.8.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-control/ace-nacos/nacos-server-0.8.0.zip -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/NOTICE: -------------------------------------------------------------------------------- 1 | Nacos 2 | Copyright 2018-2019 The Apache Software Foundation 3 | 4 | This product includes software developed at 5 | The Alibaba MiddleWare Group. 6 | 7 | ------ 8 | This product has a bundle netty: 9 | The Spring oot Project 10 | ================= 11 | 12 | Please visit the Netty web site for more information: 13 | 14 | * http://netty.io/ 15 | 16 | Copyright 2014 The Netty Project 17 | 18 | The Netty Project licenses this file to you under the Apache License, 19 | version 2.0 (the "License"); you may not use this file except in compliance 20 | with the License. You may obtain a copy of the License at: 21 | 22 | http://www.apache.org/licenses/LICENSE-2.0 23 | 24 | Unless required by applicable law or agreed to in writing, software 25 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 26 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 27 | License for the specific language governing permissions and limitations 28 | under the License. 29 | 30 | Also, please refer to each LICENSE..txt file, which is located in 31 | the 'license' directory of the distribution file, for the license terms of the 32 | components that this product depends on. 33 | 34 | ------ 35 | This product has a bundle commons-lang, which includes software from the Spring Framework, 36 | under the Apache License 2.0 (see: StringUtils.containsWhitespace()) -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/bin/shutdown.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem Copyright 1999-2018 Alibaba Group Holding Ltd. 3 | rem Licensed under the Apache License, Version 2.0 (the "License"); 4 | rem you may not use this file except in compliance with the License. 5 | rem You may obtain a copy of the License at 6 | rem 7 | rem http://www.apache.org/licenses/LICENSE-2.0 8 | rem 9 | rem Unless required by applicable law or agreed to in writing, software 10 | rem distributed under the License is distributed on an "AS IS" BASIS, 11 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | rem See the License for the specific language governing permissions and 13 | rem limitations under the License. 14 | if not exist "%JAVA_HOME%\bin\jps.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! & EXIT /B 1 15 | 16 | setlocal 17 | 18 | set "PATH=%JAVA_HOME%\bin;%PATH%" 19 | 20 | echo killing nacos server 21 | 22 | for /f "tokens=1" %%i in ('jps -m ^| find "nacos"') do ( taskkill /F /PID %%i ) 23 | 24 | echo Done! 25 | -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/bin/shutdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Copyright 1999-2018 Alibaba Group Holding Ltd. 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | pid=`ps ax | grep -i 'nacos' |grep java | grep -v grep | awk '{print $1}'` 17 | if [ -z "$pid" ] ; then 18 | echo "No nacosServer running." 19 | exit -1; 20 | fi 21 | 22 | echo "The nacosServer(${pid}) is running..." 23 | 24 | kill ${pid} 25 | 26 | echo "Send shutdown request to nacosServer(${pid}) OK" -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/conf/application.properties: -------------------------------------------------------------------------------- 1 | # spring 2 | 3 | server.contextPath=/nacos 4 | server.servlet.contextPath=/nacos 5 | server.port=8848 6 | 7 | nacos.cmdb.dumpTaskInterval=3600 8 | nacos.cmdb.eventTaskInterval=10 9 | nacos.cmdb.labelTaskInterval=300 10 | nacos.cmdb.loadDataAtStart=false 11 | 12 | 13 | # metrics for prometheus 14 | #management.endpoints.web.exposure.include=* 15 | 16 | # metrics for elastic search 17 | management.metrics.export.elastic.enabled=false 18 | #management.metrics.export.elastic.host=http://localhost:9200 19 | 20 | # metrics for influx 21 | management.metrics.export.influx.enabled=false 22 | #management.metrics.export.influx.db=springboot 23 | #management.metrics.export.influx.uri=http://localhost:8086 24 | #management.metrics.export.influx.auto-create-db=true 25 | #management.metrics.export.influx.consistency=one 26 | #management.metrics.export.influx.compressed=true 27 | 28 | server.tomcat.accesslog.enabled=true 29 | server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D 30 | # default current work dir 31 | server.tomcat.basedir= 32 | 33 | ## spring security config 34 | ### turn off security 35 | #spring.security.enabled=false 36 | #management.security=false 37 | #security.basic.enabled=false 38 | #nacos.security.ignore.urls=/** 39 | 40 | nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/** 41 | -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/conf/application.properties.example: -------------------------------------------------------------------------------- 1 | # spring 2 | 3 | server.contextPath=/nacos 4 | server.servlet.contextPath=/nacos 5 | server.port=8848 6 | 7 | 8 | db.num=2 9 | db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true 10 | db.url.1=jdbc:mysql://11.163.152.9:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true 11 | db.user=nacos_devtest 12 | db.password=nacos -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/conf/cluster.conf.example: -------------------------------------------------------------------------------- 1 | #it is ip 2 | #example 3 | 10.10.109.214 4 | 11.16.128.34 5 | 11.16.128.36 -------------------------------------------------------------------------------- /ace-control/ace-nacos/nacos/plugins/cmdb/nacos-cmdb-plugin-example.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-control/ace-nacos/nacos/plugins/cmdb/nacos-cmdb-plugin-example.jar -------------------------------------------------------------------------------- /ace-control/ace-sentinel/sentinel-dashboard.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-control/ace-sentinel/sentinel-dashboard.jar -------------------------------------------------------------------------------- /ace-control/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | ace-security 7 | com.github.wxiaoqi 8 | 2.0-SNAPSHOT 9 | 10 | 4.0.0 11 | pom 12 | ace-control 13 | 14 | ace-monitor 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ace-gate/src/main/java/com/github/wxiaoqi/security/gate/GatewayServerBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.gate; 2 | 3 | import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient; 4 | import com.github.wxiaoqi.security.gate.utils.DBLog; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 8 | import org.springframework.cloud.openfeign.EnableFeignClients; 9 | 10 | /** 11 | * @author ace 12 | * @create 2018/3/12. 13 | */ 14 | @SpringBootApplication 15 | @EnableDiscoveryClient 16 | @EnableAceAuthClient 17 | @EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign","com.github.wxiaoqi.security.gate.feign"}) 18 | public class GatewayServerBootstrap { 19 | public static void main(String[] args) { 20 | DBLog.getInstance().start(); 21 | SpringApplication.run(GatewayServerBootstrap.class, args); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ace-gate/src/main/java/com/github/wxiaoqi/security/gate/config/GatewayConfig.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.gate.config; 2 | 3 | import com.github.wxiaoqi.security.gate.handler.RequestBodyRoutePredicateFactory; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | /** 8 | * @author ace 9 | * @create 2019/1/27. 10 | */ 11 | @Configuration 12 | public class GatewayConfig { 13 | @Bean 14 | RequestBodyRoutePredicateFactory requestBodyRoutePredicateFactory() { 15 | return new RequestBodyRoutePredicateFactory(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ace-gate/src/main/java/com/github/wxiaoqi/security/gate/fallback/UserServiceFallback.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.gate.fallback; 2 | 3 | import com.github.wxiaoqi.security.gate.feign.IUserService; 4 | import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.web.bind.annotation.PathVariable; 8 | 9 | import java.util.List; 10 | 11 | /** 12 | * @author ace 13 | * @create 2018/3/7. 14 | */ 15 | @Service 16 | @Slf4j 17 | public class UserServiceFallback implements IUserService { 18 | @Override 19 | public List getPermissionByUsername(@PathVariable("username") String username) { 20 | log.error("调用{}异常{}","getPermissionByUsername",username); 21 | return null; 22 | } 23 | 24 | @Override 25 | public List getAllPermissionInfo() { 26 | log.error("调用{}异常","getPermissionByUsername"); 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ace-gate/src/main/java/com/github/wxiaoqi/security/gate/feign/ILogService.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.gate.feign; 2 | 3 | import com.github.wxiaoqi.security.api.vo.log.LogInfo; 4 | import org.springframework.cloud.openfeign.FeignClient; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RequestMethod; 7 | 8 | /** 9 | * ${DESCRIPTION} 10 | * 11 | * @author wanghaobin 12 | * @create 2017-07-01 15:16 13 | */ 14 | @FeignClient("ace-admin") 15 | public interface ILogService { 16 | @RequestMapping(value="/api/log/save",method = RequestMethod.POST) 17 | void saveLog(LogInfo info); 18 | } 19 | -------------------------------------------------------------------------------- /ace-gate/src/main/java/com/github/wxiaoqi/security/gate/feign/IUserService.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.gate.feign; 2 | 3 | import com.github.wxiaoqi.security.gate.fallback.UserServiceFallback; 4 | import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo; 5 | import org.springframework.cloud.openfeign.FeignClient; 6 | import org.springframework.web.bind.annotation.PathVariable; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RequestMethod; 9 | 10 | import java.util.List; 11 | 12 | 13 | /** 14 | * ${DESCRIPTION} 15 | * 16 | * @author wanghaobin 17 | * @create 2017-06-21 8:11 18 | */ 19 | @FeignClient(value = "ace-admin",fallback = UserServiceFallback.class) 20 | public interface IUserService { 21 | @RequestMapping(value="/api/user/un/{username}/permissions",method = RequestMethod.GET) 22 | public List getPermissionByUsername(@PathVariable("username") String username); 23 | @RequestMapping(value="/api/permissions",method = RequestMethod.GET) 24 | List getAllPermissionInfo(); 25 | } 26 | -------------------------------------------------------------------------------- /ace-gate/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ace-gateway 4 | cloud: 5 | nacos: 6 | config: 7 | server-addr: 127.0.0.1:8848 8 | file-extension: yaml 9 | profiles: 10 | active: dev 11 | main: 12 | allow-bean-definition-overriding: true -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM livingobjects/jre8 2 | VOLUME /tmp 3 | ADD ace-admin.jar app.jar 4 | ADD wait-for-it.sh /wait-for-it.sh 5 | RUN bash -c 'touch /app.jar' 6 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 7 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin; 2 | 3 | import com.ace.cache.EnableAceCache; 4 | import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient; 5 | import com.spring4all.swagger.EnableSwagger2Doc; 6 | import org.mybatis.spring.annotation.MapperScan; 7 | import org.springframework.boot.autoconfigure.SpringBootApplication; 8 | import org.springframework.boot.builder.SpringApplicationBuilder; 9 | import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; 10 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 11 | import org.springframework.cloud.openfeign.EnableFeignClients; 12 | import org.springframework.scheduling.annotation.EnableScheduling; 13 | import org.springframework.transaction.annotation.EnableTransactionManagement; 14 | 15 | /** 16 | * ${DESCRIPTION} 17 | * 18 | * @author wanghaobin 19 | * @create 2017-05-25 12:44 20 | */ 21 | @EnableDiscoveryClient 22 | @EnableCircuitBreaker 23 | @SpringBootApplication 24 | @EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign"}) 25 | @EnableScheduling 26 | @EnableAceAuthClient 27 | @EnableAceCache 28 | @EnableTransactionManagement 29 | @MapperScan("com.github.wxiaoqi.security.admin.mapper") 30 | @EnableSwagger2Doc 31 | public class AdminBootstrap { 32 | public static void main(String[] args) { 33 | new SpringApplicationBuilder(AdminBootstrap.class).run(args); } 34 | } 35 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GateLogBiz.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.biz; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.GateLog; 4 | import com.github.wxiaoqi.security.admin.mapper.GateLogMapper; 5 | import com.github.wxiaoqi.security.common.biz.BaseBiz; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | /** 10 | * ${DESCRIPTION} 11 | * 12 | * @author wanghaobin 13 | * @create 2017-07-01 14:36 14 | */ 15 | @Service 16 | @Transactional(rollbackFor = Exception.class) 17 | public class GateLogBiz extends BaseBiz { 18 | 19 | @Override 20 | public void insert(GateLog entity) { 21 | mapper.insert(entity); 22 | } 23 | 24 | @Override 25 | public void insertSelective(GateLog entity) { 26 | mapper.insertSelective(entity); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupTypeBiz.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.biz; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | import com.github.wxiaoqi.security.admin.entity.GroupType; 6 | import com.github.wxiaoqi.security.admin.mapper.GroupTypeMapper; 7 | import com.github.wxiaoqi.security.common.biz.BaseBiz; 8 | import org.springframework.transaction.annotation.Transactional; 9 | 10 | /** 11 | * ${DESCRIPTION} 12 | * 13 | * @author wanghaobin 14 | * @create 2017-06-12 8:48 15 | */ 16 | @Service 17 | @Transactional(rollbackFor = Exception.class) 18 | public class GroupTypeBiz extends BaseBiz { 19 | } 20 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ResourceAuthorityBiz.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.biz; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.ResourceAuthority; 4 | import com.github.wxiaoqi.security.admin.mapper.ResourceAuthorityMapper; 5 | import com.github.wxiaoqi.security.common.biz.BaseBiz; 6 | import org.springframework.stereotype.Service; 7 | import org.springframework.transaction.annotation.Transactional; 8 | 9 | /** 10 | * Created by Ace on 2017/6/19. 11 | */ 12 | @Service 13 | @Transactional(rollbackFor = Exception.class) 14 | public class ResourceAuthorityBiz extends BaseBiz { 15 | } 16 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/constant/AdminCommonConstant.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.constant; 2 | 3 | /** 4 | * ${DESCRIPTION} 5 | * 6 | * @author wanghaobin 7 | * @create 2017-06-17 14:41 8 | */ 9 | public class AdminCommonConstant { 10 | public final static int ROOT = -1; 11 | public final static int DEFAULT_GROUP_TYPE = 0; 12 | /** 13 | * 权限关联类型 14 | */ 15 | public final static String AUTHORITY_TYPE_GROUP = "group"; 16 | /** 17 | * 权限资源类型 18 | */ 19 | public final static String RESOURCE_TYPE_MENU = "menu"; 20 | public final static String RESOURCE_TYPE_BTN = "button"; 21 | 22 | public final static String RESOURCE_REQUEST_METHOD_GET = "GET"; 23 | public final static String RESOURCE_REQUEST_METHOD_PUT = "PUT"; 24 | public final static String RESOURCE_REQUEST_METHOD_DELETE = "DELETE"; 25 | public final static String RESOURCE_REQUEST_METHOD_POST = "POST"; 26 | 27 | public final static String RESOURCE_ACTION_VISIT = "访问"; 28 | 29 | public final static String BOOLEAN_NUMBER_FALSE = "0"; 30 | 31 | public final static String BOOLEAN_NUMBER_TRUE = "1"; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ElementMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.Element; 4 | import org.apache.ibatis.annotations.Param; 5 | import tk.mybatis.mapper.common.Mapper; 6 | 7 | import java.util.List; 8 | 9 | public interface ElementMapper extends Mapper { 10 | public List selectAuthorityElementByUserId(@Param("userId")String userId); 11 | public List selectAuthorityMenuElementByUserId(@Param("userId")String userId,@Param("menuId")String menuId); 12 | public List selectAuthorityElementByClientId(@Param("clientId")String clientId); 13 | public List selectAllElementPermissions(); 14 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GateLogMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.GateLog; 4 | import tk.mybatis.mapper.common.Mapper; 5 | 6 | public interface GateLogMapper extends Mapper { 7 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.Group; 4 | import org.apache.ibatis.annotations.Param; 5 | import tk.mybatis.mapper.common.Mapper; 6 | 7 | public interface GroupMapper extends Mapper { 8 | public void deleteGroupMembersById (@Param("groupId") int groupId); 9 | public void deleteGroupLeadersById (@Param("groupId") int groupId); 10 | public void insertGroupMembersById (@Param("groupId") int groupId,@Param("userId") int userId); 11 | public void insertGroupLeadersById (@Param("groupId") int groupId,@Param("userId") int userId); 12 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupTypeMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.GroupType; 4 | import tk.mybatis.mapper.common.Mapper; 5 | 6 | public interface GroupTypeMapper extends Mapper { 7 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MenuMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.Menu; 4 | import org.apache.ibatis.annotations.Param; 5 | import tk.mybatis.mapper.common.Mapper; 6 | 7 | import java.util.List; 8 | 9 | public interface MenuMapper extends Mapper { 10 | public List selectMenuByAuthorityId(@Param("authorityId") String authorityId,@Param("authorityType") String authorityType); 11 | 12 | /** 13 | * 根据用户和组的权限关系查找用户可访问菜单 14 | * @param userId 15 | * @return 16 | */ 17 | public List selectAuthorityMenuByUserId (@Param("userId") int userId); 18 | 19 | /** 20 | * 根据用户和组的权限关系查找用户可访问的系统 21 | * @param userId 22 | * @return 23 | */ 24 | public List selectAuthoritySystemByUserId (@Param("userId") int userId); 25 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ResourceAuthorityMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.ResourceAuthority; 4 | import org.apache.ibatis.annotations.Param; 5 | import tk.mybatis.mapper.common.Mapper; 6 | 7 | public interface ResourceAuthorityMapper extends Mapper { 8 | public void deleteByAuthorityIdAndResourceType(@Param("authorityId")String authorityId,@Param("resourceType") String resourceType); 9 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.mapper; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.User; 4 | import org.apache.ibatis.annotations.Param; 5 | import tk.mybatis.mapper.common.Mapper; 6 | 7 | import java.util.List; 8 | 9 | public interface UserMapper extends Mapper { 10 | public List selectMemberByGroupId(@Param("groupId") int groupId); 11 | public List selectLeaderByGroupId(@Param("groupId") int groupId); 12 | } -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/LogRest.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.rpc; 2 | 3 | import com.github.wxiaoqi.security.admin.biz.GateLogBiz; 4 | import com.github.wxiaoqi.security.admin.entity.GateLog; 5 | import com.github.wxiaoqi.security.api.vo.log.LogInfo; 6 | import org.springframework.beans.BeanUtils; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.web.bind.annotation.*; 9 | 10 | import java.util.Date; 11 | 12 | /** 13 | * ${DESCRIPTION} 14 | * 15 | * @author wanghaobin 16 | * @create 2017-07-01 14:39 17 | */ 18 | @RequestMapping("api") 19 | @RestController 20 | public class LogRest { 21 | @Autowired 22 | private GateLogBiz gateLogBiz; 23 | @RequestMapping(value="/log/save",method = RequestMethod.POST) 24 | public @ResponseBody void saveLog(@RequestBody LogInfo info){ 25 | GateLog log = new GateLog(); 26 | BeanUtils.copyProperties(info,log); 27 | log.setCrtTime(new Date(info.getCrtTime())); 28 | gateLogBiz.insertSelective(log); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupTree.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.vo; 2 | 3 | import com.github.wxiaoqi.security.common.vo.TreeNode; 4 | 5 | /** 6 | * ${DESCRIPTION} 7 | * 8 | * @author wanghaobin 9 | * @create 2017-06-17 15:21 10 | */ 11 | public class GroupTree extends TreeNode { 12 | String label; 13 | 14 | public String getLabel() { 15 | return label; 16 | } 17 | 18 | public void setLabel(String label) { 19 | this.label = label; 20 | } 21 | 22 | String name; 23 | 24 | public String getName() { 25 | return name; 26 | } 27 | 28 | public void setName(String name) { 29 | this.name = name; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupUsers.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.admin.vo; 2 | 3 | import com.github.wxiaoqi.security.admin.entity.User; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by Ace on 2017/6/18. 9 | */ 10 | public class GroupUsers { 11 | List members ; 12 | List leaders; 13 | 14 | public GroupUsers() { 15 | } 16 | 17 | public GroupUsers(List members, List leaders) { 18 | this.members = members; 19 | this.leaders = leaders; 20 | } 21 | 22 | public List getMembers() { 23 | return members; 24 | } 25 | 26 | public void setMembers(List members) { 27 | this.members = members; 28 | } 29 | 30 | public List getLeaders() { 31 | return leaders; 32 | } 33 | 34 | public void setLeaders(List leaders) { 35 | this.leaders = leaders; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: ace-admin 4 | cloud: 5 | nacos: 6 | config: 7 | server-addr: 127.0.0.1:8848 8 | file-extension: yaml 9 | profiles: 10 | active: dev -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ace-modules/ace-admin/src/main/resources/mapper/GateLogMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/GeneratorBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.generator; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | /** 8 | * @author Mr.AG 9 | * @email 463540703@qq.com 10 | * @date 2017年08月25日 11 | */ 12 | @SpringBootApplication 13 | @MapperScan("com.github.wxiaoqi.security.generator.mapper") 14 | public class GeneratorBootstrap { 15 | public static void main(String[] args) { 16 | SpringApplication.run(GeneratorBootstrap.class, args); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/config/WebConfig.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.generator.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 5 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 6 | 7 | @Configuration 8 | public class WebConfig extends WebMvcConfigurerAdapter { 9 | @Override 10 | public void addResourceHandlers(ResourceHandlerRegistry registry) { 11 | registry.addResourceHandler("/admin/**").addResourceLocations( 12 | "classpath:/static/*"); 13 | super.addResourceHandlers(registry); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/controller/HomeController.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.generator.controller; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.bind.annotation.RequestMethod; 6 | 7 | import java.util.Map; 8 | 9 | /** 10 | * ${DESCRIPTION} 11 | * 12 | * @author wanghaobin 13 | * @create 2017-06-06 13:34 14 | */ 15 | @Controller 16 | @RequestMapping("") 17 | public class HomeController{ 18 | 19 | 20 | @RequestMapping(value = "index",method = RequestMethod.GET) 21 | public String index(Map map){ 22 | return "index"; 23 | } 24 | 25 | @RequestMapping(value = "about",method = RequestMethod.GET) 26 | public String about(){ 27 | return "about"; 28 | } 29 | @RequestMapping(value = "generator",method = RequestMethod.GET) 30 | public String user(){ 31 | return "generator/list"; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/mapper/GeneratorMapper.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.generator.mapper; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | /** 7 | * 代码生成器 8 | * 9 | * @author Mr.AG 10 | * @email 463540703@qq.com 11 | * @date 2017年08月25日 12 | */ 13 | public interface GeneratorMapper { 14 | 15 | List> queryList(Map map); 16 | 17 | int queryTotal(Map map); 18 | 19 | Map queryTable(String tableName); 20 | 21 | List> queryColumns(String tableName); 22 | } 23 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/DateUtils.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.generator.utils; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Date; 5 | 6 | public class DateUtils { 7 | /** 时间格式(yyyy-MM-dd) */ 8 | public final static String DATE_PATTERN = "yyyy-MM-dd"; 9 | /** 时间格式(yyyy-MM-dd HH:mm:ss) */ 10 | public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; 11 | 12 | public static String format(Date date) { 13 | return format(date, DATE_PATTERN); 14 | } 15 | 16 | public static String format(Date date, String pattern) { 17 | if(date != null){ 18 | SimpleDateFormat df = new SimpleDateFormat(pattern); 19 | return df.format(date); 20 | } 21 | return null; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | # Tomcat 2 | server: 3 | tomcat: 4 | max-threads: 10 5 | min-spare-threads: 10 6 | port: 7777 7 | 8 | # mysql 9 | spring: 10 | datasource: 11 | type: com.alibaba.druid.pool.DruidDataSource 12 | driverClassName: com.mysql.jdbc.Driver 13 | url: jdbc:mysql://localhost:3306/ag_auth?useUnicode=true&characterEncoding=UTF-8 14 | username: root 15 | password: 123456 16 | jackson: 17 | time-zone: GMT+8 18 | date-format: yyyy-MM-dd HH:mm:ss 19 | thymeleaf: 20 | mode: LEGACYHTML5 21 | cache: false 22 | 23 | # Mybatis配置 24 | mybatis: 25 | mapperLocations: classpath:mapper/**/*.xml 26 | 27 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/generator.properties: -------------------------------------------------------------------------------- 1 | #代码生成器,配置信息 2 | 3 | #包名 4 | package=com.github.wxiaoqi.security.auth 5 | #作者 6 | author=Mr.AG 7 | #Email 8 | email=463540703@qq.com 9 | #表前错误的Unicode字符串! 10 | tablePrefix=gate_ 11 | #前端模块前缀 12 | mainModule=auth 13 | 14 | #类型转换,配置信息 15 | tinyint=Integer 16 | smallint=Integer 17 | mediumint=Integer 18 | int=Integer 19 | integer=Integer 20 | bigint=Long 21 | float=Float 22 | double=Double 23 | decimal=BigDecimal 24 | bit=Boolean 25 | 26 | char=String 27 | varchar=String 28 | tinytext=String 29 | text=String 30 | mediumtext=String 31 | longtext=String 32 | 33 | date=Date 34 | datetime=Date 35 | timestamp=Date -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/README.md: -------------------------------------------------------------------------------- 1 | ## AG-Admin2.0代码生成器 2 | 3 | AG-Admin2.0版本的通用代码生成器!加速业务开发! 4 | 5 | ## 关于代码 6 | [后端github项目地址](https://github.com/wxiaoqi/ace-admin) 7 | 8 | [后端gitchina项目地址](http://git.oschina.net/geek_qi/ace-security) 9 | 10 | 11 | 12 | ## 技术交流 13 | 交流群:169824183 14 | 15 | ## 关于作者 16 | [简书](http://www.jianshu.com/) 17 | 18 | [CSDN](http://blog.csdn.net/u011282930) 19 | 20 | [码云](http://git.oschina.net/geek_qi) 21 | 22 | [github](https://github.com/wxiaoqi) -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/ag.css: -------------------------------------------------------------------------------- 1 | .select2-container{ 2 | z-index: 999999999; 3 | } -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/main.css: -------------------------------------------------------------------------------- 1 | .admin-main{ 2 | margin: 15px; 3 | } 4 | .admin-main .layui-field-title .layui-field-box{ 5 | padding: 10px 30px; 6 | } 7 | .admin-main .layui-field-title .layui-field-box p{ 8 | padding: 5px 0; 9 | } 10 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:30px;line-height:30px;border-bottom:1px solid #ddd}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #ddd;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.css: -------------------------------------------------------------------------------- 1 | /* iCheck plugin flat skin, black 2 | ----------------------------------- */ 3 | .icheckbox_flat, 4 | .iradio_flat { 5 | display: inline-block; 6 | *display: inline; 7 | vertical-align: middle; 8 | margin: 0; 9 | padding: 0; 10 | width: 20px; 11 | height: 20px; 12 | background: url(flat.png) no-repeat; 13 | border: none; 14 | cursor: pointer; 15 | } 16 | 17 | .icheckbox_flat { 18 | background-position: 0 0; 19 | } 20 | .icheckbox_flat.checked { 21 | background-position: -22px 0; 22 | } 23 | .icheckbox_flat.disabled { 24 | background-position: -44px 0; 25 | cursor: default; 26 | } 27 | .icheckbox_flat.checked.disabled { 28 | background-position: -66px 0; 29 | } 30 | 31 | .iradio_flat { 32 | background-position: -88px 0; 33 | } 34 | .iradio_flat.checked { 35 | background-position: -110px 0; 36 | } 37 | .iradio_flat.disabled { 38 | background-position: -132px 0; 39 | cursor: default; 40 | } 41 | .iradio_flat.checked.disabled { 42 | background-position: -154px 0; 43 | } 44 | 45 | /* HiDPI support */ 46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 47 | .icheckbox_flat, 48 | .iradio_flat { 49 | background-image: url(flat@2x.png); 50 | -webkit-background-size: 176px 22px; 51 | background-size: 176px 22px; 52 | } 53 | } -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow@2x.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/laydate/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/laydate/icon.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/css/table.css: -------------------------------------------------------------------------------- 1 | /*table*/ 2 | .site-table tbody tr td {text-align: center;} 3 | .site-table tbody tr td .layui-btn+.layui-btn{margin-left: 0px;} 4 | .admin-table-page {position: fixed;z-index: 19940201;bottom: 0;width: 100%;background-color: #eee;border-bottom: 1px solid #ddd;left: 0px;} 5 | .admin-table-page .page{padding-left:20px;} 6 | .admin-table-page .page .layui-laypage {margin: 6px 0 0 0;} 7 | .table-hover tbody tr:hover{ background-color: #EEEEEE; } 8 | 9 | .admin-table{ 10 | 11 | } 12 | .admin-table .layui-form-checkbox{ 13 | margin-top: 0; 14 | height: 20px; 15 | line-height: 20px; 16 | } 17 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/datas/laytpl_laypage_data.json: -------------------------------------------------------------------------------- 1 | { 2 | "rel": true, 3 | "msg": "获取成功", 4 | "list": [ 5 | { 6 | "id":1, 7 | "name": "张三", 8 | "age":21, 9 | "createtime": "2017-01-10 10:42:36" 10 | }, 11 | { 12 | "id":2, 13 | "name": "李四", 14 | "age":31, 15 | "createtime": "2017-01-10 10:42:36" 16 | },{ 17 | "id":3, 18 | "name": "王五", 19 | "age":23, 20 | "createtime": "2017-01-10 10:42:36" 21 | },{ 22 | "id":4, 23 | "name": "赵六", 24 | "age":18, 25 | "createtime": "2017-01-10 10:42:36" 26 | } 27 | ], 28 | "count": 57 29 | } -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/datas/nav.js: -------------------------------------------------------------------------------- 1 | var navs = [{ 2 | "title": "基础配置管理", 3 | "icon": "fa-area-chart", 4 | "href": "", 5 | "spread": true, 6 | "children": [{ 7 | "title": "用户管理", 8 | "icon": "fa-user", 9 | "href": "user" 10 | }, { 11 | "title": "菜单管理", 12 | "icon": "fa-list", 13 | "href": "menu" 14 | }, { 15 | "title": "用户组管理", 16 | "icon": "fa-users", 17 | "href": "http://localhost:8765/user" 18 | }, { 19 | "title": "数据字典", 20 | "icon": "fa-book", 21 | "href": "http://localhost:8764/hystrix" 22 | }] 23 | }, { 24 | "title": "系统监控", 25 | "icon": "fa-area-chart", 26 | "href": "", 27 | "spread": false, 28 | "children": [{ 29 | "title": "Spring-Boot监控", 30 | "icon": "fa-line-chart", 31 | "href": "http://localhost:8764" 32 | }, { 33 | "title": "Hystrix监控", 34 | "icon": "fa-bar-chart", 35 | "href": "http://localhost:8764/hystrix" 36 | }] 37 | }]; -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/datas/nav.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "代码生成器", 4 | "icon": "", 5 | "href": "/generator" 6 | } 7 | ] -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/datas/nav_content.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "资讯管理", 4 | "icon": "ဂ", 5 | "spread": true, 6 | "children": [ 7 | { 8 | "title": "资讯列表", 9 | "icon": "fa-check-square-o", 10 | "href": "information.html" 11 | },{ 12 | "title": "资讯分类", 13 | "icon": "fa-check-square-o", 14 | "href": "category.html" 15 | } 16 | ] 17 | } 18 | ] -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/datas/nav_member.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "会员管理", 4 | "icon": "ဂ", 5 | "spread": true, 6 | "children": [ 7 | { 8 | "title": "会员列表", 9 | "icon": "fa-check-square-o", 10 | "href": "https:www.baidu.com" 11 | },{ 12 | "title": "会员等级", 13 | "icon": "fa-check-square-o", 14 | "href": "level.html" 15 | } 16 | ] 17 | } 18 | ] -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/0.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/1.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/10.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/11.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/12.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/13.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/14.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/15.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/16.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/17.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/18.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/19.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/2.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/22.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/24.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/25.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/26.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/27.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/29.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/3.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/33.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/34.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/35.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/36.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/37.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/38.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/39.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/4.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/41.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/43.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/44.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/45.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/46.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/48.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/49.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/5.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/50.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/52.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/53.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/54.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/55.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/56.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/59.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/6.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/61.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/62.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/63.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/65.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/66.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/67.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/69.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/7.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/70.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/face/71.gif -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/font/iconfont.woff -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/images/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/images/0.jpg -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/images/logo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/images/logo-1.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/images/xx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/images/xx.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/js/area.js: -------------------------------------------------------------------------------- 1 | /** area.js By Beginner Emain:zheng_jinfan@126.com HomePage:http://www.zhengjinfan.cn */ 2 | layui.define(['jquery'], function(exports) { 3 | "use strict"; 4 | var $ = layui.jquery; 5 | 6 | //设置ajax可跨域 7 | $.support.cors = true; 8 | var Area = function() { 9 | this.config = { 10 | url: undefined, //远程数据的url 11 | type: 'json', //数据类型 json or jsonp 12 | provinceFilter: 'province', //省的过滤器名称 13 | cityFilter: 'city', //市的过滤器名称 14 | districtFilter: 'district', // 区域的过滤器名称 15 | provinceName: 'province', //省名称 16 | cityName: 'city', //市名称 17 | districtName: 'district', //区域名称 18 | }; 19 | this.v = '1.0'; 20 | }; 21 | Area.prototype.set = function(options) { 22 | var that = this; 23 | $.extend(true, that.config, options); 24 | return that; 25 | }; 26 | Area.prototype.init = function(options) { 27 | var that = this; 28 | 29 | 30 | 31 | return that; 32 | }; 33 | 34 | var area = new Area(); 35 | 36 | exports('area', function(options) { 37 | return area.set(options); 38 | }); 39 | }); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/js/common.js: -------------------------------------------------------------------------------- 1 | /** common.js By Beginner Emain:zheng_jinfan@126.com HomePage:http://www.zhengjinfan.cn */ 2 | layui.define(['layer'], function(exports) { 3 | "use strict"; 4 | 5 | var $ = layui.jquery, 6 | layer = layui.layer; 7 | 8 | var common = { 9 | /** 10 | * 抛出一个异常错误信息 11 | * @param {String} msg 12 | */ 13 | throwError: function(msg) { 14 | throw new Error(msg); 15 | return; 16 | }, 17 | /** 18 | * 弹出一个错误提示 19 | * @param {String} msg 20 | */ 21 | msgError: function(msg) { 22 | layer.msg(msg, { 23 | icon: 5 24 | }); 25 | return; 26 | } 27 | }; 28 | 29 | exports('common', common); 30 | }); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/lay/modules/code.js: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/lay/modules/util.js: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(l){"use strict";var o=layui.jquery,i={fixbar:function(l){l=l||{},l.bgcolor=l.bgcolor?"background-color:"+l.bgcolor:"";var i,a,c="layui-fixbar-top",t=[l.bar1===!0?"":l.bar1,l.bar2===!0?"":l.bar2,""],r=o(['
    ',l.bar1?'
  • '+t[0]+"
  • ":"",l.bar2?'
  • '+t[1]+"
  • ":"",'
  • '+t[2]+"
  • ","
"].join("")),e=r.find("."+c),s=function(){var i=o(document).scrollTop();i>=(l.showHeight||200)?a||(e.show(),a=1):a&&(e.hide(),a=0)};o(".layui-fixbar")[0]||("object"==typeof l.css&&r.css(l.css),o("body").append(r),s(),r.find("li").on("click",function(){var i=o(this),a=i.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),l.click&&l.click.call(this,a)}),o(document).on("scroll",function(){i&&clearTimeout(i),i=setTimeout(function(){s()},100)}))}};l("util",i)}); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/HyperDown/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, SegmentFault 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * bootstrap-table - v1.11.1 - 2017-02-22 3 | * https://github.com/wenzhixin/bootstrap-table 4 | * Copyright (c) 2017 zhixin wen 5 | * Licensed MIT License 6 | */ 7 | !function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"},formatExport:function(){return"导出数据"},formatClearFilters:function(){return"清空过滤"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/css/bootstrap-treeview.min.css: -------------------------------------------------------------------------------- 1 | .treeview .list-group-item { 2 | cursor: pointer 3 | } 4 | 5 | .treeview span.indent { 6 | margin-left: 10px; 7 | margin-right: 10px 8 | } 9 | 10 | .treeview span.icon { 11 | width: 12px; 12 | margin-right: 5px 13 | } 14 | 15 | .treeview .node-disabled { 16 | color: silver; 17 | cursor: not-allowed 18 | } -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/css/jquery.treegrid.css: -------------------------------------------------------------------------------- 1 | .treegrid-indent {width:16px; height: 16px; display: inline-block; position: relative;} 2 | 3 | .treegrid-expander {width:16px; height: 16px; display: inline-block; position: relative; cursor: pointer;} 4 | 5 | .treegrid-expander-expanded{background-image: url(../img/collapse.png); } 6 | .treegrid-expander-collapsed{background-image: url(../img/expand.png);} 7 | .treegrid-selected{background: #f5f5f5 !important;} 8 | .treegrid-table{border:0 !important;margin-bottom:0} 9 | .treegrid-table tbody {display:block;height:auto;overflow-y:auto;} 10 | .treegrid-table thead, .treegrid-table tbody tr {display:table;width:100%;table-layout:fixed;} 11 | .treegrid-thead th{line-height:40px;border: 0 !important;background:#fff !important;border-radius: 4px;border-left:1px solid #e7eaec !important;border-bottom:2px solid #e7eaec !important;text-align: center;} 12 | .treegrid-thead tr :first-child{border-left:0 !important} 13 | .treegrid-tbody td{border: 0 !important;border-left:1px solid #e7eaec !important;border-bottom:1px solid #e7eaec !important;} 14 | .treegrid-tbody tr :first-child{border-left:0 !important} 15 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/collapse.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/expand.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/file.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwn132/cloud-platform/2aae951fffb02340bacbbc264eaa60e026ddb9c6/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/folder.png -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.bootstrap3.js: -------------------------------------------------------------------------------- 1 | $.extend($.fn.treegrid.defaults, { 2 | expanderExpandedClass: 'glyphicon glyphicon-chevron-down', 3 | expanderCollapsedClass: 'glyphicon glyphicon-chevron-right' 4 | }); 5 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ar.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="الرجاء حذف "+t+" عناصر";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="الرجاء إضافة "+t+" عناصر";return n},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){var t="تستطيع إختيار "+e.maximum+" بنود فقط";return t},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/az.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/cs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/el.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ja.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/km.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ms.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/uk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/template/biz.java.vm: -------------------------------------------------------------------------------- 1 | package ${package}.biz; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | import ${package}.entity.${className}; 6 | import ${package}.mapper.${className}Mapper; 7 | import com.github.wxiaoqi.security.common.biz.BaseBiz; 8 | 9 | /** 10 | * ${comments} 11 | * 12 | * @author ${author} 13 | * @email ${email} 14 | * @date ${datetime} 15 | */ 16 | @Service 17 | public class ${className}Biz extends BaseBiz<${className}Mapper,${className}> { 18 | } -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/template/controller.java.vm: -------------------------------------------------------------------------------- 1 | package ${package}.rest; 2 | 3 | import com.github.wxiaoqi.security.common.rest.BaseController; 4 | import ${package}.biz.${className}Biz; 5 | import ${package}.entity.${className}; 6 | import org.springframework.stereotype.Controller; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | 9 | @Controller 10 | @RequestMapping("${secondModuleName}") 11 | public class ${className}Controller extends BaseController<${className}Biz,${className}> { 12 | 13 | } -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/template/entity.java.vm: -------------------------------------------------------------------------------- 1 | package ${package}.entity; 2 | 3 | import java.io.Serializable; 4 | import java.util.Date; 5 | import javax.persistence.*; 6 | #if(${hasBigDecimal}) 7 | import java.math.BigDecimal; 8 | #end 9 | 10 | 11 | /** 12 | * ${comments} 13 | * 14 | * @author ${author} 15 | * @email ${email} 16 | * @date ${datetime} 17 | */ 18 | @Table(name = "${tableName}") 19 | public class ${className} implements Serializable { 20 | private static final long serialVersionUID = 1L; 21 | 22 | #foreach ($column in $columns) 23 | #if($column.columnName == $pk.columnName) 24 | //$column.comments 25 | @Id 26 | private $column.attrType $column.attrname; 27 | #else 28 | //$column.comments 29 | @Column(name = "$column.columnName") 30 | private $column.attrType $column.attrname; 31 | #end 32 | 33 | #end 34 | 35 | #foreach ($column in $columns) 36 | /** 37 | * 设置:${column.comments} 38 | */ 39 | public void set${column.attrName}($column.attrType $column.attrname) { 40 | this.$column.attrname = $column.attrname; 41 | } 42 | /** 43 | * 获取:${column.comments} 44 | */ 45 | public $column.attrType get${column.attrName}() { 46 | return $column.attrname; 47 | } 48 | #end 49 | } 50 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/template/index.js.vm: -------------------------------------------------------------------------------- 1 | import fetch from 'utils/fetch'; 2 | 3 | export function page(query) { 4 | return fetch({ 5 | url: '/api/${moduleName}/${secondModuleName}/page', 6 | method: 'get', 7 | params: query 8 | }); 9 | } 10 | 11 | export function addObj(obj) { 12 | return fetch({ 13 | url: '/api/${moduleName}/${secondModuleName}', 14 | method: 'post', 15 | data: obj 16 | }); 17 | } 18 | 19 | export function getObj(id) { 20 | return fetch({ 21 | url: '/api/${moduleName}/${secondModuleName}/' + id, 22 | method: 'get' 23 | }) 24 | } 25 | 26 | export function delObj(id) { 27 | return fetch({ 28 | url: '/api/${moduleName}/${secondModuleName}/' + id, 29 | method: 'delete' 30 | }) 31 | } 32 | 33 | export function putObj(id, obj) { 34 | return fetch({ 35 | url: '/api/${moduleName}/${secondModuleName}/' + id, 36 | method: 'put', 37 | data: obj 38 | }) 39 | } 40 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/template/mapper.java.vm: -------------------------------------------------------------------------------- 1 | package ${package}.mapper; 2 | 3 | import ${package}.entity.${className}; 4 | import tk.mybatis.mapper.common.Mapper; 5 | 6 | /** 7 | * ${comments} 8 | * 9 | * @author ${author} 10 | * @email ${email} 11 | * @date ${datetime} 12 | */ 13 | @Mapper 14 | public interface ${className}Mapper extends Mapper<${className}> { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/template/mapper.xml.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | #foreach($column in $columns) 9 | 10 | #end 11 | 12 | 13 | -------------------------------------------------------------------------------- /ace-modules/ace-generator/src/main/resources/templates/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 简介 6 | 7 | 8 | 9 |
10 | 11 |
12 | 13 | 14 | 15 | 23 | -------------------------------------------------------------------------------- /ace-modules/ace-interface/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | ace-modules 7 | com.github.wxiaoqi 8 | 2.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ace-interface 13 | 14 | 15 | 16 | org.springframework.cloud 17 | spring-cloud-starter-openfeign 18 | 19 | 20 | -------------------------------------------------------------------------------- /ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/constants/OSSConstant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * * Copyright (C) 2018 Wanghaobin<463540703@qq.com> 4 | * 5 | * * AG-Enterprise 企业版源码 6 | * * 郑重声明: 7 | * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。 8 | * * 老A将追究授予人和传播人的法律责任! 9 | * 10 | * * This program is free software; you can redistribute it and/or modify 11 | * * it under the terms of the GNU General Public License as published by 12 | * * the Free Software Foundation; either version 2 of the License, or 13 | * * (at your option) any later version. 14 | * 15 | * * This program is distributed in the hope that it will be useful, 16 | * * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * * GNU General Public License for more details. 19 | * 20 | * * You should have received a copy of the GNU General Public License along 21 | * * with this program; if not, write to the Free Software Foundation, Inc., 22 | * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 23 | * 24 | */ 25 | 26 | package com.github.wxiaoqi.oss.constants; 27 | 28 | /** 29 | * @author ace 30 | * @create 2018/3/4. 31 | */ 32 | public class OSSConstant { 33 | //类型 1:七牛 2:阿里云 3:腾讯云 34 | public final static Integer TYPE_QINIU = 1; 35 | public final static Integer TYPE_ALIYUN = 2; 36 | public final static Integer TYPE_QCLOUD = 3; 37 | } 38 | -------------------------------------------------------------------------------- /ace-modules/ace-tool/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: 3 | # tk.mybatis: DEBUG 4 | com.github.wxiaoqi: DEBUG 5 | server: 6 | port: 9992 7 | 8 | spring: 9 | profiles: 10 | active: dev 11 | application: 12 | name: ace-tool 13 | rabbitmq: 14 | host: ${RABBIT_MQ_HOST:localhost} 15 | port: ${RABBIT_MQ_PORT:5672} 16 | username: guest 17 | password: guest 18 | sleuth: 19 | sampler: 20 | percentage: 1 21 | 22 | search: 23 | lucence: 24 | path: ./lucence/file 25 | 26 | # 具体看类:CloudStorageConfig 27 | oss: 28 | type: 1 # 类型 1:七牛 2:阿里云 3:腾讯云 29 | qiniuDomain: http://xxxxx.com 30 | qiniuPrefix: oss 31 | qiniuAccessKey: xxxxxx 32 | qiniuSecretKey: xxxxx 33 | qiniuBucketName: xxxBucket -------------------------------------------------------------------------------- /ace-modules/ace-tool/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | eureka: 2 | instance: 3 | statusPageUrlPath: /info 4 | healthCheckUrlPath: /health 5 | # docker 部署开启 6 | client: 7 | serviceUrl: 8 | # defaultZone: http://localhost:8761/eureka/ 9 | # docker 部署开启 10 | defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/ 11 | 12 | 13 | 14 | 15 | ribbon: 16 | eureka: 17 | enabled: true 18 | ReadTimeout: 120000 19 | ConnectTimeout: 120000 20 | MaxAutoRetries: 0 21 | MaxAutoRetriesNextServer: 0 22 | OkToRetryOnAllOperations: false 23 | NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule 24 | 25 | 26 | hystrix: 27 | threadpool: 28 | default: 29 | coreSize: 1000 30 | maxQueueSize: 1000 31 | queueSizeRejectionThreshold: 500 32 | command: 33 | default: 34 | execution: 35 | isolation: 36 | thread: 37 | timeoutInMilliseconds: 50000 38 | -------------------------------------------------------------------------------- /ace-modules/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | ace-security 7 | com.github.wxiaoqi 8 | 2.0-SNAPSHOT 9 | 10 | 4.0.0 11 | pom 12 | ace-modules 13 | 14 | 15 | ace-admin 16 | ace-interface 17 | ace-generator 18 | ace-tool 19 | 20 | -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-client-demo/readme.md: -------------------------------------------------------------------------------- 1 | Python服务端示例: 2 | https://gitee.com/superjery/tornado_boilerplate 3 | 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 需以下根文件: 6 | __init__.py 7 | application.py 8 | server.py 9 | urls.py 10 | 11 | 需以下根文件夹: 12 | handlers 13 | model 14 | static 15 | templates 16 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 17 | 18 | Python 安装 3.5 19 | tornado 安装 4.5 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 | 22 | 运行python server.py即可启动Web 23 | 24 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 | 26 | 两种访问接口方式: 27 | http://localhost:5689/ace-sidecar-client-demo/test/test 28 | http://localhost:5689/ace-sidecar-client-demo/message/123 29 | -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/PythonServerBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.sidecarclient; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 7 | import org.springframework.cloud.openfeign.EnableFeignClients; 8 | 9 | /** 10 | * ${DESCRIPTION} 11 | * 12 | * @author yangyongjie 13 | * @create 2017-10-22 20:30 14 | */ 15 | @SpringBootApplication 16 | @EnableEurekaClient 17 | @EnableDiscoveryClient 18 | @EnableFeignClients 19 | public class PythonServerBootstrap { 20 | public static void main(String[] args) { 21 | SpringApplication.run(PythonServerBootstrap.class, args); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/client/PythonFeignClient.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.sidecarclient.client; 2 | 3 | import com.github.wxiaoqi.security.sidecarclient.entity.Message; 4 | import org.springframework.cloud.openfeign.FeignClient; 5 | import org.springframework.web.bind.annotation.RequestMapping; 6 | import org.springframework.web.bind.annotation.RequestParam; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * ${DESCRIPTION} 12 | * 13 | * @author yangyongjie 14 | * @create 2017-10-22 20:30 15 | */ 16 | @FeignClient(name = "ace-sidecar-server") 17 | public interface PythonFeignClient { 18 | //parse param like /message?id=12 19 | @RequestMapping("/message/{id}") 20 | List getMsg(@RequestParam("id") Long id); 21 | //parse url like /test 22 | @RequestMapping("/test") 23 | String getTest(); 24 | } -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/entity/Message.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.sidecarclient.entity; 2 | 3 | /** 4 | * ${DESCRIPTION} 5 | * 6 | * @author yangyongjie 7 | * @create 2017-10-22 20:30 8 | */ 9 | public class Message { 10 | private Long id; 11 | private String msg; 12 | 13 | public Long getId() { 14 | return id; 15 | } 16 | 17 | public void setId(Long id) { 18 | this.id = id; 19 | } 20 | 21 | public String getMsg() { 22 | return msg; 23 | } 24 | 25 | public void setMsg(String msg) { 26 | this.msg = msg; 27 | } 28 | } -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/rest/PythonController.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.sidecarclient.rest; 2 | 3 | import com.github.wxiaoqi.security.sidecarclient.entity.Message; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.web.bind.annotation.RestController; 6 | import com.github.wxiaoqi.security.sidecarclient.client.PythonFeignClient; 7 | import org.springframework.web.bind.annotation.*; 8 | import java.util.List; 9 | 10 | /** 11 | * ${DESCRIPTION} 12 | * 13 | * @author yangyongjie 14 | * @create 2017-10-22 20:30 15 | */ 16 | @RestController 17 | @RequestMapping("test") 18 | public class PythonController { 19 | @Autowired 20 | private PythonFeignClient pythonFeignClient; 21 | 22 | @RequestMapping(value = "/test", method = RequestMethod.GET) 23 | public String getTest() { 24 | return pythonFeignClient.getTest(); 25 | } 26 | 27 | @RequestMapping(value = "/message/{id}", method = RequestMethod.GET) 28 | public List getMsg(@PathVariable Long id) { 29 | return pythonFeignClient.getMsg(id); 30 | } 31 | } -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-client-demo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 5689 #启动端口 3 | 4 | spring: 5 | application: 6 | name: ace-sidecar-client-demo 7 | 8 | eureka: 9 | instance: 10 | statusPageUrlPath: /info 11 | healthCheckUrlPath: /health 12 | client: 13 | serviceUrl: 14 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-server/readme.md: -------------------------------------------------------------------------------- 1 | 使用Sidecar代理远程Python服务,端口为Python的Web端口 2 | 当然,换成Node的Web端口,即可代理Node的远程服务 3 | 远程服务需要实现一个接口,返回 4 | 5 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 | Node: 7 | app.get('/health', (req, res) => { 8 | res.json({ 9 | status: 'UP' 10 | }) 11 | }) 12 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | Python: 14 | class HealthHandler(tornado.web.RequestHandler): 15 | def get(self): 16 | self.set_header("content-type", "application/json") 17 | self.render('health') 18 | 19 | health: 20 | {"status":"UP"} 21 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22 | 23 | 切记,通过此代理访问不到远程Python提供的服务, 24 | 需通过ace-sidecar-client-demo封装后才可访问到。 -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-server/src/main/java/com/github/wxiaoqi/security/sidecar/SidercarBootstrap.java: -------------------------------------------------------------------------------- 1 | package com.github.wxiaoqi.security.sidecar; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.sidecar.EnableSidecar; 6 | 7 | /** 8 | * Created by ace on 2017/7/29. 9 | */ 10 | @EnableSidecar 11 | @SpringBootApplication 12 | public class SidercarBootstrap { 13 | public static void main(String[] args) { 14 | SpringApplication.run(SidercarBootstrap.class, args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ace-sidecar/ace-sidecar-server/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 5688 #启动端口 3 | 4 | spring: 5 | application: 6 | name: ace-sidecar-server 7 | cloud: 8 | consul: 9 | enabled: true 10 | host: 127.0.0.1 11 | port: 8500 12 | discovery: 13 | healthCheckPath: /actuator/health 14 | healthCheckInterval: 5s 15 | instanceId: ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}} 16 | register: true 17 | enabled: true 18 | sidecar: 19 | port: 5680 #python接口 20 | health: 21 | uri: http://localhost:${sidecar.port}/health 22 | 23 | eureka: 24 | instance: 25 | statusPageUrlPath: /info 26 | healthCheckUrlPath: /health 27 | client: 28 | serviceUrl: 29 | defaultZone: http://localhost:8761/eureka/ -------------------------------------------------------------------------------- /ace-sidecar/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | ace-security 7 | com.github.wxiaoqi 8 | 2.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ace-sidecar 13 | pom 14 | 15 | 16 | ace-sidecar-server 17 | ace-sidecar-client-demo 18 | 19 | 20 | --------------------------------------------------------------------------------