Commit 9e8cab609d32a5f2143a726a26437cc4d7b8c8da

Authored by 648540858
1 parent dbc525e8

添加角色相关的接口,用户信息添加角色信息

Showing 29 changed files with 598 additions and 134 deletions
sql/mysql.sql
... ... @@ -227,12 +227,22 @@ create table user
227 227 username varchar(255) not null,
228 228 password varchar(255) not null,
229 229 roleId int not null,
230   - create_time varchar(50) not null,
231   - update_time varchar(50) not null
  230 + createTime varchar(50) not null,
  231 + updateTime varchar(50) not null
232 232 );
233 233  
234 234 create unique index user_username_uindex
235 235 on user (username);
236 236  
237   -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');
  237 +insert into user (username, password, roleId, createTime, updateTime) values ('admin', '21232f297a57a5a743894a0e4a801fc3', '1', '2021-04-13 14:14:57', '2021-04-13 14:14:57');
  238 +
  239 +create table role (
  240 + id int auto_increment
  241 + primary key,
  242 + name TEXT NOT NULL,
  243 + authority TEXT NOT NULL,
  244 + createTime varchar(50) not null,
  245 + updateTime varchar(50) not null
  246 +);
  247 +insert into role (id, name, authority, createTime, updateTime) values ('1', 'admin', '0', '2021-04-13 14:14:57', '2021-04-13 14:14:57');
238 248  
... ...
src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java
... ... @@ -2,71 +2,101 @@ package com.genersoft.iot.vmp.conf;
2 2  
3 3  
4 4 import org.springframework.beans.factory.annotation.Value;
  5 +import org.springframework.boot.context.properties.ConfigurationProperties;
5 6 import org.springframework.context.annotation.Configuration;
  7 +import org.springframework.stereotype.Component;
6 8  
7   -@Configuration("sipConfig")
  9 +@Component
  10 +@ConfigurationProperties(prefix = "sip", ignoreInvalidFields = true)
8 11 public class SipConfig {
9 12  
10   - @Value("${sip.ip}")
11   - private String sipIp;
  13 + private String ip;
12 14  
13 15 /**
14   - * 默认使用sip.ip
  16 + * 默认使用 0.0.0.0
15 17 */
16   - @Value("${sip.monitor-ip:0.0.0.0}")
17   - private String monitorIp;
  18 + private String monitorIp = "0.0.0.0";
18 19  
19   - @Value("${sip.port}")
20   - private Integer sipPort;
  20 + private Integer port;
21 21  
22   - @Value("${sip.domain}")
23   - private String sipDomain;
  22 + private String domain;
24 23  
25   - @Value("${sip.id}")
26   - private String sipId;
  24 + private String id;
27 25  
28   - @Value("${sip.password}")
29   - private String sipPassword;
  26 + private String password;
30 27  
31   - @Value("${sip.ptz.speed:50}")
32   - Integer speed;
  28 + Integer ptzSpeed = 50;
33 29  
34   - @Value("${sip.keepalive-timeout:180}")
35   - Integer keepaliveTimeOut;
  30 + Integer keepaliveTimeOut = 180;
36 31  
37   - @Value("${sip.register-time-interval:60}")
38   - Integer registerTimeInterval;
  32 + Integer registerTimeInterval = 60;
  33 +
  34 + public void setIp(String ip) {
  35 + this.ip = ip;
  36 + }
  37 +
  38 + public void setMonitorIp(String monitorIp) {
  39 + this.monitorIp = monitorIp;
  40 + }
  41 +
  42 + public void setPort(Integer port) {
  43 + this.port = port;
  44 + }
  45 +
  46 + public void setDomain(String domain) {
  47 + this.domain = domain;
  48 + }
  49 +
  50 + public void setId(String id) {
  51 + this.id = id;
  52 + }
  53 +
  54 + public void setPassword(String password) {
  55 + this.password = password;
  56 + }
  57 +
  58 + public void setPtzSpeed(Integer ptzSpeed) {
  59 + this.ptzSpeed = ptzSpeed;
  60 + }
  61 +
  62 + public void setKeepaliveTimeOut(Integer keepaliveTimeOut) {
  63 + this.keepaliveTimeOut = keepaliveTimeOut;
  64 + }
  65 +
  66 + public void setRegisterTimeInterval(Integer registerTimeInterval) {
  67 + this.registerTimeInterval = registerTimeInterval;
  68 + }
39 69  
40 70 public String getMonitorIp() {
41 71 return monitorIp;
42 72 }
43 73  
44   - public String getSipIp() {
45   - return sipIp;
  74 + public String getIp() {
  75 + return ip;
46 76 }
47 77  
48 78  
49   - public Integer getSipPort() {
50   - return sipPort;
  79 + public Integer getPort() {
  80 + return port;
51 81 }
52 82  
53 83  
54   - public String getSipDomain() {
55   - return sipDomain;
  84 + public String getDomain() {
  85 + return domain;
56 86 }
57 87  
58 88  
59   - public String getSipId() {
60   - return sipId;
  89 + public String getId() {
  90 + return id;
61 91 }
62 92  
63   - public String getSipPassword() {
64   - return sipPassword;
  93 + public String getPassword() {
  94 + return password;
65 95 }
66 96  
67 97  
68   - public Integer getSpeed() {
69   - return speed;
  98 + public Integer getPtzSpeed() {
  99 + return ptzSpeed;
70 100 }
71 101  
72 102 public Integer getKeepaliveTimeOut() {
... ...
src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java
... ... @@ -28,8 +28,8 @@ public class AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoi
28 28 response.setHeader("Access-Control-Allow-Headers", "token, Accept, Origin, X-Requested-With, Content-Type, Last-Modified");
29 29 response.setHeader("Content-type", "application/json;charset=UTF-8");
30 30 JSONObject jsonObject = new JSONObject();
31   - jsonObject.put("msg", e.getMessage());
32 31 jsonObject.put("code", "-1");
  32 + jsonObject.put("msg", "请登录后重新请求");
33 33 response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
34 34 try {
35 35 response.getWriter().print(jsonObject.toJSONString());
... ...
src/main/java/com/genersoft/iot/vmp/conf/security/dto/LoginUser.java
1 1 package com.genersoft.iot.vmp.conf.security.dto;
2 2  
  3 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
3 4 import com.genersoft.iot.vmp.storager.dao.dto.User;
4 5 import org.springframework.security.core.CredentialsContainer;
5 6 import org.springframework.security.core.GrantedAuthority;
... ... @@ -93,8 +94,8 @@ public class LoginUser implements UserDetails, CredentialsContainer {
93 94 return user.getId();
94 95 }
95 96  
96   - public int getRoleId() {
97   - return user.getRoleId();
  97 + public Role getRole() {
  98 + return user.getRole();
98 99 }
99 100  
100 101  
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
... ... @@ -93,15 +93,15 @@ public class SipLayer implements SipListener {
93 93 ListeningPoint tcpListeningPoint = null;
94 94 SipProviderImpl tcpSipProvider = null;
95 95 try {
96   - tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getSipPort(), "TCP");
  96 + tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getPort(), "TCP");
97 97 tcpSipProvider = (SipProviderImpl)sipStack.createSipProvider(tcpListeningPoint);
98 98 tcpSipProvider.addSipListener(this);
99   - logger.info("Sip Server TCP 启动成功 port {" + sipConfig.getMonitorIp() + ":" + sipConfig.getSipPort() + "}");
  99 + logger.info("Sip Server TCP 启动成功 port {" + sipConfig.getMonitorIp() + ":" + sipConfig.getPort() + "}");
100 100 } catch (TransportNotSupportedException e) {
101 101 e.printStackTrace();
102 102 } catch (InvalidArgumentException e) {
103 103 logger.error("无法使用 [ {}:{} ]作为SIP[ TCP ]服务,可排查: 1. sip.monitor-ip 是否为本机网卡IP; 2. sip.port 是否已被占用"
104   - , sipConfig.getMonitorIp(), sipConfig.getSipPort());
  104 + , sipConfig.getMonitorIp(), sipConfig.getPort());
105 105 } catch (TooManyListenersException e) {
106 106 e.printStackTrace();
107 107 } catch (ObjectInUseException e) {
... ... @@ -116,7 +116,7 @@ public class SipLayer implements SipListener {
116 116 ListeningPoint udpListeningPoint = null;
117 117 SipProviderImpl udpSipProvider = null;
118 118 try {
119   - udpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getSipPort(), "UDP");
  119 + udpListeningPoint = sipStack.createListeningPoint(sipConfig.getMonitorIp(), sipConfig.getPort(), "UDP");
120 120 udpSipProvider = (SipProviderImpl)sipStack.createSipProvider(udpListeningPoint);
121 121 udpSipProvider.addSipListener(this);
122 122 // udpSipProvider.setAutomaticDialogSupportEnabled(false);
... ... @@ -124,13 +124,13 @@ public class SipLayer implements SipListener {
124 124 e.printStackTrace();
125 125 } catch (InvalidArgumentException e) {
126 126 logger.error("无法使用 [ {}:{} ]作为SIP[ UDP ]服务,可排查: 1. sip.monitor-ip 是否为本机网卡IP; 2. sip.port 是否已被占用"
127   - , sipConfig.getMonitorIp(), sipConfig.getSipPort());
  127 + , sipConfig.getMonitorIp(), sipConfig.getPort());
128 128 } catch (TooManyListenersException e) {
129 129 e.printStackTrace();
130 130 } catch (ObjectInUseException e) {
131 131 e.printStackTrace();
132 132 }
133   - logger.info("Sip Server UDP 启动成功 port [" + sipConfig.getMonitorIp() + ":" + sipConfig.getSipPort() + "]");
  133 + logger.info("Sip Server UDP 启动成功 port [" + sipConfig.getMonitorIp() + ":" + sipConfig.getPort() + "]");
134 134 return udpSipProvider;
135 135 }
136 136  
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
... ... @@ -39,13 +39,13 @@ public class SIPRequestHeaderPlarformProvider {
39 39 SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort());
40 40 // via
41 41 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
42   - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(),
  42 + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(),
43 43 parentPlatform.getTransport(), viaTag);
44 44 viaHeader.setRPort();
45 45 viaHeaders.add(viaHeader);
46 46 // from
47 47 SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(),
48   - sipConfig.getSipIp() + ":" + sipConfig.getSipPort());
  48 + sipConfig.getIp() + ":" + sipConfig.getPort());
49 49 Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI);
50 50 FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag);
51 51 // to
... ... @@ -75,7 +75,7 @@ public class SIPRequestHeaderPlarformProvider {
75 75  
76 76 public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException {
77 77 Request request = null;
78   - String sipAddress = sipConfig.getSipIp() + ":" + sipConfig.getSipPort();
  78 + String sipAddress = sipConfig.getIp() + ":" + sipConfig.getPort();
79 79 //请求行
80 80 SipURI requestLine = sipFactory.createAddressFactory().createSipURI(platform.getServerGBId(),
81 81 platform.getServerIP() + ":" + platform.getServerPort());
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
... ... @@ -37,16 +37,16 @@ public class SIPRequestHeaderProvider {
37 37 SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
38 38 // via
39 39 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
40   - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag);
  40 + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag);
41 41 viaHeader.setRPort();
42 42 viaHeaders.add(viaHeader);
43 43 // from
44   - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),
45   - sipConfig.getSipIp() + ":" + sipConfig.getSipPort());
  44 + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),
  45 + sipConfig.getIp() + ":" + sipConfig.getPort());
