Преглед на файлове

修复html过滤导致的bug

xie.bx преди 2 години
родител
ревизия
1644a54eb1

+ 0 - 5
im-commom/pom.xml

@@ -59,11 +59,6 @@
             <artifactId>java-jwt</artifactId>
             <version>3.11.0</version>
         </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>32.1.2-jre</version>
-        </dependency>
         <!-- slf4j -->
         <dependency>
             <groupId>org.slf4j</groupId>

+ 3 - 3
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java

@@ -2,7 +2,7 @@ package com.bx.implatform.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -73,7 +73,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
         msg.setSendTime(new Date());
         msg.setSendNickName(member.getAliasName());
         if (CollUtil.isNotEmpty(dto.getAtUserIds())) {
-            msg.setAtUserIds(CharSequenceUtil.join(",", dto.getAtUserIds()));
+            msg.setAtUserIds(StrUtil.join(",", dto.getAtUserIds()));
         }
         this.save(msg);
         // 群发
@@ -207,7 +207,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
         sendMessage.setSendResult(true);
         imClient.sendGroupMessage(sendMessage);
         // 记录已读消息位置
-        String key = CharSequenceUtil.join(":", RedisKey.IM_GROUP_READED_POSITION, groupId, session.getUserId());
+        String key = StrUtil.join(":", RedisKey.IM_GROUP_READED_POSITION, groupId, session.getUserId());
         redisTemplate.opsForValue().set(key, message.getId());
 
     }

+ 12 - 2
im-ui/src/components/chat/ChatBox.vue

@@ -47,7 +47,7 @@
 								<div title="聊天记录" class="el-icon-chat-dot-round" @click="showHistoryBox()"></div>
 							</div>
 							<div class="send-content-area">
-								<div contenteditable="true" v-show="!sendImageUrl" id="inputText" ref="editBox" class="send-text-area"
+								<div contenteditable="true" v-show="!sendImageUrl" ref="editBox" class="send-text-area"
 									:disabled="lockMessage" @paste.prevent="onEditorPaste"
 									@compositionstart="onEditorCompositionStart"
 									@compositionend="onEditorCompositionEnd" @input="onEditorInput"
@@ -221,7 +221,7 @@
 				let sendText = ""
 				this.$refs.editBox.childNodes.forEach((node) => {
 					if (node.nodeName == "#text") {
-						sendText = document.getElementById("inputText").innerHTML;
+						sendText += this.html2Escape(node.textContent);
 					} else if (node.nodeName == "SPAN") {
 						sendText += node.innerText;
 					} else if (node.nodeName == "IMG") {
@@ -230,6 +230,16 @@
 				})
 				return sendText;
 			},
+			html2Escape(strHtml) {
+				return strHtml.replace(/[<>&"]/g, function(c) {
+					return {
+						'<': '&lt;',
+						'>': '&gt;',
+						'&': '&amp;',
+						'"': '&quot;'
+					}[c];
+				});
+			},
 			createAtUserIds() {
 				let ids = [];
 				this.$refs.editBox.childNodes.forEach((node) => {