From 9e8cab609d32a5f2143a726a26437cc4d7b8c8da Mon Sep 17 00:00:00 2001 From: 648540858 <18010473990@163.com> Date: 星期二, 10 八月 2021 15:42:15 +0800 Subject: [PATCH] 添加角色相关的接口,用户信息添加角色信息 --- src/main/java/com/genersoft/iot/vmp/service/IRoleService.java | 18 + src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java | 2 src/main/java/com/genersoft/iot/vmp/storager/dao/RoleMapper.java | 35 ++ src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 12 src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java | 13 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java | 6 src/main/resources/banner.txt | 1 src/main/java/com/genersoft/iot/vmp/web/ApiController.java | 16 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java | 46 +- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java | 6 sql/mysql.sql | 16 + src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java | 28 + src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 14 src/main/resources/application-dev.yml | 8 src/test/java/com/genersoft/iot/vmp/service/impl/UserServiceImplTest.java | 17 + src/test/java/com/genersoft/iot/vmp/service/impl/RoleServiceImplTest.java | 58 ++++ src/main/java/com/genersoft/iot/vmp/storager/dao/dto/User.java | 18 src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java | 94 ++++-- src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java | 101 +++++++ src/main/resources/wvp.sqlite | 0 src/main/resources/all-application.yml | 10 src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java | 47 +++ src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java | 12 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java | 8 src/main/java/com/genersoft/iot/vmp/storager/dao/dto/Role.java | 50 +++ src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java | 48 ++ src/main/java/com/genersoft/iot/vmp/service/impl/RoleServerImpl.java | 41 +++ src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 2 src/main/java/com/genersoft/iot/vmp/conf/security/dto/LoginUser.java | 5 29 files changed, 598 insertions(+), 134 deletions(-) diff --git a/sql/mysql.sql b/sql/mysql.sql index 9a41b82..5524e32 100644 --- a/sql/mysql.sql +++ b/sql/mysql.sql @@ -227,12 +227,22 @@ username varchar(255) not null, password varchar(255) not null, roleId int not null, - create_time varchar(50) not null, - update_time varchar(50) not null + createTime varchar(50) not null, + updateTime varchar(50) not null ); create unique index user_username_uindex on user (username); -insert into user (username, password, roleId, create_time, update_time) values ('admin', '21232f297a57a5a743894a0e4a801fc3', '0', '2021-04-13 14:14:57', '2021-04-13 14:14:57'); +insert into user (username, password, roleId, createTime, updateTime) values ('admin', '21232f297a57a5a743894a0e4a801fc3', '1', '2021-04-13 14:14:57', '2021-04-13 14:14:57'); + +create table role ( + id int auto_increment + primary key, + name TEXT NOT NULL, + authority TEXT NOT NULL, + createTime varchar(50) not null, + updateTime varchar(50) not null +); +insert into role (id, name, authority, createTime, updateTime) values ('1', 'admin', '0', '2021-04-13 14:14:57', '2021-04-13 14:14:57'); diff --git a/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java index 8fc1ba8..709fe9c 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java @@ -2,71 +2,101 @@ import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; -@Configuration("sipConfig") +@Component +@ConfigurationProperties(prefix = "sip", ignoreInvalidFields = true) public class SipConfig { - @Value("${sip.ip}") - private String sipIp; + private String ip; /** - * 榛樿浣跨敤sip.ip + * 榛樿浣跨敤 0.0.0.0 */ - @Value("${sip.monitor-ip:0.0.0.0}") - private String monitorIp; + private String monitorIp = "0.0.0.0"; - @Value("${sip.port}") - private Integer sipPort; + private Integer port; - @Value("${sip.domain}") - private String sipDomain; + private String domain; - @Value("${sip.id}") - private String sipId; + private String id; - @Value("${sip.password}") - private String sipPassword; + private String password; - @Value("${sip.ptz.speed:50}") - Integer speed; + Integer ptzSpeed = 50; - @Value("${sip.keepalive-timeout:180}") - Integer keepaliveTimeOut; + Integer keepaliveTimeOut = 180; - @Value("${sip.register-time-interval:60}") - Integer registerTimeInterval; + Integer registerTimeInterval = 60; + + public void setIp(String ip) { + this.ip = ip; + } + + public void setMonitorIp(String monitorIp) { + this.monitorIp = monitorIp; + } + + public void setPort(Integer port) { + this.port = port; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public void setId(String id) { + this.id = id; + } + + public void setPassword(String password) { + this.password = password; + } + + public void setPtzSpeed(Integer ptzSpeed) { + this.ptzSpeed = ptzSpeed; + } + + public void setKeepaliveTimeOut(Integer keepaliveTimeOut) { + this.keepaliveTimeOut = keepaliveTimeOut; + } + + public void setRegisterTimeInterval(Integer registerTimeInterval) { + this.registerTimeInterval = registerTimeInterval; + } public String getMonitorIp() { return monitorIp; } - public String getSipIp() { - return sipIp; + public String getIp() { + return ip; } - public Integer getSipPort() { - return sipPort; + public Integer getPort() { + return port; } - public String getSipDomain() { - return sipDomain; + public String getDomain() { + return domain; } - public String getSipId() { - return sipId; + public String getId() { + return id; } - public String getSipPassword() { - return sipPassword; + public String getPassword() { + return password; } - public Integer getSpeed() { - return speed; + public Integer getPtzSpeed() { + return ptzSpeed; } public Integer getKeepaliveTimeOut() { diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java b/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java index d4e25e3..800c4cb 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java @@ -28,8 +28,8 @@ response.setHeader("Access-Control-Allow-Headers", "token, Accept, Origin, X-Requested-With, Content-Type, Last-Modified"); response.setHeader("Content-type", "application/json;charset=UTF-8"); JSONObject jsonObject = new JSONObject(); - jsonObject.put("msg", e.getMessage()); jsonObject.put("code", "-1"); + jsonObject.put("msg", "璇风櫥褰曞悗閲嶆柊璇锋眰"); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); try { response.getWriter().print(jsonObject.toJSONString()); diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/dto/LoginUser.java b/src/main/java/com/genersoft/iot/vmp/conf/security/dto/LoginUser.java index 93680fd..45e03bc 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/dto/LoginUser.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/dto/LoginUser.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.conf.security.dto; +import com.genersoft.iot.vmp.storager.dao.dto.Role; import com.genersoft.iot.vmp.storager.dao.dto.User; import org.springframework.security.core.CredentialsContainer; import org.springframework.security.core.GrantedAuthority; @@ -93,8 +94,8 @@ return user.getId(); } - public int getRoleId() { - return user.getRoleId(); + public Role getRole() { + return user.getRole(); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java index e71ac05..fb1aae2 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java @@ -93,15 +93,15 @@ ListeningPoint tcpListeningPoint = null; SipProviderImpl tcpSipProvider = null; try { - tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getSipPort(), "TCP"); + tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getPort(), "TCP"); tcpSipProvider = (SipProviderImpl)sipStack.createSipProvider(tcpListeningPoint); tcpSipProvider.addSipListener(this); - logger.info("Sip Server TCP 鍚姩鎴愬姛 port {" + sipConfig.getMonitorIp() + ":" + sipConfig.getSipPort() + "}"); + logger.info("Sip Server TCP 鍚姩鎴愬姛 port {" + sipConfig.getMonitorIp() + ":" + sipConfig.getPort() + "}"); } catch (TransportNotSupportedException e) { e.printStackTrace(); } catch (InvalidArgumentException e) { logger.error("鏃犳硶浣跨敤 [ {}:{} ]浣滀负SIP[ TCP ]鏈嶅姟锛屽彲鎺掓煡: 1. sip.monitor-ip 鏄惁涓烘湰鏈虹綉鍗P; 2. sip.port 鏄惁宸茶鍗犵敤" - , sipConfig.getMonitorIp(), sipConfig.getSipPort()); + , sipConfig.getMonitorIp(), sipConfig.getPort()); } catch (TooManyListenersException e) { e.printStackTrace(); } catch (ObjectInUseException e) { @@ -116,7 +116,7 @@ ListeningPoint udpListeningPoint = null; SipProviderImpl udpSipProvider = null; try { - udpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getSipPort(), "UDP"); + udpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getPort(), "UDP"); udpSipProvider = (SipProviderImpl)sipStack.createSipProvider(udpListeningPoint); udpSipProvider.addSipListener(this); // udpSipProvider.setAutomaticDialogSupportEnabled(false); @@ -124,13 +124,13 @@ e.printStackTrace(); } catch (InvalidArgumentException e) { logger.error("鏃犳硶浣跨敤 [ {}:{} ]浣滀负SIP[ UDP ]鏈嶅姟锛屽彲鎺掓煡: 1. sip.monitor-ip 鏄惁涓烘湰鏈虹綉鍗P; 2. sip.port 鏄惁宸茶鍗犵敤" - , sipConfig.getMonitorIp(), sipConfig.getSipPort()); + , sipConfig.getMonitorIp(), sipConfig.getPort()); } catch (TooManyListenersException e) { e.printStackTrace(); } catch (ObjectInUseException e) { e.printStackTrace(); } - logger.info("Sip Server UDP 鍚姩鎴愬姛 port [" + sipConfig.getMonitorIp() + ":" + sipConfig.getSipPort() + "]"); + logger.info("Sip Server UDP 鍚姩鎴愬姛 port [" + sipConfig.getMonitorIp() + ":" + sipConfig.getPort() + "]"); return udpSipProvider; } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java index de63fa9..4ed942c 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java @@ -39,13 +39,13 @@ SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); // via ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), parentPlatform.getTransport(), viaTag); viaHeader.setRPort(); viaHeaders.add(viaHeader); // from SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), - sipConfig.getSipIp() + ":" + sipConfig.getSipPort()); + sipConfig.getIp() + ":" + sipConfig.getPort()); Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); // to @@ -75,7 +75,7 @@ public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { Request request = null; - String sipAddress = sipConfig.getSipIp() + ":" + sipConfig.getSipPort(); + String sipAddress = sipConfig.getIp() + ":" + sipConfig.getPort(); //璇锋眰琛� SipURI requestLine = sipFactory.createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerIP() + ":" + platform.getServerPort()); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java index 691bc42..160b850 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java @@ -37,16 +37,16 @@ SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); // via ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag); viaHeader.setRPort(); viaHeaders.add(viaHeader); // from - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), - sipConfig.getSipIp() + ":" + sipConfig.getSipPort()); + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), + sipConfig.getIp() + ":" + sipConfig.getPort()); Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); // to - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain()); Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); @@ -68,16 +68,16 @@ SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); //via ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag); viaHeader.setRPort(); viaHeaders.add(viaHeader); //from - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain()); + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //蹇呴』瑕佹湁鏍囪锛屽惁鍒欐棤娉曞垱寤轰細璇濓紝鏃犳硶鍥炲簲ack //to - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); @@ -88,11 +88,11 @@ CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(1L, Request.INVITE); request = sipFactory.createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); - // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort())); + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); + // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); // Subject - SubjectHeader subjectHeader = sipFactory.createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getSipId(), 0)); + SubjectHeader subjectHeader = sipFactory.createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0)); request.addHeader(subjectHeader); ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP"); request.setContent(content, contentTypeHeader); @@ -109,11 +109,11 @@ viaHeader.setRPort(); viaHeaders.add(viaHeader); //from - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain()); + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //蹇呴』瑕佹湁鏍囪锛屽惁鍒欐棤娉曞垱寤轰細璇濓紝鏃犳硶鍥炲簲ack //to - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); @@ -124,8 +124,8 @@ CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(1L, Request.INVITE); request = sipFactory.createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); - // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort())); + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); + // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP"); @@ -139,14 +139,14 @@ SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); // via ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag); + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag); viaHeaders.add(viaHeader); //from - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain()); + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //蹇呴』瑕佹湁鏍囪锛屽惁鍒欐棤娉曞垱寤轰細璇濓紝鏃犳硶鍥炲簲ack //to - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain()); Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,toTag); @@ -158,7 +158,7 @@ CallIdHeader callIdHeader = sipFactory.createHeaderFactory().createCallIdHeader(callId); request = sipFactory.createMessageFactory().createRequest(requestLine, Request.BYE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); return request; } @@ -169,17 +169,17 @@ SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); // via ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag); viaHeader.setRPort(); viaHeaders.add(viaHeader); // from - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), - sipConfig.getSipIp() + ":" + sipConfig.getSipPort()); + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), + sipConfig.getIp() + ":" + sipConfig.getPort()); Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI); FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); // to - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain()); Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); @@ -192,7 +192,7 @@ toHeader, viaHeaders, maxForwards); - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort())); + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); // Expires diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index 7947ad9..cec64cc 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -105,7 +105,7 @@ */ @Override public boolean ptzdirectCmd(Device device, String channelId, int leftRight, int upDown) { - return ptzCmd(device, channelId, leftRight, upDown, 0, sipConfig.getSpeed(), 0); + return ptzCmd(device, channelId, leftRight, upDown, 0, sipConfig.getPtzSpeed(), 0); } /** @@ -131,7 +131,7 @@ */ @Override public boolean ptzZoomCmd(Device device, String channelId, int inOut) { - return ptzCmd(device, channelId, 0, 0, inOut, 0, sipConfig.getSpeed()); + return ptzCmd(device, channelId, 0, 0, inOut, 0, sipConfig.getPtzSpeed()); } /** @@ -468,7 +468,7 @@ StringBuffer content = new StringBuffer(200); content.append("v=0\r\n"); - content.append("o="+sipConfig.getSipId()+" 0 0 IN IP4 "+sipConfig.getSipIp()+"\r\n"); + content.append("o="+sipConfig.getId()+" 0 0 IN IP4 "+sipConfig.getIp()+"\r\n"); content.append("s=Playback\r\n"); content.append("u="+channelId+":0\r\n"); content.append("c=IN IP4 "+mediaServerItem.getSdpIp()+"\r\n"); @@ -575,7 +575,7 @@ StringBuffer content = new StringBuffer(200); content.append("v=0\r\n"); - content.append("o="+sipConfig.getSipId()+" 0 0 IN IP4 "+sipConfig.getSipIp()+"\r\n"); + content.append("o="+sipConfig.getId()+" 0 0 IN IP4 "+sipConfig.getIp()+"\r\n"); content.append("s=Download\r\n"); content.append("u="+channelId+":0\r\n"); content.append("c=IN IP4 "+mediaServerItem.getSdpIp()+"\r\n"); @@ -749,7 +749,7 @@ broadcastXml.append("<Notify>\r\n"); broadcastXml.append("<CmdType>Broadcast</CmdType>\r\n"); broadcastXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); - broadcastXml.append("<SourceID>" + sipConfig.getSipId() + "</SourceID>\r\n"); + broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); broadcastXml.append("</Notify>\r\n"); @@ -774,7 +774,7 @@ broadcastXml.append("<Notify>\r\n"); broadcastXml.append("<CmdType>Broadcast</CmdType>\r\n"); broadcastXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n"); - broadcastXml.append("<SourceID>" + sipConfig.getSipId() + "</SourceID>\r\n"); + broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n"); broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n"); broadcastXml.append("</Notify>\r\n"); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java index bd7bfd5..db5f05b 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java @@ -550,7 +550,7 @@ deviceChannel.setStatus(gbStream.isStatus()?1:0); // deviceChannel.setParentId(parentPlatform.getDeviceGBId()); deviceChannel.setRegisterWay(1); - deviceChannel.setCivilCode(cmder.getSipConfig().getSipDomain()); + deviceChannel.setCivilCode(cmder.getSipConfig().getDomain()); deviceChannel.setModel("live"); deviceChannel.setOwner("wvp-pro"); // deviceChannel.setAddress("test"); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java index e5f76ae..064d023 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java @@ -79,9 +79,9 @@ // 鏍¢獙瀵嗙爜鏄惁姝g‘ if (authorhead != null) { passwordCorrect = new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request, - sipConfig.getSipPassword()); + sipConfig.getPassword()); } - if (StringUtils.isEmpty(sipConfig.getSipPassword())){ + if (StringUtils.isEmpty(sipConfig.getPassword())){ passwordCorrect = true; } @@ -94,7 +94,7 @@ logger.info("[{}] 瀵嗙爜閿欒 鍥炲401", requestAddress); } response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request); - new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getSipDomain()); + new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain()); }else { if (!passwordCorrect){ // 娉ㄥ唽澶辫触 diff --git a/src/main/java/com/genersoft/iot/vmp/service/IRoleService.java b/src/main/java/com/genersoft/iot/vmp/service/IRoleService.java new file mode 100644 index 0000000..d207c6a --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/service/IRoleService.java @@ -0,0 +1,18 @@ +package com.genersoft.iot.vmp.service; + +import com.genersoft.iot.vmp.storager.dao.dto.Role; + +import java.util.List; + +public interface IRoleService { + + Role getRoleById(int id); + + int add(Role role); + + int delete(int id); + + List<Role> getAll(); + + int update(Role role); +} diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index d928d87..3af007d 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -83,7 +83,7 @@ for (MediaServerItem mediaServerItem : mediaServerItemList) { // 鏇存柊 if (mediaServerItem.getSsrcConfig() == null) { - SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getSipDomain()); + SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain()); mediaServerItem.setSsrcConfig(ssrcConfig); redisUtil.set(VideoManagerConstants.MEDIA_SERVER_PREFIX + mediaServerItem.getId(), mediaServerItem); } @@ -145,7 +145,7 @@ */ @Override public void clearRTPServer(MediaServerItem mediaServerItem) { - mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getSipDomain())); + mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain())); redisUtil.zAdd(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX, mediaServerItem.getId(), 0); } @@ -162,7 +162,7 @@ new SsrcConfig( mediaServerItemInDataBase.getId(), null, - sipConfig.getSipDomain() + sipConfig.getDomain() ) ); } @@ -264,12 +264,12 @@ if (serverItemInRedis != null) { serverItemFromConfig.setSsrcConfig(serverItemInRedis.getSsrcConfig()); }else { - serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain())); + serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getDomain())); } redisUtil.set(key, serverItemFromConfig); }else { String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItemFromConfig.getId(); - serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain())); + serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getDomain())); redisUtil.set(key, serverItemFromConfig); mediaServerMapper.add(serverItemFromConfig); } @@ -279,11 +279,11 @@ String now = this.format.format(System.currentTimeMillis()); if (serverItem == null){ // 涓�涓柊鐨剒lm鎺ュ叆wvp - serverItem = new MediaServerItem(zlmServerConfig, sipConfig.getSipIp()); + serverItem = new MediaServerItem(zlmServerConfig, sipConfig.getIp()); serverItem.setCreateTime(now); serverItem.setUpdateTime(now); String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItem.getId(); - serverItem.setSsrcConfig(new SsrcConfig(serverItem.getId(), null, sipConfig.getSipDomain())); + serverItem.setSsrcConfig(new SsrcConfig(serverItem.getId(), null, sipConfig.getDomain())); redisUtil.set(key, serverItem); // 瀛樺叆鏁版嵁搴� mediaServerMapper.add(serverItem); diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/RoleServerImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/RoleServerImpl.java new file mode 100644 index 0000000..d31bbce --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/RoleServerImpl.java @@ -0,0 +1,41 @@ +package com.genersoft.iot.vmp.service.impl; + +import com.genersoft.iot.vmp.service.IRoleService; +import com.genersoft.iot.vmp.storager.dao.RoleMapper; +import com.genersoft.iot.vmp.storager.dao.dto.Role; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class RoleServerImpl implements IRoleService { + + @Autowired + private RoleMapper roleMapper; + + @Override + public Role getRoleById(int id) { + return roleMapper.selectById(id); + } + + @Override + public int add(Role role) { + return roleMapper.add(role); + } + + @Override + public int delete(int id) { + return roleMapper.delete(id); + } + + @Override + public List<Role> getAll() { + return roleMapper.selectAll(); + } + + @Override + public int update(Role role) { + return roleMapper.update(role); + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/RoleMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/RoleMapper.java new file mode 100644 index 0000000..be20a69 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/RoleMapper.java @@ -0,0 +1,35 @@ +package com.genersoft.iot.vmp.storager.dao; + +import com.genersoft.iot.vmp.storager.dao.dto.Role; +import com.genersoft.iot.vmp.storager.dao.dto.User; +import org.apache.ibatis.annotations.*; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface RoleMapper { + + @Insert("INSERT INTO role (name, authority, createTime, updateTime) VALUES" + + "('${name}', '${authority}', '${createTime}', '${updateTime}')") + int add(Role role); + + @Update(value = {" <script>" + + "UPDATE role " + + "SET updateTime='${updateTime}' " + + "<if test=\"name != null\">, name='${name}'</if>" + + "<if test=\"authority != null\">, authority='${authority}'</if>" + + "WHERE id != 1 and id=#{id}" + + " </script>"}) + int update(Role role); + + @Delete("DELETE FROM role WHERE id != 1 and id=#{id}") + int delete(int id); + + @Select("select * FROM role WHERE id=#{id}") + Role selectById(int id); + + @Select("select * FROM role") + List<Role> selectAll(); +} diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java index e217632..7eb71e6 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java @@ -10,32 +10,42 @@ @Repository public interface UserMapper { - @Insert("INSERT INTO user (username, password, roleId, create_time, update_time) VALUES" + - "('${username}', '${password}', '${roleId}', '${createTime}', '${updateTime}')") + @Insert("INSERT INTO user (username, password, roleId, createTime, updateTime) VALUES" + + "('${username}', '${password}', '${role.id}', '${createTime}', '${updateTime}')") int add(User user); @Update(value = {" <script>" + "UPDATE user " + - "SET update_time='${updateTime}' " + - "<if test=\"roleId != null\">, roleId='${roleId}'</if>" + + "SET updateTime='${updateTime}' " + + "<if test=\"role != null\">, roleId='${role.id}'</if>" + "<if test=\"password != null\">, password='${password}'</if>" + "<if test=\"username != null\">, username='${username}'</if>" + "WHERE id=#{id}" + " </script>"}) int update(User user); - @Delete("DELETE FROM user WHERE id=#{id}") + @Delete("DELETE FROM user WHERE id != 1 and id=#{id}") int delete(int id); - @Select("select * FROM user WHERE username=#{username} AND password=#{password}") + @Select("select user.*, role.id roleID, role.name roleName, role.authority roleAuthority , role.createTime roleCreateTime , role.updateTime roleUpdateTime FROM user, role WHERE user.roleId=role.id and user.username=#{username} AND user.password=#{password}") + @Results(id = "roleMap", value = { + @Result(column = "roleID", property = "role.id"), + @Result(column = "roleName", property = "role.name"), + @Result(column = "roleAuthority", property = "role.authority"), + @Result(column = "roleCreateTime", property = "role.createTime"), + @Result(column = "roleUpdateTime", property = "role.updateTime") + }) User select(String username, String password); - @Select("select * FROM user WHERE id=#{id}") + @Select("select user.*, role.id roleID, role.name roleName, role.authority roleAuthority, role.createTime roleCreateTime , role.updateTime roleUpdateTime FROM user, role WHERE user.roleId=role.id and user.id=#{id}") + @ResultMap(value="roleMap") User selectById(int id); - @Select("select * FROM user WHERE username=#{username}") + @Select("select user.*, role.id roleID, role.name roleName, role.authority roleAuthority, role.createTime roleCreateTime , role.updateTime roleUpdateTime FROM user, role WHERE user.roleId=role.id and username=#{username}") + @ResultMap(value="roleMap") User getUserByUsername(String username); - @Select("select * FROM user") + @Select("select user.*, role.id roleID, role.name roleName, role.authority roleAuthority, role.createTime roleCreateTime , role.updateTime roleUpdateTime FROM user, role WHERE user.roleId=role.id") + @ResultMap(value="roleMap") List<User> selectAll(); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/Role.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/Role.java new file mode 100644 index 0000000..44631f8 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/Role.java @@ -0,0 +1,50 @@ +package com.genersoft.iot.vmp.storager.dao.dto; + +public class Role { + + private int id; + private String name; + private String authority; + private String createTime; + private String updateTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAuthority() { + return authority; + } + + public void setAuthority(String authority) { + this.authority = authority; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/User.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/User.java index b4a0289..950a8ca 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/User.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/dto/User.java @@ -7,7 +7,7 @@ private String password; private String createTime; private String updateTime; - private int roleId; + private Role role; public int getId() { return id; @@ -41,14 +41,6 @@ this.createTime = createTime; } - public int getRoleId() { - return roleId; - } - - public void setRoleId(int roleId) { - this.roleId = roleId; - } - public String getUpdateTime() { return updateTime; } @@ -56,4 +48,12 @@ public void setUpdateTime(String updateTime) { this.updateTime = updateTime; } + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java index 84431dd..1a0a9b7 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java @@ -52,10 +52,10 @@ @GetMapping("/server_config") public ResponseEntity<JSONObject> serverConfig() { JSONObject result = new JSONObject(); - result.put("deviceIp", sipConfig.getSipIp()); - result.put("devicePort", sipConfig.getSipPort()); - result.put("username", sipConfig.getSipId()); - result.put("password", sipConfig.getSipPassword()); + result.put("deviceIp", sipConfig.getIp()); + result.put("devicePort", sipConfig.getPort()); + result.put("username", sipConfig.getId()); + result.put("password", sipConfig.getPassword()); return new ResponseEntity<>(result, HttpStatus.OK); } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java index 6dfb569..650dbe0 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java @@ -1,5 +1,7 @@ package com.genersoft.iot.vmp.vmanager.log; +import com.genersoft.iot.vmp.conf.UserSetup; +import com.genersoft.iot.vmp.media.zlm.ZLMRunner; import com.genersoft.iot.vmp.service.ILogService; import com.genersoft.iot.vmp.storager.dao.dto.LogDto; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; @@ -8,6 +10,8 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -23,8 +27,13 @@ @RequestMapping("/api/log") public class LogController { + private final static Logger logger = LoggerFactory.getLogger(LogController.class); + @Autowired private ILogService logService; + + @Autowired + private UserSetup userSetup; private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -60,7 +69,9 @@ if (StringUtils.isEmpty(query)) query = null; if (StringUtils.isEmpty(startTime)) startTime = null; if (StringUtils.isEmpty(endTime)) endTime = null; - + if (!userSetup.getLogInDatebase()) { + logger.warn("鑷姩璁板綍鏃ュ織鍔熻兘宸插叧闂紝鏌ヨ缁撴灉鍙兘涓嶅畬鏁淬��"); + } try { if (startTime != null) format.parse(startTime); diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java index 4b7adc6..3bfa595 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java @@ -1,7 +1,11 @@ package com.genersoft.iot.vmp.vmanager.server; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.VManageBootstrap; import com.genersoft.iot.vmp.common.VersionPo; +import com.genersoft.iot.vmp.conf.SipConfig; +import com.genersoft.iot.vmp.conf.UserSetup; import com.genersoft.iot.vmp.conf.VersionInfo; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.service.IMediaServerService; @@ -9,9 +13,13 @@ import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import gov.nist.javax.sip.SipStackImpl; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.sip.ListeningPoint; @@ -35,6 +43,15 @@ @Autowired VersionInfo versionInfo; + + @Autowired + SipConfig sipConfig; + + @Autowired + UserSetup userSetup; + + @Value("${server.port}") + private int serverPort; @ApiOperation("娴佸獟浣撴湇鍔″垪琛�") @@ -113,4 +130,34 @@ result.setData(versionInfo.getVersion()); return result; } + + @ApiOperation("閰嶇疆淇℃伅") + @GetMapping(value = "/config") + @ApiImplicitParams({ + @ApiImplicitParam(name="type", value = "閰嶇疆绫诲瀷锛坰ip, base锛�", dataTypeClass = String.class), + }) + @ResponseBody + public WVPResult<JSONObject> getVersion(String type){ + WVPResult<JSONObject> result = new WVPResult<>(); + result.setCode(0); + result.setMsg("success"); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("server.port", serverPort); + if (StringUtils.isEmpty(type)) { + jsonObject.put("sip", JSON.toJSON(sipConfig)); + jsonObject.put("base", JSON.toJSON(userSetup)); + }else { + switch (type){ + case "sip": + jsonObject.put("sip", sipConfig); + break; + case "base": + jsonObject.put("base", userSetup); + break; + } + } + result.setData(jsonObject); + return result; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java new file mode 100644 index 0000000..6a75e1d --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java @@ -0,0 +1,101 @@ +package com.genersoft.iot.vmp.vmanager.user; + +import com.genersoft.iot.vmp.conf.security.SecurityUtils; +import com.genersoft.iot.vmp.service.IRoleService; +import com.genersoft.iot.vmp.service.IUserService; +import com.genersoft.iot.vmp.storager.dao.dto.Role; +import com.genersoft.iot.vmp.storager.dao.dto.User; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.util.DigestUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.text.SimpleDateFormat; +import java.util.List; + +@Api(tags = "瑙掕壊绠$悊") +@CrossOrigin +@RestController +@RequestMapping("/api/role") +public class RoleController { + + @Autowired + private IRoleService roleService; + + private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @ApiOperation("娣诲姞瑙掕壊") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", required = true, value = "瑙掕壊鍚�", dataTypeClass = String.class), + @ApiImplicitParam(name = "authority", required = true, value = "鏉冮檺锛堣嚜琛屽畾涔夊唴瀹癸紝鐩墠鏈娇鐢級", dataTypeClass = String.class), + }) + @PostMapping("/add") + public ResponseEntity<WVPResult<Integer>> add(@RequestParam String name, + @RequestParam(required = false) String authority){ + WVPResult<Integer> result = new WVPResult<>(); + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId(); + if (currenRoleId != 1) { + // 鍙敤瑙掕壊id涓�1鎵嶅彲浠ュ垹闄ゅ拰娣诲姞鐢ㄦ埛 + result.setCode(-1); + result.setMsg("鐢ㄦ埛鏃犳潈闄�"); + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN); + } + + Role role = new Role(); + role.setName(name); + role.setAuthority(authority); + role.setCreateTime(format.format(System.currentTimeMillis())); + role.setUpdateTime(format.format(System.currentTimeMillis())); + + int addResult = roleService.add(role); + + result.setCode(addResult > 0 ? 0 : -1); + result.setMsg(addResult > 0 ? "success" : "fail"); + result.setData(addResult); + return new ResponseEntity<>(result, HttpStatus.OK); + } + + @ApiOperation("鍒犻櫎瑙掕壊") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", required = true, value = "鐢ㄦ埛Id", dataTypeClass = Integer.class), + }) + @DeleteMapping("/delete") + public ResponseEntity<WVPResult<String>> delete(@RequestParam Integer id){ + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId(); + WVPResult<String> result = new WVPResult<>(); + if (currenRoleId != 1) { + // 鍙敤瑙掕壊id涓�0鎵嶅彲浠ュ垹闄ゅ拰娣诲姞鐢ㄦ埛 + result.setCode(-1); + result.setMsg("鐢ㄦ埛鏃犳潈闄�"); + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN); + } + int deleteResult = roleService.delete(id); + + result.setCode(deleteResult>0? 0 : -1); + result.setMsg(deleteResult>0? "success" : "fail"); + return new ResponseEntity<>(result, HttpStatus.OK); + } + + @ApiOperation("鏌ヨ瑙掕壊") + @ApiImplicitParams({}) + @GetMapping("/all") + public ResponseEntity<WVPResult<List<Role>>> all(){ + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id + List<Role> allRoles = roleService.getAll(); + WVPResult<List<Role>> result = new WVPResult<>(); + result.setCode(0); + result.setMsg("success"); + result.setData(allRoles); + return new ResponseEntity<>(result, HttpStatus.OK); + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java index 6e4c416..756fecd 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java @@ -2,7 +2,9 @@ import com.genersoft.iot.vmp.conf.security.SecurityUtils; import com.genersoft.iot.vmp.conf.security.dto.LoginUser; +import com.genersoft.iot.vmp.service.IRoleService; import com.genersoft.iot.vmp.service.IUserService; +import com.genersoft.iot.vmp.storager.dao.dto.Role; import com.genersoft.iot.vmp.storager.dao.dto.User; import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import io.swagger.annotations.Api; @@ -14,6 +16,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.util.DigestUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.security.sasl.AuthenticationException; @@ -31,6 +34,9 @@ @Autowired private IUserService userService; + + @Autowired + private IRoleService roleService; private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -97,21 +103,38 @@ @PostMapping("/add") public ResponseEntity<WVPResult<Integer>> add(@RequestParam String username, @RequestParam String password, - @RequestParam int roleId){ + @RequestParam Integer roleId){ + WVPResult<Integer> result = new WVPResult<>(); + if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password) || roleId == null) { + result.setCode(-1); + result.setMsg("鍙傛暟涓嶅彲涓虹┖"); + return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); + } // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id - int currenRoleId = SecurityUtils.getUserInfo().getRoleId(); - if (currenRoleId != 0) { - // 鍙敤瑙掕壊id涓�0鎵嶅彲浠ュ垹闄ゅ拰娣诲姞鐢ㄦ埛 - return new ResponseEntity<>(null, HttpStatus.FORBIDDEN); + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId(); + if (currenRoleId != 1) { + // 鍙敤瑙掕壊id涓�1鎵嶅彲浠ュ垹闄ゅ拰娣诲姞鐢ㄦ埛 + result.setCode(-1); + result.setMsg("鐢ㄦ埛鏃犳潈闄�"); + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN); } User user = new User(); user.setUsername(username); user.setPassword(DigestUtils.md5DigestAsHex(password.getBytes())); - user.setRoleId(roleId); + + Role role = roleService.getRoleById(roleId); + + if (role == null) { + result.setCode(-1); + result.setMsg("roleId is not found"); + // 瑙掕壊涓嶅瓨鍦� + return new ResponseEntity<>(result, HttpStatus.OK); + } + user.setRole(role); user.setCreateTime(format.format(System.currentTimeMillis())); user.setUpdateTime(format.format(System.currentTimeMillis())); int addResult = userService.addUser(user); - WVPResult<Integer> result = new WVPResult<>(); + result.setCode(addResult > 0 ? 0 : -1); result.setMsg(addResult > 0 ? "success" : "fail"); result.setData(addResult); @@ -125,13 +148,16 @@ @DeleteMapping("/delete") public ResponseEntity<WVPResult<String>> delete(@RequestParam Integer id){ // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id - int currenRoleId = SecurityUtils.getUserInfo().getRoleId(); - if (currenRoleId != 0) { + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId(); + WVPResult<String> result = new WVPResult<>(); + if (currenRoleId != 1) { // 鍙敤瑙掕壊id涓�0鎵嶅彲浠ュ垹闄ゅ拰娣诲姞鐢ㄦ埛 - return new ResponseEntity<>(null, HttpStatus.FORBIDDEN); + result.setCode(-1); + result.setMsg("鐢ㄦ埛鏃犳潈闄�"); + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN); } int deleteResult = userService.deleteUser(id); - WVPResult<String> result = new WVPResult<>(); + result.setCode(deleteResult>0? 0 : -1); result.setMsg(deleteResult>0? "success" : "fail"); return new ResponseEntity<>(result, HttpStatus.OK); diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiController.java index 8035810..cafa40c 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/ApiController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/ApiController.java @@ -38,10 +38,10 @@ result.put("ServerTime","2020-09-02 17锛�11"); result.put("StartUpTime","2020-09-02 17锛�11"); result.put("Server",""); - result.put("SIPSerial", sipConfig.getSipId()); - result.put("SIPRealm", sipConfig.getSipDomain()); - result.put("SIPHost", sipConfig.getSipIp()); - result.put("SIPPort", sipConfig.getSipPort()); + result.put("SIPSerial", sipConfig.getId()); + result.put("SIPRealm", sipConfig.getDomain()); + result.put("SIPHost", sipConfig.getIp()); + result.put("SIPPort", sipConfig.getPort()); result.put("ChannelCount","1000"); result.put("VersionType",""); result.put("LogoMiniText",""); @@ -65,10 +65,10 @@ // result.put("ServerTime","2020-09-02 17锛�11"); // result.put("StartUpTime","2020-09-02 17锛�11"); // result.put("Server",""); -// result.put("SIPSerial", sipConfig.getSipId()); -// result.put("SIPRealm", sipConfig.getSipDomain()); -// result.put("SIPHost", sipConfig.getSipIp()); -// result.put("SIPPort", sipConfig.getSipPort()); +// result.put("SIPSerial", sipConfig.getId()); +// result.put("SIPRealm", sipConfig.getDomain()); +// result.put("SIPHost", sipConfig.getIp()); +// result.put("SIPPort", sipConfig.getPort()); // result.put("ChannelCount","1000"); // result.put("VersionType",""); // result.put("LogoMiniText",""); diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml index 140ef0a..856d6c5 100644 --- a/src/main/resources/all-application.yml +++ b/src/main/resources/all-application.yml @@ -76,6 +76,8 @@ keepalive-timeout: 180 # [鍙�塢 鍥芥爣绾ц仈娉ㄥ唽澶辫触锛屽啀娆″彂璧锋敞鍐岀殑鏃堕棿闂撮殧銆� 榛樿60绉� register-time-interval: 60 + # [鍙�塢 浜戝彴鎺у埗閫熷害 + ptz-speed: 50 # TODO [鍙�塢 鏀跺埌蹇冭烦鍚庤嚜鍔ㄤ笂绾匡紝 閲嶅惎鏈嶅姟鍚庝細灏嗘墍鏈夎澶囩疆涓虹绾匡紝榛樿false锛岀瓑寰呮敞鍐屽悗涓婄嚎銆傝缃负true鍒欐敹鍒板績璺宠缃负涓婄嚎銆� # keepalliveToOnline: false @@ -155,4 +157,10 @@ # 鍦ㄧ嚎鏂囨。锛� swagger-ui锛堢敓浜х幆澧冨缓璁叧闂級 swagger-ui: - enabled: true \ No newline at end of file + enabled: true + +# 鐗堟湰淇℃伅锛� 涓嶉渶淇敼 +version: + version: "@project.version@" + description: "@project.description@" + artifact-id: "@project.artifactId@" \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index f0cb8f8..3d25098 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -85,4 +85,10 @@ # 鍦ㄧ嚎鏂囨。锛� swagger-ui锛堢敓浜х幆澧冨缓璁叧闂級 swagger-ui: - enabled: true \ No newline at end of file + enabled: true + +# 鐗堟湰淇℃伅锛� 涓嶉渶淇敼 +version: + version: "@project.version@" + description: "@project.description@" + artifact-id: "@project.artifactId@" \ No newline at end of file diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt index 5cf57a5..0c7250d 100644 --- a/src/main/resources/banner.txt +++ b/src/main/resources/banner.txt @@ -6,3 +6,4 @@ \ \____________\ \__/ / \ \__\ \ \__\ \ \__\\ _\\ \_______\ \|____________|\|__|/ \|__| \|__| \|__|\|__|\|_______| +鐗堟湰锛�${version.version} \ No newline at end of file diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite index 908d585..228a96a 100644 --- a/src/main/resources/wvp.sqlite +++ b/src/main/resources/wvp.sqlite Binary files differ diff --git a/src/test/java/com/genersoft/iot/vmp/service/impl/RoleServiceImplTest.java b/src/test/java/com/genersoft/iot/vmp/service/impl/RoleServiceImplTest.java new file mode 100644 index 0000000..20209f2 --- /dev/null +++ b/src/test/java/com/genersoft/iot/vmp/service/impl/RoleServiceImplTest.java @@ -0,0 +1,58 @@ +package com.genersoft.iot.vmp.service.impl; + +import com.genersoft.iot.vmp.service.IRoleService; +import com.genersoft.iot.vmp.service.IUserService; +import com.genersoft.iot.vmp.storager.dao.dto.Role; +import com.genersoft.iot.vmp.storager.dao.dto.User; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.List; + + +@SpringBootTest +@RunWith(SpringRunner.class) +class RoleServiceImplTest { + + @Resource + private IRoleService roleService; + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + @org.junit.jupiter.api.Test + void getAllUser() { + List<Role> all = roleService.getAll(); + Role roleById = roleService.getRoleById(1); + System.out.println(); + + } + + + @org.junit.jupiter.api.Test + void add() { + for (int i = 0; i < 10; i++) { + Role role = new Role(); + role.setName("test+" + i); + role.setAuthority("adadadda"); + role.setCreateTime(format.format(System.currentTimeMillis())); + role.setUpdateTime(format.format(System.currentTimeMillis())); + roleService.add(role); + } + } + + @org.junit.jupiter.api.Test + void delete() { + roleService.delete(20); + } + + @org.junit.jupiter.api.Test + void update() { + Role role = new Role(); + role.setId(21); + role.setName("TTTTTT"); + role.setAuthority("adadadda"); + roleService.update(role); + } +} \ No newline at end of file diff --git a/src/test/java/com/genersoft/iot/vmp/service/impl/UserServiceImplTest.java b/src/test/java/com/genersoft/iot/vmp/service/impl/UserServiceImplTest.java index eea7f04..9e3c672 100644 --- a/src/test/java/com/genersoft/iot/vmp/service/impl/UserServiceImplTest.java +++ b/src/test/java/com/genersoft/iot/vmp/service/impl/UserServiceImplTest.java @@ -3,6 +3,7 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm; import com.genersoft.iot.vmp.service.IDeviceAlarmService; import com.genersoft.iot.vmp.service.IUserService; +import com.genersoft.iot.vmp.storager.dao.dto.Role; import com.genersoft.iot.vmp.storager.dao.dto.User; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; @@ -11,6 +12,7 @@ import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; @SpringBootTest @@ -24,7 +26,11 @@ @org.junit.jupiter.api.Test void getAllUser() { + List<User> allUsers = userService.getAllUsers(); System.out.println(userService.getAllUsers().size()); + User admin = userService.getUser("admin", "21232f297a57a5a743894a0e4a801fc3"); + User admin1 = userService.getUserByUsername("admin"); + System.out.println(12); } @@ -34,7 +40,10 @@ User user = new User(); user.setUsername("admin_" + i); user.setPassword("admin_password_" + i); - user.setRoleId((int)(Math.random()*4 + 1)); + + Role role = new Role(); + role.setId(1); + user.setRole(role); user.setCreateTime(format.format(System.currentTimeMillis())); user.setUpdateTime(format.format(System.currentTimeMillis())); userService.addUser(user); @@ -49,10 +58,12 @@ @org.junit.jupiter.api.Test void update() { User user = new User(); - user.setId(1003); + user.setId(11); user.setUsername("update" ); user.setPassword("update"); - user.setRoleId((int)(Math.random()*4 + 1)); + Role role = new Role(); + role.setId(2); + user.setRole(role); user.setUpdateTime(format.format(System.currentTimeMillis())); userService.updateUsers(user); } -- Gitblit v1.8.0