46 46 Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI);
47 47 FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag);
48 48 // to
49   - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain());
  49 + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain());
50 50 Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI);
51 51 ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag);
52 52  
... ... @@ -68,16 +68,16 @@ public class SIPRequestHeaderProvider {
68 68 SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress());
69 69 //via
70 70 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
71   - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag);
  71 + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag);
72 72 viaHeader.setRPort();
73 73 viaHeaders.add(viaHeader);
74 74  
75 75 //from
76   - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain());
  76 + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
77 77 Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI);
78 78 FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
79 79 //to
80   - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain());
  80 + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain());
81 81 Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI);
82 82 ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null);
83 83  
... ... @@ -88,11 +88,11 @@ public class SIPRequestHeaderProvider {
88 88 CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(1L, Request.INVITE);
89 89 request = sipFactory.createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
90 90  
91   - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort()));
92   - // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort()));
  91 + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort()));
  92 + // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort()));
93 93 request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress));
94 94 // Subject
95   - SubjectHeader subjectHeader = sipFactory.createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getSipId(), 0));
  95 + SubjectHeader subjectHeader = sipFactory.createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0));
96 96 request.addHeader(subjectHeader);
97 97 ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
98 98 request.setContent(content, contentTypeHeader);
... ... @@ -109,11 +109,11 @@ public class SIPRequestHeaderProvider {
109 109 viaHeader.setRPort();
110 110 viaHeaders.add(viaHeader);
111 111 //from
112   - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain());
  112 + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
113 113 Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI);
114 114 FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
115 115 //to
116   - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain());
  116 + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain());
117 117 Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI);
118 118 ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null);
119 119  
... ... @@ -124,8 +124,8 @@ public class SIPRequestHeaderProvider {
124 124 CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(1L, Request.INVITE);
125 125 request = sipFactory.createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
126 126  
127   - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort()));
128   - // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), device.getHost().getIp()+":"+device.getHost().getPort()));
  127 + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort()));
  128 + // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort()));
129 129 request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress));
130 130  
131 131 ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
... ... @@ -139,14 +139,14 @@ public class SIPRequestHeaderProvider {
139 139 SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress());
140 140 // via
141 141 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
142   - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), device.getTransport(), viaTag);
  142 + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(), device.getTransport(), viaTag);
