From afbec289067cc7f284dd135366b0f6febf13126b Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 11 七月 2022 16:21:01 +0800 Subject: [PATCH] 增加推流鉴权。保护服务安全 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 98 +++++++++++++++++++------------------------------ 1 files changed, 38 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java index 35069aa..693dda1 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java @@ -115,64 +115,42 @@ public StreamPushItem addPush(MediaItem mediaItem) { // 鏌ユ壘姝ょ洿鎾祦鏄惁瀛樺湪redis棰勮gbId StreamPushItem transform = streamPushService.transform(mediaItem); - // 浠巗treamId鍙栧嚭鏌ヨ鍏抽敭鍊� - Pattern pattern = Pattern.compile(userSetting.getThirdPartyGBIdReg()); - Matcher matcher = pattern.matcher(mediaItem.getStream());// 鎸囧畾瑕佸尮閰嶇殑瀛楃涓� - String queryKey = null; - if (matcher.find()) { //姝ゅfind锛堬級姣忔琚皟鐢ㄥ悗锛屼細鍋忕Щ鍒颁笅涓�涓尮閰� - queryKey = matcher.group(); - } - if (queryKey != null) { - ThirdPartyGB thirdPartyGB = redisCatchStorage.queryMemberNoGBId(queryKey); - if (thirdPartyGB != null && !StringUtils.isEmpty(thirdPartyGB.getNationalStandardNo())) { - transform.setGbId(thirdPartyGB.getNationalStandardNo()); - transform.setName(thirdPartyGB.getName()); - } - } - if (!StringUtils.isEmpty(transform.getGbId())) { - // 濡傛灉杩欎釜鍥芥爣ID宸茬粡缁欎簡鍏朵粬鎺ㄦ祦涓旀祦宸茬绾匡紝鍒欑Щ闄ゅ叾浠栨帹娴� - List<GbStream> gbStreams = gbStreamMapper.selectByGBId(transform.getGbId()); - if (gbStreams.size() > 0) { - for (GbStream gbStream : gbStreams) { - // 鍑虹幇浣跨敤鐩稿悓鍥芥爣Id鐨勮棰戞祦鏃讹紝浣跨敤鏂版祦鏇挎崲鏃ф祦锛� - if (queryKey != null && gbStream.getApp().equals(mediaItem.getApp())) { - Matcher matcherForStream = pattern.matcher(gbStream.getStream()); - String queryKeyForStream = null; - if (matcherForStream.find()) { //姝ゅfind锛堬級姣忔琚皟鐢ㄥ悗锛屼細鍋忕Щ鍒颁笅涓�涓尮閰� - queryKeyForStream = matcherForStream.group(); - } - if (queryKeyForStream == null || !queryKeyForStream.equals(queryKey)) { - // 姝ゆ椂涓嶆槸鍚屼竴涓祦 - gbStreamMapper.del(gbStream.getApp(), gbStream.getStream()); - if (!gbStream.isStatus()) { - streamPushMapper.del(gbStream.getApp(), gbStream.getStream()); - } - } - } - } - } - List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId()); - if (gbStreamList != null && gbStreamList.size() == 1) { - transform.setGbStreamId(gbStreamList.get(0).getGbStreamId()); - transform.setPlatformId(gbStreamList.get(0).getPlatformId()); - transform.setCatalogId(gbStreamList.get(0).getCatalogId()); - transform.setGbId(gbStreamList.get(0).getGbId()); - gbStreamMapper.update(transform); - streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream()); - }else { - transform.setCreateTime(DateUtil.getNow()); - transform.setUpdateTime(DateUtil.getNow()); - gbStreamMapper.add(transform); - } - if (transform != null) { - if (channelOnlineEvents.get(transform.getGbId()) != null) { - channelOnlineEvents.get(transform.getGbId()).run(transform.getApp(), transform.getStream(), transform.getServerId()); - channelOnlineEvents.remove(transform.getGbId()); - } - } + StreamPushItem pushInDb = streamPushService.getPush(mediaItem.getApp(), mediaItem.getStream()); + transform.setUpdateTime(DateUtil.getNow()); + transform.setPushTime(DateUtil.getNow()); + if (pushInDb == null) { + transform.setCreateTime(DateUtil.getNow()); + streamPushMapper.add(transform); + }else { + streamPushMapper.update(transform); + + +// if (!StringUtils.isEmpty(pushInDb.getGbId())) { +// List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId()); +// if (gbStreamList != null && gbStreamList.size() == 1) { +// transform.setGbStreamId(gbStreamList.get(0).getGbStreamId()); +// transform.setPlatformId(gbStreamList.get(0).getPlatformId()); +// transform.setCatalogId(gbStreamList.get(0).getCatalogId()); +// transform.setGbId(gbStreamList.get(0).getGbId()); +// gbStreamMapper.update(transform); +// streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream()); +// }else { +// transform.setCreateTime(DateUtil.getNow()); +// transform.setUpdateTime(DateUtil.getNow()); +// gbStreamMapper.add(transform); +// } + // 閫氱煡閫氶亾涓婄嚎 +// if (transform != null) { +// if (channelOnlineEvents.get(transform.getGbId()) != null) { +// channelOnlineEvents.get(transform.getGbId()).run(transform.getApp(), transform.getStream(), transform.getServerId()); +// channelOnlineEvents.remove(transform.getGbId()); +// } +// } +// } } - storager.updateMedia(transform); + + return transform; } @@ -206,13 +184,13 @@ public int removeMedia(String app, String streamId) { // 鏌ユ壘鏄惁鍏宠仈浜嗗浗鏍囷紝 鍏宠仈浜嗕笉鍒犻櫎锛� 缃负绂荤嚎 - StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(app, streamId); - int result = 0; - if (streamProxyItem == null) { + GbStream gbStream = gbStreamMapper.selectOne(app, streamId); + int result; + if (gbStream == null) { result = storager.removeMedia(app, streamId); }else { // TODO 鏆備笉璁剧疆涓虹绾� - result =storager.mediaOutline(app, streamId); + result =storager.mediaOffline(app, streamId); } return result; } -- Gitblit v1.8.0