From baa61b0151584f18591e81fc2866714ef0bf0483 Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Sat, 14 May 2016 21:34:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=99=BB=E9=99=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 - doc/db/tables_xxl_log.sql | 12 - .../xxl/job/controller/IndexController.java | 52 +- .../xxl/job/controller/JobLogController.java | 2 + .../annotation/PermessionLimit.java | 22 + .../interceptor/PermissionInterceptor.java | 54 ++ .../com/xxl/job/core/util/CookieUtil.java | 92 +++ .../src/main/resources/springmvc-context.xml | 10 +- xxl-job-admin/src/main/webapp/500.html | 30 +- .../template/common/common.exception.ftl | 2 +- .../WEB-INF/template/common/common.macro.ftl | 10 +- .../main/webapp/WEB-INF/template/login.ftl | 48 ++ .../src/main/webapp/static/js/common.1.js | 3 +- .../src/main/webapp/static/js/login.1.js | 22 +- .../main/webapp/static/plugins/iCheck/all.css | 61 ++ .../static/plugins/iCheck/flat/_all.css | 560 +++++++++++++ .../static/plugins/iCheck/flat/aero.css | 56 ++ .../static/plugins/iCheck/flat/aero.png | Bin 0 -> 1520 bytes .../static/plugins/iCheck/flat/aero@2x.png | Bin 0 -> 3218 bytes .../static/plugins/iCheck/flat/blue.css | 56 ++ .../static/plugins/iCheck/flat/blue.png | Bin 0 -> 1518 bytes .../static/plugins/iCheck/flat/blue@2x.png | Bin 0 -> 3217 bytes .../static/plugins/iCheck/flat/flat.css | 56 ++ .../static/plugins/iCheck/flat/flat.png | Bin 0 -> 1515 bytes .../static/plugins/iCheck/flat/flat@2x.png | Bin 0 -> 3217 bytes .../static/plugins/iCheck/flat/green.css | 56 ++ .../static/plugins/iCheck/flat/green.png | Bin 0 -> 1444 bytes .../static/plugins/iCheck/flat/green@2x.png | Bin 0 -> 3117 bytes .../static/plugins/iCheck/flat/grey.css | 56 ++ .../static/plugins/iCheck/flat/grey.png | Bin 0 -> 1516 bytes .../static/plugins/iCheck/flat/grey@2x.png | Bin 0 -> 3217 bytes .../static/plugins/iCheck/flat/orange.css | 56 ++ .../static/plugins/iCheck/flat/orange.png | Bin 0 -> 1518 bytes .../static/plugins/iCheck/flat/orange@2x.png | Bin 0 -> 3275 bytes .../static/plugins/iCheck/flat/pink.css | 56 ++ .../static/plugins/iCheck/flat/pink.png | Bin 0 -> 1522 bytes .../static/plugins/iCheck/flat/pink@2x.png | Bin 0 -> 3218 bytes .../static/plugins/iCheck/flat/purple.css | 56 ++ .../static/plugins/iCheck/flat/purple.png | Bin 0 -> 1519 bytes .../static/plugins/iCheck/flat/purple@2x.png | Bin 0 -> 3218 bytes .../webapp/static/plugins/iCheck/flat/red.css | 56 ++ .../webapp/static/plugins/iCheck/flat/red.png | Bin 0 -> 1516 bytes .../static/plugins/iCheck/flat/red@2x.png | Bin 0 -> 3276 bytes .../static/plugins/iCheck/flat/yellow.css | 56 ++ .../static/plugins/iCheck/flat/yellow.png | Bin 0 -> 1516 bytes .../static/plugins/iCheck/flat/yellow@2x.png | Bin 0 -> 3216 bytes .../plugins/iCheck/futurico/futurico.css | 56 ++ .../plugins/iCheck/futurico/futurico.png | Bin 0 -> 1734 bytes .../plugins/iCheck/futurico/futurico@2x.png | Bin 0 -> 3446 bytes .../webapp/static/plugins/iCheck/icheck.js | 478 +++++++++++ .../static/plugins/iCheck/icheck.min.js | 10 + .../static/plugins/iCheck/line/_all.css | 740 ++++++++++++++++++ .../static/plugins/iCheck/line/aero.css | 74 ++ .../static/plugins/iCheck/line/blue.css | 74 ++ .../static/plugins/iCheck/line/green.css | 74 ++ .../static/plugins/iCheck/line/grey.css | 74 ++ .../static/plugins/iCheck/line/line.css | 74 ++ .../static/plugins/iCheck/line/line.png | Bin 0 -> 588 bytes .../static/plugins/iCheck/line/line@2x.png | Bin 0 -> 1073 bytes .../static/plugins/iCheck/line/orange.css | 74 ++ .../static/plugins/iCheck/line/pink.css | 74 ++ .../static/plugins/iCheck/line/purple.css | 74 ++ .../webapp/static/plugins/iCheck/line/red.css | 74 ++ .../static/plugins/iCheck/line/yellow.css | 74 ++ .../static/plugins/iCheck/minimal/_all.css | 557 +++++++++++++ .../static/plugins/iCheck/minimal/aero.css | 62 ++ .../static/plugins/iCheck/minimal/aero.png | Bin 0 -> 1151 bytes .../static/plugins/iCheck/minimal/aero@2x.png | Bin 0 -> 1409 bytes .../static/plugins/iCheck/minimal/blue.css | 62 ++ .../static/plugins/iCheck/minimal/blue.png | Bin 0 -> 1132 bytes .../static/plugins/iCheck/minimal/blue@2x.png | Bin 0 -> 1410 bytes .../static/plugins/iCheck/minimal/green.css | 62 ++ .../static/plugins/iCheck/minimal/green.png | Bin 0 -> 1143 bytes .../plugins/iCheck/minimal/green@2x.png | Bin 0 -> 1408 bytes .../static/plugins/iCheck/minimal/grey.css | 62 ++ .../static/plugins/iCheck/minimal/grey.png | Bin 0 -> 1142 bytes .../static/plugins/iCheck/minimal/grey@2x.png | Bin 0 -> 1407 bytes .../static/plugins/iCheck/minimal/minimal.css | 62 ++ .../static/plugins/iCheck/minimal/minimal.png | Bin 0 -> 1114 bytes .../plugins/iCheck/minimal/minimal@2x.png | Bin 0 -> 1410 bytes .../static/plugins/iCheck/minimal/orange.css | 62 ++ .../static/plugins/iCheck/minimal/orange.png | Bin 0 -> 1139 bytes .../plugins/iCheck/minimal/orange@2x.png | Bin 0 -> 1407 bytes .../static/plugins/iCheck/minimal/pink.css | 62 ++ .../static/plugins/iCheck/minimal/pink.png | Bin 0 -> 1150 bytes .../static/plugins/iCheck/minimal/pink@2x.png | Bin 0 -> 1409 bytes .../static/plugins/iCheck/minimal/purple.css | 62 ++ .../static/plugins/iCheck/minimal/purple.png | Bin 0 -> 1132 bytes .../plugins/iCheck/minimal/purple@2x.png | Bin 0 -> 1409 bytes .../static/plugins/iCheck/minimal/red.css | 62 ++ .../static/plugins/iCheck/minimal/red.png | Bin 0 -> 1130 bytes .../static/plugins/iCheck/minimal/red@2x.png | Bin 0 -> 1410 bytes .../static/plugins/iCheck/minimal/yellow.css | 62 ++ .../static/plugins/iCheck/minimal/yellow.png | Bin 0 -> 1135 bytes .../plugins/iCheck/minimal/yellow@2x.png | Bin 0 -> 1406 bytes .../static/plugins/iCheck/polaris/polaris.css | 62 ++ .../static/plugins/iCheck/polaris/polaris.png | Bin 0 -> 6401 bytes .../plugins/iCheck/polaris/polaris@2x.png | Bin 0 -> 16760 bytes .../static/plugins/iCheck/square/_all.css | 620 +++++++++++++++ .../static/plugins/iCheck/square/aero.css | 62 ++ .../static/plugins/iCheck/square/aero.png | Bin 0 -> 2167 bytes .../static/plugins/iCheck/square/aero@2x.png | Bin 0 -> 4455 bytes .../static/plugins/iCheck/square/blue.css | 62 ++ .../static/plugins/iCheck/square/blue.png | Bin 0 -> 2185 bytes .../static/plugins/iCheck/square/blue@2x.png | Bin 0 -> 4485 bytes .../static/plugins/iCheck/square/green.css | 62 ++ .../static/plugins/iCheck/square/green.png | Bin 0 -> 2193 bytes .../static/plugins/iCheck/square/green@2x.png | Bin 0 -> 4498 bytes .../static/plugins/iCheck/square/grey.css | 62 ++ .../static/plugins/iCheck/square/grey.png | Bin 0 -> 2186 bytes .../static/plugins/iCheck/square/grey@2x.png | Bin 0 -> 4483 bytes .../static/plugins/iCheck/square/orange.css | 62 ++ .../static/plugins/iCheck/square/orange.png | Bin 0 -> 2181 bytes .../plugins/iCheck/square/orange@2x.png | Bin 0 -> 4474 bytes .../static/plugins/iCheck/square/pink.css | 62 ++ .../static/plugins/iCheck/square/pink.png | Bin 0 -> 2189 bytes .../static/plugins/iCheck/square/pink@2x.png | Bin 0 -> 4479 bytes .../static/plugins/iCheck/square/purple.css | 62 ++ .../static/plugins/iCheck/square/purple.png | Bin 0 -> 2188 bytes .../plugins/iCheck/square/purple@2x.png | Bin 0 -> 4501 bytes .../static/plugins/iCheck/square/red.css | 62 ++ .../static/plugins/iCheck/square/red.png | Bin 0 -> 2190 bytes .../static/plugins/iCheck/square/red@2x.png | Bin 0 -> 4490 bytes .../static/plugins/iCheck/square/square.css | 62 ++ .../static/plugins/iCheck/square/square.png | Bin 0 -> 2175 bytes .../plugins/iCheck/square/square@2x.png | Bin 0 -> 4478 bytes .../static/plugins/iCheck/square/yellow.css | 62 ++ .../static/plugins/iCheck/square/yellow.png | Bin 0 -> 2131 bytes .../plugins/iCheck/square/yellow@2x.png | Bin 0 -> 4385 bytes 129 files changed, 6006 insertions(+), 42 deletions(-) create mode 100644 xxl-job-admin/src/main/java/com/xxl/job/controller/annotation/PermessionLimit.java create mode 100644 xxl-job-admin/src/main/java/com/xxl/job/controller/interceptor/PermissionInterceptor.java create mode 100644 xxl-job-admin/src/main/java/com/xxl/job/core/util/CookieUtil.java create mode 100644 xxl-job-admin/src/main/webapp/WEB-INF/template/login.ftl create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/all.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/_all.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/aero.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/aero.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/aero@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/blue.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/blue.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/blue@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/flat.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/flat.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/flat@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/green.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/green.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/green@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/grey.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/grey.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/grey@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/orange.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/orange.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/orange@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/pink.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/pink.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/pink@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/purple.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/purple.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/purple@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/red.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/red.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/red@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/yellow.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/yellow.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/flat/yellow@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/futurico/futurico.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/futurico/futurico.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/futurico/futurico@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/icheck.js create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/icheck.min.js create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/_all.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/aero.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/blue.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/green.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/grey.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/line.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/line.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/line@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/orange.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/pink.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/purple.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/red.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/line/yellow.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/_all.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/aero.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/aero.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/aero@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/blue.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/blue.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/blue@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/green.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/green.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/green@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/grey.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/grey.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/grey@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/minimal.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/minimal.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/minimal@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/orange.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/orange.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/orange@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/pink.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/pink.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/pink@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/purple.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/purple.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/purple@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/red.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/red.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/red@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/yellow.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/yellow.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/minimal/yellow@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/polaris/polaris.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/polaris/polaris.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/polaris/polaris@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/_all.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/aero.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/aero.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/aero@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/blue.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/blue.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/blue@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/green.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/green.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/green@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/grey.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/grey.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/grey@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/orange.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/orange.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/orange@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/pink.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/pink.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/pink@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/purple.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/purple.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/purple@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/red.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/red.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/red@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/square.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/square.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/square@2x.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/yellow.css create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/yellow.png create mode 100644 xxl-job-admin/src/main/webapp/static/plugins/iCheck/square/yellow@2x.png diff --git a/README.md b/README.md index fadeb11d..f97dacc3 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,3 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job # 其他说明 清楚僵尸任务:qrtz_cron_triggers、qrtz_triggers、qrtz_job_details顺序删除 V1.2新增任务日志,记得执行“tables_xxl_log.sql”生成表结构 - -# 规划中 - 1、登陆系统 - 2、内嵌数据库 》 内嵌服务器 - \ No newline at end of file diff --git a/doc/db/tables_xxl_log.sql b/doc/db/tables_xxl_log.sql index a0454b5b..703e2d0e 100644 --- a/doc/db/tables_xxl_log.sql +++ b/doc/db/tables_xxl_log.sql @@ -2,15 +2,6 @@ # DROP TABLE IF EXISTS XXL_JOB_QRTZ_PAUSED_TRIGGER_GRPS; # DROP TABLE IF EXISTS XXL_JOB_QRTZ_SCHEDULER_STATE; # DROP TABLE IF EXISTS XXL_JOB_QRTZ_LOCKS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_SIMPLE_TRIGGERS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_SIMPROP_TRIGGERS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_CRON_TRIGGERS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_BLOB_TRIGGERS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_TRIGGERS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_JOB_DETAILS; -# DROP TABLE IF EXISTS XXL_JOB_QRTZ_CALENDARS; -# DROP TABLE IF EXISTS `xxl_job_qrtz_trigger_info`; -# DROP TABLE IF EXISTS `xxl_job_qrtz_trigger_log`; CREATE TABLE XXL_JOB_QRTZ_JOB_DETAILS ( @@ -156,8 +147,6 @@ CREATE TABLE XXL_JOB_QRTZ_LOCKS PRIMARY KEY (SCHED_NAME,LOCK_NAME) ); - -DROP TABLE IF EXISTS `xxl_job_qrtz_trigger_info`; CREATE TABLE `xxl_job_qrtz_trigger_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, `job_group` varchar(255) NOT NULL COMMENT '任务组', @@ -174,7 +163,6 @@ CREATE TABLE `xxl_job_qrtz_trigger_info` ( PRIMARY KEY (`id`) ); -DROP TABLE IF EXISTS `xxl_job_qrtz_trigger_log`; CREATE TABLE `xxl_job_qrtz_trigger_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `job_group` varchar(255) NOT NULL COMMENT '任务组', diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index d73c4ca4..a53e0466 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,8 +1,18 @@ package com.xxl.job.controller; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.xxl.job.controller.annotation.PermessionLimit; +import com.xxl.job.controller.interceptor.PermissionInterceptor; +import com.xxl.job.core.model.ReturnT; /** * index controller @@ -12,8 +22,46 @@ import org.springframework.web.bind.annotation.RequestMapping; public class IndexController { @RequestMapping("/") - public String index(Model model) { - return "redirect:jobinfo"; + @PermessionLimit(limit=false) + public String index(Model model, HttpServletRequest request) { + if (!PermissionInterceptor.ifLogin(request)) { + return "redirect:/toLogin"; + } + return "redirect:/jobinfo"; + } + + @RequestMapping("/toLogin") + @PermessionLimit(limit=false) + public String toLogin(Model model, HttpServletRequest request) { + if (PermissionInterceptor.ifLogin(request)) { + return "redirect:/"; + } + return "login"; + } + + @RequestMapping(value="login", method=RequestMethod.POST) + @ResponseBody + @PermessionLimit(limit=false) + public ReturnT loginDo(HttpServletRequest request, HttpServletResponse response, String userName, String password){ + if (!PermissionInterceptor.ifLogin(request)) { + if (StringUtils.isNotBlank(userName) && StringUtils.isNotBlank(password) + && "admin".equals(userName) && "123456".equals(password)) { + PermissionInterceptor.login(response); + } else { + return new ReturnT(500, "账号或密码错误"); + } + } + return ReturnT.SUCCESS; + } + + @RequestMapping(value="logout", method=RequestMethod.POST) + @ResponseBody + @PermessionLimit(limit=false) + public ReturnT logout(HttpServletRequest request, HttpServletResponse response){ + if (PermissionInterceptor.ifLogin(request)) { + PermissionInterceptor.logout(request, response); + } + return ReturnT.SUCCESS; } @RequestMapping("/help") diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 5a840c6a..49b1c80b 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.client.handler.HandlerRepository; import com.xxl.job.client.util.HttpUtil; import com.xxl.job.client.util.HttpUtil.RemoteCallBack; +import com.xxl.job.controller.annotation.PermessionLimit; import com.xxl.job.client.util.JacksonUtil; import com.xxl.job.core.constant.Constants.JobGroupEnum; import com.xxl.job.core.model.ReturnT; @@ -77,6 +78,7 @@ public class JobLogController { @RequestMapping("/save") @ResponseBody + @PermessionLimit(limit=false) public RemoteCallBack triggerLog(int trigger_log_id, String status, String msg) { RemoteCallBack callBack = new RemoteCallBack(); callBack.setStatus(RemoteCallBack.FAIL); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/annotation/PermessionLimit.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/annotation/PermessionLimit.java new file mode 100644 index 00000000..7869844a --- /dev/null +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/annotation/PermessionLimit.java @@ -0,0 +1,22 @@ +package com.xxl.job.controller.annotation; + + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 权限限制 + * @author xuxueli 2015-12-12 18:29:02 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface PermessionLimit { + + /** + * 登陆拦截 (默认拦截) + */ + boolean limit() default true; + +} \ No newline at end of file diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/interceptor/PermissionInterceptor.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/interceptor/PermissionInterceptor.java new file mode 100644 index 00000000..05b0c47d --- /dev/null +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/interceptor/PermissionInterceptor.java @@ -0,0 +1,54 @@ +package com.xxl.job.controller.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import com.xxl.job.controller.annotation.PermessionLimit; +import com.xxl.job.core.util.CookieUtil; + +/** + * 权限拦截, 简易版 + * @author xuxueli 2015-12-12 18:09:04 + */ +public class PermissionInterceptor extends HandlerInterceptorAdapter { + + public static final String LOGIN_IDENTITY_KEY = "LOGIN_IDENTITY"; + public static final String LOGIN_IDENTITY_VAL = "sdf!121sdf$78sd!8"; + + public static boolean login(HttpServletResponse response){ + CookieUtil.set(response, LOGIN_IDENTITY_KEY, LOGIN_IDENTITY_VAL); + return true; + } + public static void logout(HttpServletRequest request, HttpServletResponse response){ + CookieUtil.remove(request, response, LOGIN_IDENTITY_KEY); + } + public static boolean ifLogin(HttpServletRequest request){ + String indentityInfo = CookieUtil.getValue(request, LOGIN_IDENTITY_KEY); + if (indentityInfo==null || !LOGIN_IDENTITY_VAL.equals(indentityInfo.trim())) { + return false; + } + return true; + } + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + if (!(handler instanceof HandlerMethod)) { + return super.preHandle(request, response, handler); + } + + if (!ifLogin(request)) { + HandlerMethod method = (HandlerMethod)handler; + PermessionLimit permission = method.getMethodAnnotation(PermessionLimit.class); + if (permission == null || permission.limit()) { + throw new Exception("登陆实效"); + } + } + + return super.preHandle(request, response, handler); + } + +} diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/util/CookieUtil.java b/xxl-job-admin/src/main/java/com/xxl/job/core/util/CookieUtil.java new file mode 100644 index 00000000..fc023719 --- /dev/null +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/util/CookieUtil.java @@ -0,0 +1,92 @@ +package com.xxl.job.core.util; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Cookie.Util + * @author xuxueli 2015-12-12 18:01:06 + */ +public class CookieUtil { + // 默认缓存时间,单位/秒, 2H + private static final int COOKIE_MAX_AGE = 60 * 60 * 2; + // 保存路径,根路径 + private static final String COOKIE_PATH = "/"; + + /** + * 保存 + * @param response + * @param key + * @param value + */ + public static void set(HttpServletResponse response, String key, String value) { + Cookie cookie = new Cookie(key, value); + cookie.setMaxAge(COOKIE_MAX_AGE); // Cookie过期时间,单位/秒 + cookie.setPath(COOKIE_PATH); // Cookie适用的路径 + response.addCookie(cookie); + } + + /** + * 保存 + * @param request + * @param response + * @param key + * @param value + * @param maxAge + * @param domain + */ + private static void set(HttpServletResponse response, + String key, String value, int maxAge, String path) { + Cookie cookie = new Cookie(key, value); + cookie.setMaxAge(maxAge); // Cookie过期时间,单位/秒 + cookie.setPath(path); // Cookie适用的路径 + response.addCookie(cookie); + } + + /** + * 查询value + * @param request + * @param key + * @return + */ + public static String getValue(HttpServletRequest request, String key) { + Cookie cookie = get(request, key); + if (cookie != null) { + return cookie.getValue(); + } + return null; + } + + /** + * 查询Cookie + * @param request + * @param key + */ + private static Cookie get(HttpServletRequest request, String key) { + Cookie[] arr_cookie = request.getCookies(); + if (arr_cookie != null && arr_cookie.length > 0) { + for (Cookie cookie : arr_cookie) { + if (cookie.getName().equals(key)) { + return cookie; + } + } + } + return null; + } + + /** + * 删除Cookie + * @param request + * @param response + * @param key + * @param domainName + */ + public static void remove(HttpServletRequest request, HttpServletResponse response, String key) { + Cookie cookie = get(request, key); + if (cookie != null) { + set(response, key, "", 0, COOKIE_PATH); + } + } + +} \ No newline at end of file diff --git a/xxl-job-admin/src/main/resources/springmvc-context.xml b/xxl-job-admin/src/main/resources/springmvc-context.xml index 21076803..b0a795b5 100644 --- a/xxl-job-admin/src/main/resources/springmvc-context.xml +++ b/xxl-job-admin/src/main/resources/springmvc-context.xml @@ -38,16 +38,12 @@ - - - + \ No newline at end of file diff --git a/xxl-job-admin/src/main/webapp/500.html b/xxl-job-admin/src/main/webapp/500.html index eb1f4948..ed32d54f 100644 --- a/xxl-job-admin/src/main/webapp/500.html +++ b/xxl-job-admin/src/main/webapp/500.html @@ -1 +1,29 @@ -500 \ No newline at end of file + + + + + 应用程序异常 (500) + + + + + + +
+

应用程序异常

+

抱歉!您访问的页面出现异常,请稍后重试或联系管理员。

+
+ + + \ No newline at end of file diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl index 016f78b0..89b9fee7 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.exception.ftl @@ -2,7 +2,7 @@ - 应用程序异常 (500) + 应用程序异常 (error)