From 81fe5bf6a62eb7777bf7cfb49566848e11fc1398 Mon Sep 17 00:00:00 2001 From: duke <565572696> Date: Sun, 9 Jul 2023 12:57:06 +0800 Subject: [PATCH] =?UTF-8?q?#866=20=E5=8F=AA=E6=94=AF=E6=8C=81https?= =?UTF-8?q?=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=90=AF=E7=94=A8Http2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/config/MessagingServerConfigure.java | 62 +++++++----------- .../config/WebServerContainerConfigure.java | 1 + .../admin/config/SystemConfigController.java | 37 ----------- .../cc/controller/apps/IMController.java | 37 ++--------- .../InstantMessagingExceptionListener.java | 2 +- .../interceptor/UserInterceptorHandler.java | 17 +---- .../com/cskefu/cc/model/SystemConfig.java | 27 -------- .../src/main/resources/application.properties | 15 +++-- .../app/src/main/resources/cskefu.jks | Bin 0 -> 2243 bytes .../templates/admin/config/index.pug | 38 ----------- .../templates/apps/agent/agentusers.pug | 2 +- .../templates/apps/cca/agentusers.pug | 2 +- .../templates/apps/cca/chatusers.pug | 2 +- 13 files changed, 46 insertions(+), 196 deletions(-) create mode 100644 contact-center/app/src/main/resources/cskefu.jks diff --git a/contact-center/app/src/main/java/com/cskefu/cc/config/MessagingServerConfigure.java b/contact-center/app/src/main/java/com/cskefu/cc/config/MessagingServerConfigure.java index 6d006684..425496bd 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/config/MessagingServerConfigure.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/config/MessagingServerConfigure.java @@ -1,37 +1,31 @@ /* - * Copyright (C) 2023 Beijing Huaxia Chunsong Technology Co., Ltd. - * , Licensed under the Chunsong Public + * Copyright (C) 2023 Beijing Huaxia Chunsong Technology Co., Ltd. + * , Licensed under the Chunsong Public * License, Version 1.0 (the "License"), https://docs.cskefu.com/licenses/v1.html * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * Copyright (C) 2018- Jun. 2023 Chatopera Inc, , Licensed under the Apache License, Version 2.0, + * Copyright (C) 2018- Jun. 2023 Chatopera Inc, , Licensed under the Apache License, Version 2.0, * http://www.apache.org/licenses/LICENSE-2.0 - * Copyright (C) 2017 优客服-多渠道客服系统, Licensed under the Apache License, Version 2.0, + * Copyright (C) 2017 优客服-多渠道客服系统, Licensed under the Apache License, Version 2.0, * http://www.apache.org/licenses/LICENSE-2.0 */ package com.cskefu.cc.config; -import com.cskefu.cc.basic.MainUtils; -import com.cskefu.cc.exception.InstantMessagingExceptionListener; -import com.corundumstudio.socketio.AuthorizationListener; import com.corundumstudio.socketio.Configuration; -import com.corundumstudio.socketio.HandshakeData; import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.annotation.SpringAnnotationScanner; +import com.cskefu.cc.exception.InstantMessagingExceptionListener; +import jakarta.annotation.PreDestroy; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; -import jakarta.annotation.PreDestroy; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.security.NoSuchAlgorithmException; -import java.util.Properties; @org.springframework.context.annotation.Configuration public class MessagingServerConfigure { @@ -41,12 +35,18 @@ public class MessagingServerConfigure { @Value("${uk.im.server.port}") private Integer port; - @Value("${cs.im.server.ssl.port}") - private Integer sslPort; - @Value("${web.upload-path}") private String path; + @Value("${server.ssl.key-store}") + private String keyStore; +// +// @Value("${server.ssl.key-store-type}") +// private String keyStoreType; + + @Value("${server.ssl.key-store-password}") + private String keyStorepassword; + @Value("${uk.im.server.threads}") private String threads; @@ -54,11 +54,7 @@ public class MessagingServerConfigure { @Bean(name = "webimport") public Integer getWebIMPort() { - if (sslPort != null) { - return sslPort; - } else { - return port; - } + return port; } @Bean @@ -69,7 +65,7 @@ public class MessagingServerConfigure { tmpConfig.setReuseAddress(true); config.setSocketConfig(tmpConfig); -// config.setHostname("localhost"); +// config.setHostname(host); config.setPort(port); // config.getSocketConfig().setReuseAddress(true); @@ -77,26 +73,8 @@ public class MessagingServerConfigure { // config.setOrigin("*"); config.setExceptionListener(new InstantMessagingExceptionListener()); - File sslFile = new File(path, "ssl/https.properties"); - if (sslFile.exists()) { - Properties sslProperties = new Properties(); - - try (FileInputStream in = new FileInputStream(sslFile)) { - sslProperties.load(in); - } - if (StringUtils.isNotBlank(sslProperties.getProperty("key-store")) && StringUtils.isNotBlank( - sslProperties.getProperty("key-store-password"))) { - config.setKeyStorePassword(MainUtils.decryption(sslProperties.getProperty("key-store-password"))); - InputStream stream = new FileInputStream( - new File(path, "ssl/" + sslProperties.getProperty("key-store"))); - config.setKeyStore(stream); - } - } - - // config.setSSLProtocol("https"); - int workThreads = StringUtils.isNotBlank(threads) && threads.matches("[\\d]{1,6}") ? Integer.parseInt( - threads) : 100; + int workThreads = StringUtils.isNotBlank(threads) && threads.matches("[\\d]{1,6}") ? Integer.parseInt(threads) : 100; config.setWorkerThreads(workThreads); // config.setStoreFactory(new HazelcastStoreFactory()); config.setAuthorizationListener(data -> true); @@ -105,6 +83,10 @@ public class MessagingServerConfigure { config.getSocketConfig().setTcpNoDelay(true); config.getSocketConfig().setTcpKeepAlive(true); + //设置https + InputStream keyStoreStream = this.getClass().getResourceAsStream("/" + keyStore.split(":")[1]); // 读取证书文件流 + config.setKeyStore(keyStoreStream); // 设置证书文件 + config.setKeyStorePassword(keyStorepassword); // 设置证书密码 return server = new SocketIOServer(config); } diff --git a/contact-center/app/src/main/java/com/cskefu/cc/config/WebServerContainerConfigure.java b/contact-center/app/src/main/java/com/cskefu/cc/config/WebServerContainerConfigure.java index 34d5e135..d52bfa78 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/config/WebServerContainerConfigure.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/config/WebServerContainerConfigure.java @@ -15,6 +15,7 @@ package com.cskefu.cc.config; import org.apache.catalina.connector.Connector; +import org.apache.coyote.ProtocolHandler; import org.apache.coyote.http11.Http11NioProtocol; import org.apache.tomcat.util.http.Rfc6265CookieProcessor; import org.springframework.beans.factory.annotation.Value; diff --git a/contact-center/app/src/main/java/com/cskefu/cc/controller/admin/config/SystemConfigController.java b/contact-center/app/src/main/java/com/cskefu/cc/controller/admin/config/SystemConfigController.java index 8a46cfe0..195cfe68 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/controller/admin/config/SystemConfigController.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/controller/admin/config/SystemConfigController.java @@ -30,10 +30,8 @@ import com.cskefu.cc.persistence.repository.SystemMessageRepository; import com.cskefu.cc.persistence.repository.TemplateRepository; import com.cskefu.cc.util.Menu; import com.corundumstudio.socketio.SocketIOServer; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; @@ -44,25 +42,16 @@ import org.springframework.web.servlet.ModelAndView; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; -import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.sql.SQLException; import java.util.Date; import java.util.List; -import java.util.Properties; @Controller @RequestMapping("/admin/config") public class SystemConfigController extends Handler { - @Value("${uk.im.server.port}") - private Integer port; - - @Value("${web.upload-path}") - private String path; - @Autowired private SocketIOServer server; @@ -207,9 +196,6 @@ public class SystemConfigController extends Handler { @Valid Secret secret) throws SQLException, IOException, NoSuchAlgorithmException { SystemConfig systemConfig = systemConfigRes.findOne(); String msg = "0"; - if (StringUtils.isBlank(config.getJkspassword())) { - config.setJkspassword(null); - } if (systemConfig == null) { config.setCreater(super.getUser(request).getId()); config.setCreatetime(new Date()); @@ -217,29 +203,6 @@ public class SystemConfigController extends Handler { } else { MainUtils.copyProperties(config, systemConfig); } - if (config.isEnablessl()) { - if (keyfile != null && keyfile.getBytes() != null && keyfile.getBytes().length > 0 && keyfile.getOriginalFilename() != null && keyfile.getOriginalFilename().length() > 0) { - FileUtils.writeByteArrayToFile( - new File(path, "ssl/" + keyfile.getOriginalFilename()), keyfile.getBytes()); - systemConfig.setJksfile(keyfile.getOriginalFilename()); - File sslFilePath = new File(path, "ssl/https.properties"); - if (!sslFilePath.getParentFile().exists()) { - sslFilePath.getParentFile().mkdirs(); - } - Properties prop = new Properties(); - FileOutputStream oFile = new FileOutputStream(sslFilePath);//true表示追加打开 - prop.setProperty("key-store-password", MainUtils.encryption(systemConfig.getJkspassword())); - prop.setProperty("key-store", systemConfig.getJksfile()); - prop.store(oFile, "SSL Properties File"); - oFile.close(); - } - } else if (new File(path, "ssl").exists()) { - File[] sslFiles = new File(path, "ssl").listFiles(); - for (File sslFile : sslFiles) { - sslFile.delete(); - } - } - if (loginlogo != null && StringUtils.isNotBlank( loginlogo.getOriginalFilename()) && loginlogo.getOriginalFilename().lastIndexOf(".") > 0) { systemConfig.setLoginlogo(super.saveImageFileWithMultipart(loginlogo)); diff --git a/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/IMController.java b/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/IMController.java index ec5c9cff..e4b14500 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/IMController.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/controller/apps/IMController.java @@ -85,9 +85,6 @@ public class IMController extends Handler { @Value("${uk.im.server.port}") private Integer port; - @Value("${cs.im.server.ssl.port}") - private Integer sslPort; - @Value("${web.upload-path}") private String path; @@ -185,18 +182,9 @@ public class IMController extends Handler { CousultInvite consultInvite = consultInviteRes.findBySnsaccountid(id); view.addObject("hostname", request.getServerName()); SystemConfig systemConfig = MainUtils.getSystemConfig(); - if (systemConfig != null && systemConfig.isEnablessl()) { - view.addObject("schema", "https"); - if (request.getServerPort() == 80) { - view.addObject("port", 443); - } else { - view.addObject("port", request.getServerPort()); - } - } else { - view.addObject("schema", super.getSchema(request)); - view.addObject("port", request.getServerPort()); - } + view.addObject("schema", super.getSchema(request)); + view.addObject("port", request.getServerPort()); view.addObject("appid", id); view.addObject("userid", userid); view.addObject("title", title); @@ -241,17 +229,8 @@ public class IMController extends Handler { view.addObject("webimexist", webimexist); SystemConfig systemConfig = MainUtils.getSystemConfig(); - if (systemConfig != null && systemConfig.isEnablessl()) { - view.addObject("schema", "https"); - if (request.getServerPort() == 80) { - view.addObject("port", 443); - } else { - view.addObject("port", request.getServerPort()); - } - } else { - view.addObject("schema", super.getSchema(request)); - view.addObject("port", request.getServerPort()); - } + view.addObject("schema", super.getSchema(request)); + view.addObject("port", request.getServerPort()); view.addObject("appid", id); view.addObject("client", MainUtils.getUUID()); @@ -683,13 +662,7 @@ public class IMController extends Handler { String schema = super.getSchema(request); - if (StringUtils.equals(schema, "https")) { - map.addAttribute("port", 443); - } else if (sslPort != null) { - map.addAttribute("port", sslPort); - } else { - map.addAttribute("port", port); - } + map.addAttribute("port", port); map.addAttribute("appid", appid); map.addAttribute("userid", userid); diff --git a/contact-center/app/src/main/java/com/cskefu/cc/exception/InstantMessagingExceptionListener.java b/contact-center/app/src/main/java/com/cskefu/cc/exception/InstantMessagingExceptionListener.java index 43ed92a9..0f6b267e 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/exception/InstantMessagingExceptionListener.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/exception/InstantMessagingExceptionListener.java @@ -63,7 +63,7 @@ public class InstantMessagingExceptionListener extends ExceptionListenerAdapter }else{ logger.error(e.getMessage(), e); } - ctx.close(); +// ctx.close();//TODO lecjy return true; } } diff --git a/contact-center/app/src/main/java/com/cskefu/cc/interceptor/UserInterceptorHandler.java b/contact-center/app/src/main/java/com/cskefu/cc/interceptor/UserInterceptorHandler.java index bf424f57..877d93f4 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/interceptor/UserInterceptorHandler.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/interceptor/UserInterceptorHandler.java @@ -102,24 +102,13 @@ public class UserInterceptorHandler implements HandlerInterceptor { HttpServletRequest request, HttpServletResponse response, Object arg2, ModelAndView view) { final User user = (User) request.getSession().getAttribute(Constants.USER_SESSION_NAME); - final String infoace = (String) request.getSession().getAttribute( - Constants.CSKEFU_SYSTEM_INFOACQ); // 进入信息采集模式 + final String infoace = (String) request.getSession().getAttribute(Constants.CSKEFU_SYSTEM_INFOACQ); // 进入信息采集模式 final SystemConfig systemConfig = MainUtils.getSystemConfig(); if (view != null) { if (user != null) { view.addObject("user", user); - - if (systemConfig != null && systemConfig.isEnablessl()) { - view.addObject("schema", "https"); - if (request.getServerPort() == 80) { - view.addObject("port", 443); - } else { - view.addObject("port", request.getServerPort()); - } - } else { - view.addObject("schema", request.getScheme()); - view.addObject("port", request.getServerPort()); - } + view.addObject("schema", request.getScheme()); + view.addObject("port", request.getServerPort()); view.addObject("hostname", request.getServerName()); HandlerMethod handlerMethod = (HandlerMethod) arg2; diff --git a/contact-center/app/src/main/java/com/cskefu/cc/model/SystemConfig.java b/contact-center/app/src/main/java/com/cskefu/cc/model/SystemConfig.java index e99802b6..78e96a21 100644 --- a/contact-center/app/src/main/java/com/cskefu/cc/model/SystemConfig.java +++ b/contact-center/app/src/main/java/com/cskefu/cc/model/SystemConfig.java @@ -45,9 +45,6 @@ public class SystemConfig implements java.io.Serializable { private Date createtime; private Date updatetime; private String loglevel; - private boolean enablessl; - private String jksfile; - private String jkspassword; private String mapkey; private boolean workorders; //工单启用三栏布局 private String iconstr; //修改服务器url地址 @@ -201,30 +198,6 @@ public class SystemConfig implements java.io.Serializable { this.loglevel = loglevel; } - public boolean isEnablessl() { - return enablessl; - } - - public void setEnablessl(boolean enablessl) { - this.enablessl = enablessl; - } - - public String getJksfile() { - return jksfile; - } - - public void setJksfile(String jksfile) { - this.jksfile = jksfile; - } - - public String getJkspassword() { - return jkspassword; - } - - public void setJkspassword(String jkspassword) { - this.jkspassword = jkspassword; - } - public String getMapkey() { return mapkey; } diff --git a/contact-center/app/src/main/resources/application.properties b/contact-center/app/src/main/resources/application.properties index f9e91698..28dbc309 100644 --- a/contact-center/app/src/main/resources/application.properties +++ b/contact-center/app/src/main/resources/application.properties @@ -23,14 +23,13 @@ management.security.enabled=false server.session-timeout=86400 server.threads.max=2000 server.connection.max=2000 -server.port=8035 +server.port=8443 server.context-path=/ # IM Server uk.im.server.port=8036 -uk.im.server.host=localhost +uk.im.server.host=www.cskefu.com uk.im.server.threads=1000 -cs.im.server.ssl.port= spring.mvc.servlet.load-on-startup=1 spring.servlet.multipart.enabled=true @@ -172,4 +171,12 @@ extras.login.chatbox=off extras.auth.super-admin.pass= extras.log.request=off -spring.jpa.properties.hibernate.allow_update_outside_transaction=true \ No newline at end of file +spring.jpa.properties.hibernate.allow_update_outside_transaction=true +############################################## +# ssl +############################################## +server.ssl.key-store=classpath:cskefu.jks +server.ssl.key-alias=cskefu +server.ssl.key-store-password=123456 + +server.http2.enabled=true diff --git a/contact-center/app/src/main/resources/cskefu.jks b/contact-center/app/src/main/resources/cskefu.jks new file mode 100644 index 0000000000000000000000000000000000000000..a8fa63e5a656f6fca76387d8e9b47a253b6e5d96 GIT binary patch literal 2243 zcmchYc{J1uAI9f5GsZH;zD2TyY#C#$H~UQ1WX+N_4Henf$khmmEJ;GL&Wup@Y!`#< z-DDYC8HCC*iX<*GUhh5c`<{DF|G$4ce>|VRzUMj5dA_#a{t(R;ioAKj!uTj zm98NuA6=#)$k!(!-kd2AU|;8*r-K!%u<&S08FMi8nj051CR)NTT}3qh#HBR-1*f6? zJiXF+A|2tq+fl$4vCA5FF9wxx{&}#sdc5c+`|CB*^OwZ!eSaforJ|kBhh~Pbm8%|k zkEiF@V=E`VWrh^?QV5|sr_tFSz2S0MC+95=F0`W zl~Z=_!YnuNh$6VmMyKOT&KmQPDd*UirM2W0`)ifn?RH3X*&^4idrz|RpE-dR{+ai9hFPO&$lLgxZ-#OI;+&M4zEABxGB@to`O#PYJF2lt?}+gnZZHsqs=&qOXe1aM%GOv6ly3k=lK=x4tEtMyKP<$`p842^5)gJMbYE$ zKN3OtC(!LQe5v<7+mTGX)HT z?WiVZ@rQh9PS1%gai_~~pO8oo5k`@(Km)GA%5@z*r5`;V9Jgpwq>E!eZm#F2a|CEN zFMK^i==9qkXn8M`JtH|uD0&(GOgi!`(xK>mL0hk2ZT%M&H$6)0RE0aVW)CWa_6n%B zrC1CjQcL%Q84sc(9T^_U{q2|@6Kf@x#Y^JtdO|8mxDbQgKhn8E=Wa8a!|<%LuND|`OPC$$7^ z{+eVFg{v8Z_B3p`(qk4=Yhm5bl|q6iT|)y|I3MviM^7HzugAT#Qc=C5^mu_D;&dt9 zeJql=#o?FvGy#<%wYMWVdM+cUAe0GBi(HaBxhtzMs#T9EN{4!33ZMn)R{R$ia#No3 zc-ZmEX&-GX{y1wkS?tQC;CcGYm9&I;4CIZ$sJKY?V;!rlw92LJ(KIJJFI}VF1LL!o z$uh`^M4OwdQ?d(%4+76pT}@sXDr2gIbi^GWGjzX)#qm$ckG0g6z3j88tcl#aB2S}7 z1m^C?%({zJMb9lC?kH+gl9(|O)`17I-J-F49biGZ=nCz>SwL;wJs354`h;W}PSh&>d>%WUuO>mLx||6juL z3t|3+u>C^dzYxg(2=bI50;P)7Kx!e;sz{W&vmiqC-&XxU_Wyhh9+3QJ9LLWBf(JN3 zNIbv>#sdIob@N50mBqd6fhRAvFQcH(cUWX9cSH;q$WIO^1V_uVvb+cdObmw%%fZ%N zeE3`2qFW)aOrx26vj`=ox2CzvJv_WOd)g^V=VYJ6&1$BY#+@{K8^l+EChl`ki25t7 zmb|Q2cfD>YtBSb7=2ObrGNp=7nEx}x<4zri2!PUC zC7EL!pf*;g)NYZ@ikn%~Q7zAI2nrczcSh||=%t@EP)V;GvzY@%3fNp8-qz^2wkYUa z%&{&LF&L_IS@5c0TyhQR!dCt;=J)LlvXUyrcs4(64}yw;#I7&fCpJ@ZhsD1&McfFl z!S384<9JKrbRQJAlzq08acjI0rJ$E8-cBvAC0DC=cQoNf`9Gy??G3}L2-@Q-lZq}W zMx77q>z7>q92l!2S!o40d`Y}iZ1|@g|B8FJ+I{e(}FOvO%)nxHl8ov%M61moS#aJVdJD&#! TL^|6|NIcz8bDEe-uwnlf`!M0# literal 0 HcmV?d00001 diff --git a/contact-center/app/src/main/resources/templates/admin/config/index.pug b/contact-center/app/src/main/resources/templates/admin/config/index.pug index ed3f20a1..476c87e1 100644 --- a/contact-center/app/src/main/resources/templates/admin/config/index.pug +++ b/contact-center/app/src/main/resources/templates/admin/config/index.pug @@ -181,37 +181,6 @@ block content select(name='loglevel', lay-filter='sysconfig') option(value="info", selected = (systemConfig.loglevel == 'info'?'selected' : false)) INFO option(value="debug", selected = (systemConfig.loglevel == 'debug'?'selected' : false)) DEBUG - .ukefu-webim-prop(hidden) - .ukefu-webim-tl(style='clear:both;') 启用服务SSL安全访问 - .box-item - .row - .col-lg-8 - p 启用 SSL 安全协议 - p(style='color:#888888;font-size:13px;margin-top:10px;') 启用后需要上传SSL证书和设置SSL证书密码 - .col-lg-4(style='text-align:right;') - input(type="checkbox" title="启用" name="enablessl" lay-filter="enablessl" value="1", checked=(systemConfig.enablessl?'checked':false)) - .row.httpsconfig(style='margin-top:20px;display:' + (systemConfig.enablessl == false? "none;":"block;")) - .col-lg-8 - p - | JKS 证书文件 - span(style='color:red;font-weight:bold;')= systemConfig.jksfile - p(style='color:#888888;font-size:13px;margin-top:10px;'). - 受信的SSL证书文件,请上传.JKS类型的证书文件 - .col-lg-4(style='text-align:right;') - span#jkstip - .layui-box.layui-upload-button - input.layui-upload-file(type='file', name='keyfile', accept='.jks', lay-ext='jks', onchange='$(\'#jkstip\').html($(this).val());') - span.layui-upload-icon - i.layui-icon  - | 上传 JKS 文件 - .row.httpsconfig(style='margin-top:20px;display:' + (systemConfig.enablessl == false ? 'none;':'block;')) - .col-lg-8 - p JKS证书密码 - p(style='color:#888888;font-size:13px;margin-top:10px;') - | .JKS文件的证书密码, - b(style='color:red;font-weight:bold;') 如无改变,不用填写 - .col-lg-4(style='text-align:right;') - input.layui-input(type='password', name='jkspassword', autocomplete='off') .ukefu-webim-prop(hidden) .ukefu-webim-tl(style='clear:both;') 启用涉及重要操作的二次验证密码 .box-item @@ -514,13 +483,6 @@ block content layui.use('form', function(){ var form = layui.form(); form.render('select'); //刷新select选择框渲染 - form.on("checkbox(enablessl)" , function(data){ - if(data.elem.checked == true){ - $('.httpsconfig').show(); - }else{ - $('.httpsconfig').hide(); - } - }) form.on("checkbox(enable)" , function(data){ if(data.elem.checked == true){ $('.elablesec').show(); diff --git a/contact-center/app/src/main/resources/templates/apps/agent/agentusers.pug b/contact-center/app/src/main/resources/templates/apps/agent/agentusers.pug index c049cc5b..a4aee649 100644 --- a/contact-center/app/src/main/resources/templates/apps/agent/agentusers.pug +++ b/contact-center/app/src/main/resources/templates/apps/agent/agentusers.pug @@ -35,7 +35,7 @@ 'chat-list-item': true, 'active': (curagentuser.id == agentuser.id) }, id='agentuser_' + agentuser.userid, remove-id=agentuser.id, data-id=agentuser.userid) - a(href='/agent/agentuser.html?id=' + agentuser.id + '&channel=' + agentuser.channeltype, data-toggle="load", data-target="#ukefu-chat-agent", onclick="$('.chat-list-item.active').removeClass('active');$(this).closest('li.chat-list-item').addClass('active');cleanTopMsgTip(this) ;$('#last_msg_#{agentuser.userid}').text(0).hide();") + a(href='/agent/agentuser.html?id=' + agentuser.id + '&channel=' + agentuser.channeltype, data-toggle="load", data-target="#ukefu-chat-agent", onclick="$('.chat-list-item.active').removeClass('active');$(this).closest('li.chat-list-item').addClass('active');cleanTopMsgTip(this) ;$('#last_msg_" + agentuser.userid + "').text(0).hide();") img(src=(agentuser.headimgurl && agentuser.headimgurl != '' ? agentuser.headimgurl : '/images/im/user.png'), style="width:45px;height:45px;") if agentuser.status && agentuser.status == 'end' if agentuser.channeltype && agentuser.channeltype == "weixin" diff --git a/contact-center/app/src/main/resources/templates/apps/cca/agentusers.pug b/contact-center/app/src/main/resources/templates/apps/cca/agentusers.pug index d36e4b79..6f2b899c 100644 --- a/contact-center/app/src/main/resources/templates/apps/cca/agentusers.pug +++ b/contact-center/app/src/main/resources/templates/apps/cca/agentusers.pug @@ -36,7 +36,7 @@ 'chat-list-item': true, 'active': (curagentuser.id == agentuser.id) }, id='agentuser_' + agentuser.userid, remove-id=agentuser.id, data-id=agentuser.userid) - a(href='/apps/cca/agentuser.html?id=' + agentuser.id + '&channel=' + agentuser.channeltype, data-toggle="load", data-target="#ukefu-chat-agent", onclick="$('.chat-list-item.active').removeClass('active');$(this).closest('li.chat-list-item').addClass('active');cleanTopMsgTip(this) ;$('#last_msg_#{agentuser.userid}').text(0).hide();") + a(href='/apps/cca/agentuser.html?id=' + agentuser.id + '&channel=' + agentuser.channeltype, data-toggle="load", data-target="#ukefu-chat-agent", onclick="$('.chat-list-item.active').removeClass('active');$(this).closest('li.chat-list-item').addClass('active');cleanTopMsgTip(this) ;$('#last_msg_" + agentuser.userid + "').text(0).hide();") img(src=(agentuser.headimgurl && agentuser.headimgurl != '' ? agentuser.headimgurl : '/images/im/user.png'), style="width:45px;height:45px;") if agentuser.status && agentuser.status == 'end' if agentuser.channeltype && agentuser.channeltype == "weixin" diff --git a/contact-center/app/src/main/resources/templates/apps/cca/chatusers.pug b/contact-center/app/src/main/resources/templates/apps/cca/chatusers.pug index a09d6fc8..23e2c189 100644 --- a/contact-center/app/src/main/resources/templates/apps/cca/chatusers.pug +++ b/contact-center/app/src/main/resources/templates/apps/cca/chatusers.pug @@ -16,7 +16,7 @@ if agentUserList 'chat-list-item': true, 'active': (curagentuser.id == agentuser.id) }, id='agentuser_' + agentuser.userid, remove-id=agentuser.id, data-id=agentuser.userid) - a(href='/apps/cca/agentuser.html?id=' + agentuser.id + '&channel=' + agentuser.channeltype, data-toggle="load", data-target="#ukefu-chat-agent", onclick="$('.chat-list-item.active').removeClass('active');$(this).closest('li.chat-list-item').addClass('active');Proxy.cleanTopMsgTip(1) ;$('#last_msg_#{agentuser.userid}').text(0).hide();") + a(href='/apps/cca/agentuser.html?id=' + agentuser.id + '&channel=' + agentuser.channeltype, data-toggle="load", data-target="#ukefu-chat-agent", onclick="$('.chat-list-item.active').removeClass('active');$(this).closest('li.chat-list-item').addClass('active');Proxy.cleanTopMsgTip(1) ;$('#last_msg_" + agentuser.userid + "'").text(0).hide();") img(src=(agentuser.headimgurl && agentuser.headimgurl != '' ? agentuser.headimgurl : '/images/im/user.png'), style="width:45px;height:45px;") if agentuser.status && agentuser.status == 'end' if agentuser.channeltype && agentuser.channeltype == "weixin"