143 143 viaHeaders.add(viaHeader);
144 144 //from
145   - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),sipConfig.getSipDomain());
  145 + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain());
146 146 Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI);
147 147 FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag); //必须要有标记,否则无法创建会话,无法回应ack
148 148 //to
149   - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain());
  149 + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getDomain());
150 150 Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI);
151 151 ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,toTag);
152 152  
... ... @@ -158,7 +158,7 @@ public class SIPRequestHeaderProvider {
158 158 CallIdHeader callIdHeader = sipFactory.createHeaderFactory().createCallIdHeader(callId);
159 159 request = sipFactory.createMessageFactory().createRequest(requestLine, Request.BYE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards);
160 160  
161   - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort()));
  161 + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort()));
162 162  
163 163 return request;
164 164 }
... ... @@ -169,17 +169,17 @@ public class SIPRequestHeaderProvider {
169 169 SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
170 170 // via
171 171 ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
172   - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(),
  172 + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getIp(), sipConfig.getPort(),
173 173 device.getTransport(), viaTag);
174 174 viaHeader.setRPort();
175 175 viaHeaders.add(viaHeader);
176 176 // from
177   - SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(),
178   - sipConfig.getSipIp() + ":" + sipConfig.getSipPort());
  177 + SipURI fromSipURI = sipFactory.createAddressFactory().createSipURI(sipConfig.getId(),
  178 + sipConfig.getIp() + ":" + sipConfig.getPort());
179 179 Address fromAddress = sipFactory.createAddressFactory().createAddress(fromSipURI);
180 180 FromHeader fromHeader = sipFactory.createHeaderFactory().createFromHeader(fromAddress, fromTag);
181 181 // to
182   - SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain());
  182 + SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getDomain());
183 183 Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI);
184 184 ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag);
185 185  
... ... @@ -192,7 +192,7 @@ public class SIPRequestHeaderProvider {
192 192 toHeader, viaHeaders, maxForwards);
193 193  
194 194  
195   - Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getSipId(), sipConfig.getSipIp()+":"+sipConfig.getSipPort()));
  195 + Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort()));
196 196 request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress));
197 197  
198 198 // Expires
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
... ... @@ -105,7 +105,7 @@ public class SIPCommander implements ISIPCommander {
105 105 */
106 106 @Override
107 107 public boolean ptzdirectCmd(Device device, String channelId, int leftRight, int upDown) {
108   - return ptzCmd(device, channelId, leftRight, upDown, 0, sipConfig.getSpeed(), 0);
  108 + return ptzCmd(device, channelId, leftRight, upDown, 0, sipConfig.getPtzSpeed(), 0);
109 109 }
110 110  
111 111 /**
... ... @@ -131,7 +131,7 @@ public class SIPCommander implements ISIPCommander {
131 131 */
132 132 @Override
133 133 public boolean ptzZoomCmd(Device device, String channelId, int inOut) {
134   - return ptzCmd(device, channelId, 0, 0, inOut, 0, sipConfig.getSpeed());
  134 + return ptzCmd(device, channelId, 0, 0, inOut, 0, sipConfig.getPtzSpeed());
135 135 }
136 136  
137 137 /**
... ... @@ -468,7 +468,7 @@ public class SIPCommander implements ISIPCommander {
468 468  
469 469 StringBuffer content = new StringBuffer(200);
470 470 content.append("v=0\r\n");
471   - content.append("o="+sipConfig.getSipId()+" 0 0 IN IP4 "+sipConfig.getSipIp()+"\r\n");
  471 + content.append("o="+sipConfig.getId()+" 0 0 IN IP4 "+sipConfig.getIp()+"\r\n");
472 472 content.append("s=Playback\r\n");
473 473 content.append("u="+channelId+":0\r\n");
474 474 content.append("c=IN IP4 "+mediaServerItem.getSdpIp()+"\r\n");
... ... @@ -575,7 +575,7 @@ public class SIPCommander implements ISIPCommander {
575 575  
576 576 StringBuffer content = new StringBuffer(200);
577 577 content.append("v=0\r\n");
578   - content.append("o="+sipConfig.getSipId()+" 0 0 IN IP4 "+sipConfig.getSipIp()+"\r\n");
  578 + content.append("o="+sipConfig.getId()+" 0 0 IN IP4 "+sipConfig.getIp()+"\r\n");
579 579 content.append("s=Download\r\n");
580 580 content.append("u="+channelId+":0\r\n");
581 581 content.append("c=IN IP4 "+mediaServerItem.getSdpIp()+"\r\n");
... ... @@ -749,7 +749,7 @@ public class SIPCommander implements ISIPCommander {
749 749 broadcastXml.append("<Notify>\r\n");
750 750 broadcastXml.append("<CmdType>Broadcast</CmdType>\r\n");
751 751 broadcastXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
752   - broadcastXml.append("<SourceID>" + sipConfig.getSipId() + "</SourceID>\r\n");
  752 + broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n");
753 753 broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n");
754 754 broadcastXml.append("</Notify>\r\n");
755 755  
... ... @@ -774,7 +774,7 @@ public class SIPCommander implements ISIPCommander {
774 774 broadcastXml.append("<Notify>\r\n");
775 775 broadcastXml.append("<CmdType>Broadcast</CmdType>\r\n");
776 776 broadcastXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
777   - broadcastXml.append("<SourceID>" + sipConfig.getSipId() + "</SourceID>\r\n");
  777 + broadcastXml.append("<SourceID>" + sipConfig.getId() + "</SourceID>\r\n");
778 778 broadcastXml.append("<TargetID>" + device.getDeviceId() + "</TargetID>\r\n");
779 779 broadcastXml.append("</Notify>\r\n");
780 780  
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
... ... @@ -550,7 +550,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
550 550 deviceChannel.setStatus(gbStream.isStatus()?1:0);
551 551 // deviceChannel.setParentId(parentPlatform.getDeviceGBId());
552 552 deviceChannel.setRegisterWay(1);
553   - deviceChannel.setCivilCode(cmder.getSipConfig().getSipDomain());
  553 + deviceChannel.setCivilCode(cmder.getSipConfig().getDomain());
554 554 deviceChannel.setModel("live");
555 555 deviceChannel.setOwner("wvp-pro");
556 556 // deviceChannel.setAddress("test");
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
... ... @@ -79,9 +79,9 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor {
79 79 // 校验密码是否正确
80 80 if (authorhead != null) {
81 81 passwordCorrect = new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request,
82   - sipConfig.getSipPassword());
  82 + sipConfig.getPassword());
83 83 }
84   - if (StringUtils.isEmpty(sipConfig.getSipPassword())){
  84 + if (StringUtils.isEmpty(sipConfig.getPassword())){
85 85 passwordCorrect = true;
86 86 }
87 87  
... ... @@ -94,7 +94,7 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor {
94 94 logger.info("[{}] 密码错误 回复401", requestAddress);
95 95 }
96 96 response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request);
97   - new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getSipDomain());
  97 + new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain());
98 98 }else {
99 99 if (!passwordCorrect){
100 100 // 注册失败
... ...
src/main/java/com/genersoft/iot/vmp/service/IRoleService.java 0 → 100644
  1 +package com.genersoft.iot.vmp.service;
  2 +
  3 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
  4 +
  5 +import java.util.List;
  6 +
  7 +public interface IRoleService {
  8 +
  9 + Role getRoleById(int id);
  10 +
  11 + int add(Role role);
  12 +
  13 + int delete(int id);
  14 +
  15 + List<Role> getAll();
  16 +
  17 + int update(Role role);
  18 +}
... ...
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
... ... @@ -83,7 +83,7 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
83 83 for (MediaServerItem mediaServerItem : mediaServerItemList) {
84 84 // 更新
85 85 if (mediaServerItem.getSsrcConfig() == null) {
86   - SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getSipDomain());
  86 + SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain());
87 87 mediaServerItem.setSsrcConfig(ssrcConfig);
88 88 redisUtil.set(VideoManagerConstants.MEDIA_SERVER_PREFIX + mediaServerItem.getId(), mediaServerItem);
89 89 }
... ... @@ -145,7 +145,7 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
145 145 */
146 146 @Override
147 147 public void clearRTPServer(MediaServerItem mediaServerItem) {
148   - mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getSipDomain()));
  148 + mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain()));
