From 7b7e9259d4420ea21461b0eea760155362d7d3a5 Mon Sep 17 00:00:00 2001 From: zhangxin10 Date: Wed, 23 Dec 2015 17:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8E=88=E6=9D=83=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E8=BD=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ai/cloud/controller/AlarmRuleCtl.java | 9 +- .../com/ai/cloud/controller/AuthFileCtl.java | 169 +++++---- .../com/ai/cloud/dao/impl/AuthConfigMDAO.java | 36 ++ .../ai/cloud/dao/impl/SystemConfigMDAO.java | 37 ++ .../ai/cloud/dao/inter/IAuthConfigMDAO.java | 7 + .../ai/cloud/dao/inter/ISystemConfigMDAO.java | 7 + .../cloud/service/impl/AuthFileSerImpl.java | 20 + .../service/impl/SystemConfigSerImpl.java | 19 + .../ai/cloud/service/inter/IAuthFileSer.java | 7 + .../cloud/service/inter/ISystemConfigSer.java | 8 + .../com/ai/cloud/vo/mvo/SystemConfigMVO.java | 50 +++ .../src/main/resources/test.properties | 20 + .../src/main/webapp/ftl/applist.ftl | 347 +++++++----------- 13 files changed, 445 insertions(+), 291 deletions(-) create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/dao/impl/AuthConfigMDAO.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/dao/impl/SystemConfigMDAO.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/dao/inter/IAuthConfigMDAO.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/dao/inter/ISystemConfigMDAO.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/service/impl/AuthFileSerImpl.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/service/impl/SystemConfigSerImpl.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/service/inter/IAuthFileSer.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/service/inter/ISystemConfigSer.java create mode 100644 skywalking-webui/src/main/java/com/ai/cloud/vo/mvo/SystemConfigMVO.java create mode 100644 skywalking-webui/src/main/resources/test.properties diff --git a/skywalking-webui/src/main/java/com/ai/cloud/controller/AlarmRuleCtl.java b/skywalking-webui/src/main/java/com/ai/cloud/controller/AlarmRuleCtl.java index e13d9d24c..63462fa09 100644 --- a/skywalking-webui/src/main/java/com/ai/cloud/controller/AlarmRuleCtl.java +++ b/skywalking-webui/src/main/java/com/ai/cloud/controller/AlarmRuleCtl.java @@ -35,7 +35,7 @@ public class AlarmRuleCtl { /*** * 查询用户默认规则 - * + * * @param root * @return * @throws Exception @@ -74,7 +74,7 @@ public class AlarmRuleCtl { /*** * 查询用户默认规则 - * + * * @param root * @return * @throws Exception @@ -114,7 +114,7 @@ public class AlarmRuleCtl { /*** * 创建用户默认规则 - * + * * @param root * @return * @throws Exception @@ -258,7 +258,7 @@ public class AlarmRuleCtl { /*** * 创建用户默认规则 - * + * * @param root * @return * @throws Exception @@ -333,7 +333,6 @@ public class AlarmRuleCtl { ruleMVO.setTodoType(todoType); JSONObject confArgs = new JSONObject(); confArgs.put("period", period); - confArgs.put("excludeExceptions", json.get("excludeExceptions")); if (Constants.TODO_TYPE_0.equals(todoType)) { // 设置邮件相关的信息 JSONObject mailInfo = new JSONObject(); diff --git a/skywalking-webui/src/main/java/com/ai/cloud/controller/AuthFileCtl.java b/skywalking-webui/src/main/java/com/ai/cloud/controller/AuthFileCtl.java index 4abf4376e..802f65fc3 100644 --- a/skywalking-webui/src/main/java/com/ai/cloud/controller/AuthFileCtl.java +++ b/skywalking-webui/src/main/java/com/ai/cloud/controller/AuthFileCtl.java @@ -1,91 +1,116 @@ package com.ai.cloud.controller; +import com.ai.cloud.service.inter.IAuthFileSer; +import com.ai.cloud.service.inter.ISystemConfigSer; +import com.ai.cloud.util.Constants; +import com.ai.cloud.util.common.StringUtil; +import com.alibaba.fastjson.JSONObject; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.OutputStream; import java.net.URLDecoder; import java.net.URLEncoder; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; - -import com.ai.cloud.util.Constants; -import com.ai.cloud.util.common.StringUtil; -import com.alibaba.fastjson.JSONObject; +import java.util.Map; +import java.util.Properties; @Controller public class AuthFileCtl { - private static Logger logger = LogManager.getLogger(AlarmRuleCtl.class); + private static Logger logger = LogManager.getLogger(AlarmRuleCtl.class); - @RequestMapping("/exportAuth/{appCode}") - public void exportApplicationAuthFile(HttpServletRequest request, HttpServletResponse response, - @PathVariable("appCode") String appCode) throws Exception { - HttpSession session = request.getSession(); - String uid = (String) session.getAttribute("uid"); + @Autowired + private IAuthFileSer authFileSer; - JSONObject reJson = new JSONObject(); + @Autowired + private ISystemConfigSer systemConfigSer; - if (StringUtil.isBlank(uid)) { - reJson.put(Constants.JSON_RESULT_KEY_RESULT, Constants.JSON_RESULT_KEY_RESULT_FAIL); - reJson.put(Constants.JSON_RESULT_KEY_RESULT_MSG, "用户会话超时"); - return ; - } - String filepath = "sky-walking.auth"; - response.reset(); - response.setContentType("application/octet-stream"); - String fileName = URLDecoder.decode(filepath, "utf-8"); - java.net.URLEncoder.encode(fileName, "utf-8"); - response.addHeader("Content-Disposition", - "attachment;" + "filename=\"" + URLEncoder.encode(fileName, "utf-8") + "\""); + @RequestMapping("/exportAuth/{appCode}") + public void exportApplicationAuthFile(HttpServletRequest request, HttpServletResponse response, + @PathVariable("appCode") String appCode) throws Exception { + HttpSession session = request.getSession(); + String uid = (String) session.getAttribute("uid"); - StringBuilder sb = new StringBuilder(""); - sb.append("测试魂牵梦萦魂牵梦萦" + "\r\n"); - BufferedOutputStream output = null; - BufferedInputStream input = null; - OutputStream os = null; - try { - os = response.getOutputStream(); - byte[] byt = sb.toString().getBytes(); - os.write(byt); - } catch (Exception e) { - logger.error("导出 {} 应用制空权文件异常", appCode); - e.printStackTrace(); - } finally { - os.flush(); - os.close(); - if (input != null) { - input.close(); - } - if (output != null) { - output.close(); - } - } - return; - } - - @RequestMapping("/confAuthInfo/{appCode}") - public String confAuthInfo(HttpServletRequest request, HttpServletResponse response, - @PathVariable("appCode") String appCode) throws Exception { - HttpSession session = request.getSession(); - String uid = (String) session.getAttribute("uid"); + JSONObject reJson = new JSONObject(); - JSONObject reJson = new JSONObject(); + if (StringUtil.isBlank(uid)) { + reJson.put(Constants.JSON_RESULT_KEY_RESULT, Constants.JSON_RESULT_KEY_RESULT_FAIL); + reJson.put(Constants.JSON_RESULT_KEY_RESULT_MSG, "用户会话超时"); + return; + } - if (StringUtil.isBlank(uid)) { - reJson.put(Constants.JSON_RESULT_KEY_RESULT, Constants.JSON_RESULT_KEY_RESULT_FAIL); - reJson.put(Constants.JSON_RESULT_KEY_RESULT_MSG, "用户会话超时"); - return reJson.toJSONString(); - } - - return reJson.toJSONString(); - } + String filepath = "sky-walking.auth"; + response.reset(); + response.setContentType("application/octet-stream"); + String fileName = URLDecoder.decode(filepath, "utf-8"); + java.net.URLEncoder.encode(fileName, "utf-8"); + response.addHeader("Content-Disposition", + "attachment;" + "filename=\"" + URLEncoder.encode(fileName, "utf-8") + "\""); + Properties properties = authFileSer.queryAuthFile(); + String propertyValue; + for (Map.Entry value : properties.entrySet()) { + propertyValue = String.valueOf(value.getValue()); + if (propertyValue.startsWith("#")) { + value.setValue(systemConfigSer.querySystemConfigByKey(propertyValue.substring(1)).getConfValue()); + continue; + } + + if (propertyValue.startsWith("$")){ + if (request.getParameter((propertyValue.substring(1))) != null ) { + value.setValue(request.getParameter(propertyValue.substring(1))); + } + } + } + properties.setProperty("skywalking.user_id", uid); + properties.setProperty("skywalking.application_code", appCode); + BufferedOutputStream output = null; + BufferedInputStream input = null; + OutputStream os = null; + try { + os = response.getOutputStream(); + //byte[] byt = sb.toString().getBytes(); + properties.store(os, "test"); +// os.write(byt); + } catch (Exception e) { + logger.error("导出 {} 应用制空权文件异常", appCode); + e.printStackTrace(); + } finally { + os.flush(); + os.close(); + if (input != null) { + input.close(); + } + if (output != null) { + output.close(); + } + } + return; + } + + @RequestMapping("/confAuthInfo/{appCode}") + public String confAuthInfo(HttpServletRequest request, HttpServletResponse response, + @PathVariable("appCode") String appCode) throws Exception { + HttpSession session = request.getSession(); + String uid = (String) session.getAttribute("uid"); + + JSONObject reJson = new JSONObject(); + + if (StringUtil.isBlank(uid)) { + reJson.put(Constants.JSON_RESULT_KEY_RESULT, Constants.JSON_RESULT_KEY_RESULT_FAIL); + reJson.put(Constants.JSON_RESULT_KEY_RESULT_MSG, "用户会话超时"); + return reJson.toJSONString(); + } + + return reJson.toJSONString(); + } } diff --git a/skywalking-webui/src/main/java/com/ai/cloud/dao/impl/AuthConfigMDAO.java b/skywalking-webui/src/main/java/com/ai/cloud/dao/impl/AuthConfigMDAO.java new file mode 100644 index 000000000..6e5d2a284 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/dao/impl/AuthConfigMDAO.java @@ -0,0 +1,36 @@ +package com.ai.cloud.dao.impl; + +import com.ai.cloud.dao.inter.IAuthConfigMDAO; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Properties; + +@Repository +public class AuthConfigMDAO implements IAuthConfigMDAO { + + @Autowired + private JdbcTemplate jdbcTemplate; + + private static Logger logger = LogManager.getLogger(AuthConfigMDAO.class); + + @Override + public Properties queryAllAuthConfig() { + final Properties properties = new Properties(); + String sql = "select auth_file_config.key, auth_file_config.value from auth_file_config where auth_file_config.sts = ? "; + final Object[] params = new Object[]{"A"}; + jdbcTemplate.query(sql, params,new RowCallbackHandler() { + @Override + public void processRow(ResultSet resultSet) throws SQLException { + properties.setProperty(resultSet.getString("key"), resultSet.getString("value")); + } + }); + return properties; + } +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/dao/impl/SystemConfigMDAO.java b/skywalking-webui/src/main/java/com/ai/cloud/dao/impl/SystemConfigMDAO.java new file mode 100644 index 000000000..102afac59 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/dao/impl/SystemConfigMDAO.java @@ -0,0 +1,37 @@ +package com.ai.cloud.dao.impl; + +import com.ai.cloud.dao.inter.ISystemConfigMDAO; +import com.ai.cloud.vo.mvo.SystemConfigMVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowCallbackHandler; +import org.springframework.stereotype.Repository; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Repository +public class SystemConfigMDAO implements ISystemConfigMDAO { + + @Autowired + private JdbcTemplate jdbcTemplate; + + @Override + public SystemConfigMVO querySystemConfigByKey(String key) { + final SystemConfigMVO systemConfigMVO = new SystemConfigMVO(); + String sql = "SELECT config_id, conf_key, conf_value, val_type, val_desc from system_config where conf_key = ? and sts = ?"; + final Object[] params = new Object[]{key, "A"}; + jdbcTemplate.query(sql, params, new RowCallbackHandler() { + @Override + public void processRow(ResultSet resultSet) throws SQLException { + systemConfigMVO.setConfigId(resultSet.getString("config_id")); + systemConfigMVO.setConfKey(resultSet.getString("conf_key")); + systemConfigMVO.setConfValue(resultSet.getString("conf_value")); + systemConfigMVO.setValueType(resultSet.getString("val_type")); + systemConfigMVO.setValueDesc(resultSet.getString("val_desc")); + } + }); + + return systemConfigMVO; + } +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/dao/inter/IAuthConfigMDAO.java b/skywalking-webui/src/main/java/com/ai/cloud/dao/inter/IAuthConfigMDAO.java new file mode 100644 index 000000000..b2f9d2c3a --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/dao/inter/IAuthConfigMDAO.java @@ -0,0 +1,7 @@ +package com.ai.cloud.dao.inter; + +import java.util.Properties; + +public interface IAuthConfigMDAO { + Properties queryAllAuthConfig(); +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/dao/inter/ISystemConfigMDAO.java b/skywalking-webui/src/main/java/com/ai/cloud/dao/inter/ISystemConfigMDAO.java new file mode 100644 index 000000000..e5b0b4f00 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/dao/inter/ISystemConfigMDAO.java @@ -0,0 +1,7 @@ +package com.ai.cloud.dao.inter; + +import com.ai.cloud.vo.mvo.SystemConfigMVO; + +public interface ISystemConfigMDAO { + SystemConfigMVO querySystemConfigByKey(String key); +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/service/impl/AuthFileSerImpl.java b/skywalking-webui/src/main/java/com/ai/cloud/service/impl/AuthFileSerImpl.java new file mode 100644 index 000000000..a5efea849 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/service/impl/AuthFileSerImpl.java @@ -0,0 +1,20 @@ +package com.ai.cloud.service.impl; + +import com.ai.cloud.dao.inter.IAuthConfigMDAO; +import com.ai.cloud.service.inter.IAuthFileSer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Properties; + +@Service +public class AuthFileSerImpl implements IAuthFileSer { + + @Autowired + private IAuthConfigMDAO authConfigMDAO; + + @Override + public Properties queryAuthFile() { + return authConfigMDAO.queryAllAuthConfig(); + } +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/service/impl/SystemConfigSerImpl.java b/skywalking-webui/src/main/java/com/ai/cloud/service/impl/SystemConfigSerImpl.java new file mode 100644 index 000000000..1159bcb30 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/service/impl/SystemConfigSerImpl.java @@ -0,0 +1,19 @@ +package com.ai.cloud.service.impl; + +import com.ai.cloud.dao.inter.ISystemConfigMDAO; +import com.ai.cloud.service.inter.ISystemConfigSer; +import com.ai.cloud.vo.mvo.SystemConfigMVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class SystemConfigSerImpl implements ISystemConfigSer { + + @Autowired + private ISystemConfigMDAO iSystemConfigMDAO; + + @Override + public SystemConfigMVO querySystemConfigByKey(String key) { + return iSystemConfigMDAO.querySystemConfigByKey(key); + } +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/service/inter/IAuthFileSer.java b/skywalking-webui/src/main/java/com/ai/cloud/service/inter/IAuthFileSer.java new file mode 100644 index 000000000..133288457 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/service/inter/IAuthFileSer.java @@ -0,0 +1,7 @@ +package com.ai.cloud.service.inter; + +import java.util.Properties; + +public interface IAuthFileSer { + Properties queryAuthFile(); +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/service/inter/ISystemConfigSer.java b/skywalking-webui/src/main/java/com/ai/cloud/service/inter/ISystemConfigSer.java new file mode 100644 index 000000000..b406b72c8 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/service/inter/ISystemConfigSer.java @@ -0,0 +1,8 @@ +package com.ai.cloud.service.inter; + +import com.ai.cloud.vo.mvo.SystemConfigMVO; + +public interface ISystemConfigSer { + + SystemConfigMVO querySystemConfigByKey(String key); +} diff --git a/skywalking-webui/src/main/java/com/ai/cloud/vo/mvo/SystemConfigMVO.java b/skywalking-webui/src/main/java/com/ai/cloud/vo/mvo/SystemConfigMVO.java new file mode 100644 index 000000000..a0dfa5e44 --- /dev/null +++ b/skywalking-webui/src/main/java/com/ai/cloud/vo/mvo/SystemConfigMVO.java @@ -0,0 +1,50 @@ +package com.ai.cloud.vo.mvo; + +public class SystemConfigMVO { + private String configId; + private String confKey; + private String confValue; + private String valueType; + private String valueDesc; + + + public String getConfigId() { + return configId; + } + + public void setConfigId(String configId) { + this.configId = configId; + } + + public String getConfKey() { + return confKey; + } + + public void setConfKey(String confKey) { + this.confKey = confKey; + } + + public String getConfValue() { + return confValue; + } + + public void setConfValue(String confValue) { + this.confValue = confValue; + } + + public String getValueType() { + return valueType; + } + + public void setValueType(String valueType) { + this.valueType = valueType; + } + + public String getValueDesc() { + return valueDesc; + } + + public void setValueDesc(String valueDesc) { + this.valueDesc = valueDesc; + } +} diff --git a/skywalking-webui/src/main/resources/test.properties b/skywalking-webui/src/main/resources/test.properties new file mode 100644 index 000000000..270cd9b08 --- /dev/null +++ b/skywalking-webui/src/main/resources/test.properties @@ -0,0 +1,20 @@ +#test +#Wed Dec 23 15:24:10 CST 2015 +buriedpoint.businesskey_max_length=300 +sender.retry_get_sender_wait_interval=2000 +buffer.pool_size=5 +senderchecker.check_polling_time=200 +sender.is_off=false +sender.max_send_length=20000 +consumer.max_consumer=2 +consumer.max_wait_time=5 +sender.max_copy_num=2 +skywalking.application_code=test +consumer.consumer_fail_retry_wait_interval=50 +skywalking.user_id=1 +buriedpoint.printf=false +buriedpoint.exclusive_exceptions= +buriedpoint.max_exception_stack_length=4000 +sender.connect_percent=100 +buffer.buffer_max_size=18000 +sender.servers_addr=127.0.0.1\:34000; diff --git a/skywalking-webui/src/main/webapp/ftl/applist.ftl b/skywalking-webui/src/main/webapp/ftl/applist.ftl index 2bb42d8cd..c39cf8ec1 100644 --- a/skywalking-webui/src/main/webapp/ftl/applist.ftl +++ b/skywalking-webui/src/main/webapp/ftl/applist.ftl @@ -5,7 +5,7 @@ Sky Walking - + @@ -49,7 +49,7 @@
- @@ -81,12 +81,6 @@
-
- -
- -
-
@@ -99,101 +93,9 @@