149 149 redisUtil.zAdd(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX, mediaServerItem.getId(), 0);
150 150 }
151 151  
... ... @@ -162,7 +162,7 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
162 162 new SsrcConfig(
163 163 mediaServerItemInDataBase.getId(),
164 164 null,
165   - sipConfig.getSipDomain()
  165 + sipConfig.getDomain()
166 166 )
167 167 );
168 168 }
... ... @@ -264,12 +264,12 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
264 264 if (serverItemInRedis != null) {
265 265 serverItemFromConfig.setSsrcConfig(serverItemInRedis.getSsrcConfig());
266 266 }else {
267   - serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain()));
  267 + serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getDomain()));
268 268 }
269 269 redisUtil.set(key, serverItemFromConfig);
270 270 }else {
271 271 String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItemFromConfig.getId();
272   - serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getSipDomain()));
  272 + serverItemFromConfig.setSsrcConfig(new SsrcConfig(serverItemFromConfig.getId(), null, sipConfig.getDomain()));
273 273 redisUtil.set(key, serverItemFromConfig);
274 274 mediaServerMapper.add(serverItemFromConfig);
275 275 }
... ... @@ -279,11 +279,11 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
279 279 String now = this.format.format(System.currentTimeMillis());
280 280 if (serverItem == null){
281 281 // 一个新的zlm接入wvp
282   - serverItem = new MediaServerItem(zlmServerConfig, sipConfig.getSipIp());
  282 + serverItem = new MediaServerItem(zlmServerConfig, sipConfig.getIp());
283 283 serverItem.setCreateTime(now);
284 284 serverItem.setUpdateTime(now);
285 285 String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + serverItem.getId();
286   - serverItem.setSsrcConfig(new SsrcConfig(serverItem.getId(), null, sipConfig.getSipDomain()));
  286 + serverItem.setSsrcConfig(new SsrcConfig(serverItem.getId(), null, sipConfig.getDomain()));
287 287 redisUtil.set(key, serverItem);
288 288 // 存入数据库
289 289 mediaServerMapper.add(serverItem);
... ...
src/main/java/com/genersoft/iot/vmp/service/impl/RoleServerImpl.java 0 → 100644
  1 +package com.genersoft.iot.vmp.service.impl;
  2 +
  3 +import com.genersoft.iot.vmp.service.IRoleService;
  4 +import com.genersoft.iot.vmp.storager.dao.RoleMapper;
  5 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +import java.util.List;
  10 +
  11 +@Service
  12 +public class RoleServerImpl implements IRoleService {
  13 +
  14 + @Autowired
  15 + private RoleMapper roleMapper;
  16 +
  17 + @Override
  18 + public Role getRoleById(int id) {
  19 + return roleMapper.selectById(id);
  20 + }
  21 +
  22 + @Override
  23 + public int add(Role role) {
  24 + return roleMapper.add(role);
  25 + }
  26 +
  27 + @Override
  28 + public int delete(int id) {
  29 + return roleMapper.delete(id);
  30 + }
  31 +
  32 + @Override
  33 + public List<Role> getAll() {
  34 + return roleMapper.selectAll();
  35 + }
  36 +
  37 + @Override
  38 + public int update(Role role) {
  39 + return roleMapper.update(role);
  40 + }
  41 +}
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/RoleMapper.java 0 → 100644
  1 +package com.genersoft.iot.vmp.storager.dao;
  2 +
  3 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
  4 +import com.genersoft.iot.vmp.storager.dao.dto.User;
  5 +import org.apache.ibatis.annotations.*;
  6 +import org.springframework.stereotype.Repository;
  7 +
  8 +import java.util.List;
  9 +
  10 +@Mapper
  11 +@Repository
  12 +public interface RoleMapper {
  13 +
  14 + @Insert("INSERT INTO role (name, authority, createTime, updateTime) VALUES" +
  15 + "('${name}', '${authority}', '${createTime}', '${updateTime}')")
  16 + int add(Role role);
  17 +
  18 + @Update(value = {" <script>" +
  19 + "UPDATE role " +
  20 + "SET updateTime='${updateTime}' " +
  21 + "<if test=\"name != null\">, name='${name}'</if>" +
  22 + "<if test=\"authority != null\">, authority='${authority}'</if>" +
  23 + "WHERE id != 1 and id=#{id}" +
  24 + " </script>"})
  25 + int update(Role role);
  26 +
  27 + @Delete("DELETE FROM role WHERE id != 1 and id=#{id}")
  28 + int delete(int id);
  29 +
  30 + @Select("select * FROM role WHERE id=#{id}")
  31 + Role selectById(int id);
  32 +
  33 + @Select("select * FROM role")
  34 + List<Role> selectAll();
  35 +}
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java
... ... @@ -10,32 +10,42 @@ import java.util.List;
10 10 @Repository
11 11 public interface UserMapper {
12 12  
13   - @Insert("INSERT INTO user (username, password, roleId, create_time, update_time) VALUES" +
14   - "('${username}', '${password}', '${roleId}', '${createTime}', '${updateTime}')")
  13 + @Insert("INSERT INTO user (username, password, roleId, createTime, updateTime) VALUES" +
  14 + "('${username}', '${password}', '${role.id}', '${createTime}', '${updateTime}')")
15 15 int add(User user);
16 16  
17 17 @Update(value = {" <script>" +
18 18 "UPDATE user " +
19   - "SET update_time='${updateTime}' " +
20   - "<if test=\"roleId != null\">, roleId='${roleId}'</if>" +
  19 + "SET updateTime='${updateTime}' " +
  20 + "<if test=\"role != null\">, roleId='${role.id}'</if>" +
21 21 "<if test=\"password != null\">, password='${password}'</if>" +
22 22 "<if test=\"username != null\">, username='${username}'</if>" +
23 23 "WHERE id=#{id}" +
24 24 " </script>"})
25 25 int update(User user);
26 26  
27   - @Delete("DELETE FROM user WHERE id=#{id}")
  27 + @Delete("DELETE FROM user WHERE id != 1 and id=#{id}")
28 28 int delete(int id);
29 29  
30   - @Select("select * FROM user WHERE username=#{username} AND password=#{password}")
  30 + @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}")
  31 + @Results(id = "roleMap", value = {
  32 + @Result(column = "roleID", property = "role.id"),
  33 + @Result(column = "roleName", property = "role.name"),
  34 + @Result(column = "roleAuthority", property = "role.authority"),
  35 + @Result(column = "roleCreateTime", property = "role.createTime"),
  36 + @Result(column = "roleUpdateTime", property = "role.updateTime")
  37 + })
31 38 User select(String username, String password);
32 39  
33   - @Select("select * FROM user WHERE id=#{id}")
  40 + @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}")
  41 + @ResultMap(value="roleMap")
34 42 User selectById(int id);
35 43  
36   - @Select("select * FROM user WHERE username=#{username}")
  44 + @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}")
  45 + @ResultMap(value="roleMap")
37 46 User getUserByUsername(String username);
38 47  
39   - @Select("select * FROM user")
  48 + @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")
  49 + @ResultMap(value="roleMap")
40 50 List<User> selectAll();
41 51 }
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/dto/Role.java 0 → 100644
  1 +package com.genersoft.iot.vmp.storager.dao.dto;
  2 +
  3 +public class Role {
  4 +
  5 + private int id;
  6 + private String name;
  7 + private String authority;
  8 + private String createTime;
  9 + private String updateTime;
  10 +
  11 + public int getId() {
  12 + return id;
  13 + }
  14 +
  15 + public void setId(int id) {
  16 + this.id = id;
  17 + }
  18 +
  19 + public String getName() {
  20 + return name;
  21 + }
  22 +
  23 + public void setName(String name) {
  24 + this.name = name;
  25 + }
  26 +
  27 + public String getAuthority() {
  28 + return authority;
  29 + }
  30 +
  31 + public void setAuthority(String authority) {
  32 + this.authority = authority;
  33 + }
  34 +
  35 + public String getCreateTime() {
  36 + return createTime;
  37 + }
  38 +
  39 + public void setCreateTime(String createTime) {
  40 + this.createTime = createTime;
  41 + }
  42 +
  43 + public String getUpdateTime() {
  44 + return updateTime;
  45 + }
  46 +
  47 + public void setUpdateTime(String updateTime) {
  48 + this.updateTime = updateTime;
  49 + }
  50 +}
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/dto/User.java
... ... @@ -7,7 +7,7 @@ public class User {
7 7 private String password;
8 8 private String createTime;
9 9 private String updateTime;
10   - private int roleId;
  10 + private Role role;
11 11  
12 12 public int getId() {
13 13 return id;
... ... @@ -41,14 +41,6 @@ public class User {
41 41 this.createTime = createTime;
42 42 }
43 43  
44   - public int getRoleId() {
45   - return roleId;
46   - }
47   -
48   - public void setRoleId(int roleId) {
49   - this.roleId = roleId;
50   - }
51   -
52 44 public String getUpdateTime() {
53 45 return updateTime;
54 46 }
... ... @@ -56,4 +48,12 @@ public class User {
56 48 public void setUpdateTime(String updateTime) {
57 49 this.updateTime = updateTime;
58 50 }
  51 +
  52 + public Role getRole() {
  53 + return role;
  54 + }
  55 +
  56 + public void setRole(Role role) {
  57 + this.role = role;
  58 + }
59 59 }
... ...
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
... ... @@ -52,10 +52,10 @@ public class PlatformController {
52 52 @GetMapping("/server_config")
53 53 public ResponseEntity<JSONObject> serverConfig() {
54 54 JSONObject result = new JSONObject();
55   - result.put("deviceIp", sipConfig.getSipIp());
56   - result.put("devicePort", sipConfig.getSipPort());
57   - result.put("username", sipConfig.getSipId());
58   - result.put("password", sipConfig.getSipPassword());
  55 + result.put("deviceIp", sipConfig.getIp());
  56 + result.put("devicePort", sipConfig.getPort());
  57 + result.put("username", sipConfig.getId());
  58 + result.put("password", sipConfig.getPassword());
59 59 return new ResponseEntity<>(result, HttpStatus.OK);
60 60 }
61 61  
... ...
src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java
1 1 package com.genersoft.iot.vmp.vmanager.log;
2 2  
  3 +import com.genersoft.iot.vmp.conf.UserSetup;
  4 +import com.genersoft.iot.vmp.media.zlm.ZLMRunner;
3 5 import com.genersoft.iot.vmp.service.ILogService;
4 6 import com.genersoft.iot.vmp.storager.dao.dto.LogDto;
5 7 import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
... ... @@ -8,6 +10,8 @@ import io.swagger.annotations.Api;
8 10 import io.swagger.annotations.ApiImplicitParam;
9 11 import io.swagger.annotations.ApiImplicitParams;
10 12 import io.swagger.annotations.ApiOperation;
  13 +import org.slf4j.Logger;
  14 +import org.slf4j.LoggerFactory;
11 15 import org.springframework.beans.factory.annotation.Autowired;
12 16 import org.springframework.http.HttpStatus;
13 17 import org.springframework.http.ResponseEntity;
... ... @@ -23,9 +27,14 @@ import java.text.SimpleDateFormat;
23 27 @RequestMapping("/api/log")
24 28 public class LogController {
25 29  
  30 + private final static Logger logger = LoggerFactory.getLogger(LogController.class);
  31 +
26 32 @Autowired
27 33 private ILogService logService;
28 34  
  35 + @Autowired
  36 + private UserSetup userSetup;
  37 +
29 38 private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
30 39  
31 40 /**
... ... @@ -60,7 +69,9 @@ public class LogController {
60 69 if (StringUtils.isEmpty(query)) query = null;
61 70 if (StringUtils.isEmpty(startTime)) startTime = null;
62 71 if (StringUtils.isEmpty(endTime)) endTime = null;
63   -
  72 + if (!userSetup.getLogInDatebase()) {
  73 + logger.warn("自动记录日志功能已关闭,查询结果可能不完整。");
  74 + }
64 75  
65 76 try {
66 77 if (startTime != null) format.parse(startTime);
... ...
src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
1 1 package com.genersoft.iot.vmp.vmanager.server;
2 2  
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONObject;
3 5 import com.genersoft.iot.vmp.VManageBootstrap;
4 6 import com.genersoft.iot.vmp.common.VersionPo;
  7 +import com.genersoft.iot.vmp.conf.SipConfig;
  8 +import com.genersoft.iot.vmp.conf.UserSetup;
5 9 import com.genersoft.iot.vmp.conf.VersionInfo;
6 10 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
7 11 import com.genersoft.iot.vmp.service.IMediaServerService;
... ... @@ -9,9 +13,13 @@ import com.genersoft.iot.vmp.utils.SpringBeanFactory;
9 13 import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
10 14 import gov.nist.javax.sip.SipStackImpl;
11 15 import io.swagger.annotations.Api;
  16 +import io.swagger.annotations.ApiImplicitParam;
  17 +import io.swagger.annotations.ApiImplicitParams;
12 18 import io.swagger.annotations.ApiOperation;
13 19 import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.beans.factory.annotation.Value;
14 21 import org.springframework.context.ConfigurableApplicationContext;
  22 +import org.springframework.util.StringUtils;
15 23 import org.springframework.web.bind.annotation.*;
16 24  
17 25 import javax.sip.ListeningPoint;
... ... @@ -36,6 +44,15 @@ public class ServerController {
36 44 @Autowired
37 45 VersionInfo versionInfo;
38 46  
  47 + @Autowired
  48 + SipConfig sipConfig;
  49 +
  50 + @Autowired
  51 + UserSetup userSetup;
  52 +
  53 + @Value("${server.port}")
  54 + private int serverPort;
  55 +
39 56  
40 57 @ApiOperation("流媒体服务列表")
41 58 @GetMapping(value = "/media_server/list")
... ... @@ -113,4 +130,34 @@ public class ServerController {
113 130 result.setData(versionInfo.getVersion());
114 131 return result;
115 132 }
  133 +
  134 + @ApiOperation("配置信息")
  135 + @GetMapping(value = "/config")
  136 + @ApiImplicitParams({
  137 + @ApiImplicitParam(name="type", value = "配置类型(sip, base)", dataTypeClass = String.class),
  138 + })
  139 + @ResponseBody
  140 + public WVPResult<JSONObject> getVersion(String type){
  141 + WVPResult<JSONObject> result = new WVPResult<>();
  142 + result.setCode(0);
  143 + result.setMsg("success");
  144 +
  145 + JSONObject jsonObject = new JSONObject();
  146 + jsonObject.put("server.port", serverPort);
  147 + if (StringUtils.isEmpty(type)) {
  148 + jsonObject.put("sip", JSON.toJSON(sipConfig));
  149 + jsonObject.put("base", JSON.toJSON(userSetup));
  150 + }else {
  151 + switch (type){
  152 + case "sip":
  153 + jsonObject.put("sip", sipConfig);
  154 + break;
  155 + case "base":
  156 + jsonObject.put("base", userSetup);
  157 + break;
  158 + }
  159 + }
  160 + result.setData(jsonObject);
  161 + return result;
  162 + }
116 163 }
... ...
src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java 0 → 100644
  1 +package com.genersoft.iot.vmp.vmanager.user;
  2 +
  3 +import com.genersoft.iot.vmp.conf.security.SecurityUtils;
  4 +import com.genersoft.iot.vmp.service.IRoleService;
  5 +import com.genersoft.iot.vmp.service.IUserService;
  6 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
  7 +import com.genersoft.iot.vmp.storager.dao.dto.User;
  8 +import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
  9 +import io.swagger.annotations.Api;
  10 +import io.swagger.annotations.ApiImplicitParam;
  11 +import io.swagger.annotations.ApiImplicitParams;
  12 +import io.swagger.annotations.ApiOperation;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.http.HttpStatus;
  15 +import org.springframework.http.ResponseEntity;
  16 +import org.springframework.security.authentication.AuthenticationManager;
  17 +import org.springframework.util.DigestUtils;
  18 +import org.springframework.util.StringUtils;
  19 +import org.springframework.web.bind.annotation.*;
  20 +
  21 +import java.text.SimpleDateFormat;
  22 +import java.util.List;
  23 +
  24 +@Api(tags = "角色管理")
  25 +@CrossOrigin
  26 +@RestController
  27 +@RequestMapping("/api/role")
  28 +public class RoleController {
  29 +
  30 + @Autowired
  31 + private IRoleService roleService;
  32 +
  33 + private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  34 +
  35 + @ApiOperation("添加角色")
  36 + @ApiImplicitParams({
  37 + @ApiImplicitParam(name = "name", required = true, value = "角色名", dataTypeClass = String.class),
  38 + @ApiImplicitParam(name = "authority", required = true, value = "权限(自行定义内容,目前未使用)", dataTypeClass = String.class),
  39 + })
  40 + @PostMapping("/add")
  41 + public ResponseEntity<WVPResult<Integer>> add(@RequestParam String name,
  42 + @RequestParam(required = false) String authority){
  43 + WVPResult<Integer> result = new WVPResult<>();
  44 + // 获取当前登录用户id
  45 + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId();
  46 + if (currenRoleId != 1) {
  47 + // 只用角色id为1才可以删除和添加用户
  48 + result.setCode(-1);
  49 + result.setMsg("用户无权限");
  50 + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN);
  51 + }
  52 +
  53 + Role role = new Role();
  54 + role.setName(name);
  55 + role.setAuthority(authority);
  56 + role.setCreateTime(format.format(System.currentTimeMillis()));
  57 + role.setUpdateTime(format.format(System.currentTimeMillis()));
  58 +
  59 + int addResult = roleService.add(role);
  60 +
  61 + result.setCode(addResult > 0 ? 0 : -1);
  62 + result.setMsg(addResult > 0 ? "success" : "fail");
  63 + result.setData(addResult);
  64 + return new ResponseEntity<>(result, HttpStatus.OK);
  65 + }
  66 +
  67 + @ApiOperation("删除角色")
  68 + @ApiImplicitParams({
  69 + @ApiImplicitParam(name = "id", required = true, value = "用户Id", dataTypeClass = Integer.class),
  70 + })
  71 + @DeleteMapping("/delete")
  72 + public ResponseEntity<WVPResult<String>> delete(@RequestParam Integer id){
  73 + // 获取当前登录用户id
  74 + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId();
  75 + WVPResult<String> result = new WVPResult<>();
  76 + if (currenRoleId != 1) {
  77 + // 只用角色id为0才可以删除和添加用户
  78 + result.setCode(-1);
  79 + result.setMsg("用户无权限");
  80 + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN);
  81 + }
  82 + int deleteResult = roleService.delete(id);
  83 +
  84 + result.setCode(deleteResult>0? 0 : -1);
  85 + result.setMsg(deleteResult>0? "success" : "fail");
  86 + return new ResponseEntity<>(result, HttpStatus.OK);
  87 + }
  88 +
  89 + @ApiOperation("查询角色")
  90 + @ApiImplicitParams({})
  91 + @GetMapping("/all")
  92 + public ResponseEntity<WVPResult<List<Role>>> all(){
  93 + // 获取当前登录用户id
  94 + List<Role> allRoles = roleService.getAll();
  95 + WVPResult<List<Role>> result = new WVPResult<>();
  96 + result.setCode(0);
  97 + result.setMsg("success");
  98 + result.setData(allRoles);
  99 + return new ResponseEntity<>(result, HttpStatus.OK);
  100 + }
  101 +}
... ...
src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java
... ... @@ -2,7 +2,9 @@ package com.genersoft.iot.vmp.vmanager.user;
2 2  
3 3 import com.genersoft.iot.vmp.conf.security.SecurityUtils;
4 4 import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
  5 +import com.genersoft.iot.vmp.service.IRoleService;
5 6 import com.genersoft.iot.vmp.service.IUserService;
  7 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
6 8 import com.genersoft.iot.vmp.storager.dao.dto.User;
7 9 import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
8 10 import io.swagger.annotations.Api;
... ... @@ -14,6 +16,7 @@ import org.springframework.http.HttpStatus;
14 16 import org.springframework.http.ResponseEntity;
15 17 import org.springframework.security.authentication.AuthenticationManager;
16 18 import org.springframework.util.DigestUtils;
  19 +import org.springframework.util.StringUtils;
17 20 import org.springframework.web.bind.annotation.*;
18 21  
19 22 import javax.security.sasl.AuthenticationException;
... ... @@ -32,6 +35,9 @@ public class UserController {
32 35 @Autowired
33 36 private IUserService userService;
34 37  
  38 + @Autowired
  39 + private IRoleService roleService;
  40 +
35 41 private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
36 42  
37 43 @ApiOperation("登录")
... ... @@ -97,21 +103,38 @@ public class UserController {
97 103 @PostMapping("/add")
98 104 public ResponseEntity<WVPResult<Integer>> add(@RequestParam String username,
99 105 @RequestParam String password,
100   - @RequestParam int roleId){
  106 + @RequestParam Integer roleId){
  107 + WVPResult<Integer> result = new WVPResult<>();
  108 + if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password) || roleId == null) {
  109 + result.setCode(-1);
  110 + result.setMsg("参数不可为空");
  111 + return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST);
  112 + }
101 113 // 获取当前登录用户id
102   - int currenRoleId = SecurityUtils.getUserInfo().getRoleId();
103   - if (currenRoleId != 0) {
104   - // 只用角色id为0才可以删除和添加用户
105   - return new ResponseEntity<>(null, HttpStatus.FORBIDDEN);
  114 + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId();
  115 + if (currenRoleId != 1) {
  116 + // 只用角色id为1才可以删除和添加用户
  117 + result.setCode(-1);
  118 + result.setMsg("用户无权限");
  119 + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN);
106 120 }
107 121 User user = new User();
108 122 user.setUsername(username);
109 123 user.setPassword(DigestUtils.md5DigestAsHex(password.getBytes()));
110   - user.setRoleId(roleId);
  124 +
  125 + Role role = roleService.getRoleById(roleId);
  126 +
  127 + if (role == null) {
  128 + result.setCode(-1);
  129 + result.setMsg("roleId is not found");
  130 + // 角色不存在
  131 + return new ResponseEntity<>(result, HttpStatus.OK);
  132 + }
  133 + user.setRole(role);
111 134 user.setCreateTime(format.format(System.currentTimeMillis()));
112 135 user.setUpdateTime(format.format(System.currentTimeMillis()));
113 136 int addResult = userService.addUser(user);
114   - WVPResult<Integer> result = new WVPResult<>();
  137 +
115 138 result.setCode(addResult > 0 ? 0 : -1);
116 139 result.setMsg(addResult > 0 ? "success" : "fail");
117 140 result.setData(addResult);
... ... @@ -125,13 +148,16 @@ public class UserController {
125 148 @DeleteMapping("/delete")
126 149 public ResponseEntity<WVPResult<String>> delete(@RequestParam Integer id){
127 150 // 获取当前登录用户id
128   - int currenRoleId = SecurityUtils.getUserInfo().getRoleId();
129   - if (currenRoleId != 0) {
  151 + int currenRoleId = SecurityUtils.getUserInfo().getRole().getId();
  152 + WVPResult<String> result = new WVPResult<>();
  153 + if (currenRoleId != 1) {
130 154 // 只用角色id为0才可以删除和添加用户
131   - return new ResponseEntity<>(null, HttpStatus.FORBIDDEN);
  155 + result.setCode(-1);
  156 + result.setMsg("用户无权限");
  157 + return new ResponseEntity<>(result, HttpStatus.FORBIDDEN);
132 158 }
133 159 int deleteResult = userService.deleteUser(id);
134   - WVPResult<String> result = new WVPResult<>();
  160 +
135 161 result.setCode(deleteResult>0? 0 : -1);
136 162 result.setMsg(deleteResult>0? "success" : "fail");
137 163 return new ResponseEntity<>(result, HttpStatus.OK);
... ...
src/main/java/com/genersoft/iot/vmp/web/ApiController.java
... ... @@ -38,10 +38,10 @@ public class ApiController {
38 38 result.put("ServerTime","2020-09-02 17:11");
39 39 result.put("StartUpTime","2020-09-02 17:11");
40 40 result.put("Server","");
41   - result.put("SIPSerial", sipConfig.getSipId());
42   - result.put("SIPRealm", sipConfig.getSipDomain());
43   - result.put("SIPHost", sipConfig.getSipIp());
44   - result.put("SIPPort", sipConfig.getSipPort());
  41 + result.put("SIPSerial", sipConfig.getId());
  42 + result.put("SIPRealm", sipConfig.getDomain());
  43 + result.put("SIPHost", sipConfig.getIp());
  44 + result.put("SIPPort", sipConfig.getPort());
45 45 result.put("ChannelCount","1000");
46 46 result.put("VersionType","");
47 47 result.put("LogoMiniText","");
... ... @@ -65,10 +65,10 @@ public class ApiController {
65 65 // result.put("ServerTime","2020-09-02 17:11");
66 66 // result.put("StartUpTime","2020-09-02 17:11");
67 67 // result.put("Server","");
68   -// result.put("SIPSerial", sipConfig.getSipId());
69   -// result.put("SIPRealm", sipConfig.getSipDomain());
70   -// result.put("SIPHost", sipConfig.getSipIp());
71   -// result.put("SIPPort", sipConfig.getSipPort());
  68 +// result.put("SIPSerial", sipConfig.getId());
  69 +// result.put("SIPRealm", sipConfig.getDomain());
  70 +// result.put("SIPHost", sipConfig.getIp());
  71 +// result.put("SIPPort", sipConfig.getPort());
72 72 // result.put("ChannelCount","1000");
73 73 // result.put("VersionType","");
74 74 // result.put("LogoMiniText","");
... ...
src/main/resources/all-application.yml
... ... @@ -76,6 +76,8 @@ sip:
76 76 keepalive-timeout: 180
77 77 # [可选] 国标级联注册失败,再次发起注册的时间间隔。 默认60秒
78 78 register-time-interval: 60
  79 + # [可选] 云台控制速度
  80 + ptz-speed: 50
79 81 # TODO [可选] 收到心跳后自动上线, 重启服务后会将所有设备置为离线,默认false,等待注册后上线。设置为true则收到心跳设置为上线。
80 82 # keepalliveToOnline: false
81 83  
... ... @@ -155,4 +157,10 @@ user-settings:
155 157  
156 158 # 在线文档: swagger-ui(生产环境建议关闭)
157 159 swagger-ui:
158   - enabled: true
159 160 \ No newline at end of file
  161 + enabled: true
  162 +
  163 +# 版本信息, 不需修改
  164 +version:
  165 + version: "@project.version@"
  166 + description: "@project.description@"
  167 + artifact-id: "@project.artifactId@"
160 168 \ No newline at end of file
... ...
src/main/resources/application-dev.yml
... ... @@ -85,4 +85,10 @@ user-settings:
85 85  
86 86 # 在线文档: swagger-ui(生产环境建议关闭)
87 87 swagger-ui:
88   - enabled: true
89 88 \ No newline at end of file
  89 + enabled: true
  90 +
  91 +# 版本信息, 不需修改
  92 +version:
  93 + version: "@project.version@"
  94 + description: "@project.description@"
  95 + artifact-id: "@project.artifactId@"
90 96 \ No newline at end of file
... ...
src/main/resources/banner.txt
... ... @@ -6,3 +6,4 @@
6 6 \ \____________\ \__/ / \ \__\ \ \__\ \ \__\\ _\\ \_______\
7 7 \|____________|\|__|/ \|__| \|__| \|__|\|__|\|_______|
8 8  
  9 +版本:${version.version}
9 10 \ No newline at end of file
... ...
src/main/resources/wvp.sqlite
No preview for this file type
src/test/java/com/genersoft/iot/vmp/service/impl/RoleServiceImplTest.java 0 → 100644
  1 +package com.genersoft.iot.vmp.service.impl;
  2 +
  3 +import com.genersoft.iot.vmp.service.IRoleService;
  4 +import com.genersoft.iot.vmp.service.IUserService;
  5 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
  6 +import com.genersoft.iot.vmp.storager.dao.dto.User;
  7 +import org.junit.runner.RunWith;
  8 +import org.springframework.boot.test.context.SpringBootTest;
  9 +import org.springframework.test.context.junit4.SpringRunner;
  10 +
  11 +import javax.annotation.Resource;
  12 +import java.text.SimpleDateFormat;
  13 +import java.util.List;
  14 +
  15 +
  16 +@SpringBootTest
  17 +@RunWith(SpringRunner.class)
  18 +class RoleServiceImplTest {
  19 +
  20 + @Resource
  21 + private IRoleService roleService;
  22 +
  23 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  24 + @org.junit.jupiter.api.Test
  25 + void getAllUser() {
  26 + List<Role> all = roleService.getAll();
  27 + Role roleById = roleService.getRoleById(1);
  28 + System.out.println();
  29 +
  30 + }
  31 +
  32 +
  33 + @org.junit.jupiter.api.Test
  34 + void add() {
  35 + for (int i = 0; i < 10; i++) {
  36 + Role role = new Role();
  37 + role.setName("test+" + i);
  38 + role.setAuthority("adadadda");
  39 + role.setCreateTime(format.format(System.currentTimeMillis()));
  40 + role.setUpdateTime(format.format(System.currentTimeMillis()));
  41 + roleService.add(role);
  42 + }
  43 + }
  44 +
  45 + @org.junit.jupiter.api.Test
  46 + void delete() {
  47 + roleService.delete(20);
  48 + }
  49 +
  50 + @org.junit.jupiter.api.Test
  51 + void update() {
  52 + Role role = new Role();
  53 + role.setId(21);
  54 + role.setName("TTTTTT");
  55 + role.setAuthority("adadadda");
  56 + roleService.update(role);
  57 + }
  58 +}
0 59 \ No newline at end of file
... ...
src/test/java/com/genersoft/iot/vmp/service/impl/UserServiceImplTest.java
... ... @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.service.impl;
3 3 import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
4 4 import com.genersoft.iot.vmp.service.IDeviceAlarmService;
5 5 import com.genersoft.iot.vmp.service.IUserService;
  6 +import com.genersoft.iot.vmp.storager.dao.dto.Role;
6 7 import com.genersoft.iot.vmp.storager.dao.dto.User;
7 8 import org.junit.runner.RunWith;
8 9 import org.springframework.boot.test.context.SpringBootTest;
... ... @@ -11,6 +12,7 @@ import org.springframework.test.context.junit4.SpringRunner;
11 12 import javax.annotation.Resource;
12 13 import java.text.SimpleDateFormat;
13 14 import java.util.Date;
  15 +import java.util.List;
14 16  
15 17  
16 18 @SpringBootTest
... ... @@ -24,7 +26,11 @@ class UserServiceImplTest {
24 26  
25 27 @org.junit.jupiter.api.Test
26 28 void getAllUser() {
  29 + List<User> allUsers = userService.getAllUsers();
27 30 System.out.println(userService.getAllUsers().size());
  31 + User admin = userService.getUser("admin", "21232f297a57a5a743894a0e4a801fc3");
  32 + User admin1 = userService.getUserByUsername("admin");
  33 + System.out.println(12);
28 34 }
29 35  
30 36  
... ... @@ -34,7 +40,10 @@ class UserServiceImplTest {
34 40 User user = new User();
35 41 user.setUsername("admin_" + i);
36 42 user.setPassword("admin_password_" + i);
37   - user.setRoleId((int)(Math.random()*4 + 1));
  43 +
  44 + Role role = new Role();
  45 + role.setId(1);
  46 + user.setRole(role);
38 47 user.setCreateTime(format.format(System.currentTimeMillis()));
39 48 user.setUpdateTime(format.format(System.currentTimeMillis()));
40 49 userService.addUser(user);
... ... @@ -49,10 +58,12 @@ class UserServiceImplTest {
49 58 @org.junit.jupiter.api.Test
50 59 void update() {
51 60 User user = new User();
52   - user.setId(1003);
  61 + user.setId(11);
53 62 user.setUsername("update" );
54 63 user.setPassword("update");
55   - user.setRoleId((int)(Math.random()*4 + 1));
  64 + Role role = new Role();
  65 + role.setId(2);
  66 + user.setRole(role);
56 67 user.setUpdateTime(format.format(System.currentTimeMillis()));
57 68 userService.updateUsers(user);
58 69 }
... ...