VPN服务器
新增添加IP重复验证 删除验证是否被IP复用-用户管理使用 IP复用-用户管理 删除验证是否被snat策略和dnat策略使用
This commit is contained in:
@@ -24,6 +24,7 @@ import com.google.common.collect.Maps;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.SysUser;
|
||||
import com.nis.domain.basics.ServiceDictInfo;
|
||||
import com.nis.domain.configuration.UserManage;
|
||||
import com.nis.util.ConfigDictUtils;
|
||||
import com.nis.util.Configurations;
|
||||
import com.nis.util.Constants;
|
||||
@@ -232,8 +233,36 @@ public class ServiceDictInfoController extends BaseController {
|
||||
@RequestMapping(value={"delete"})
|
||||
public String delete(ServiceDictInfo serviceDictInfo, RedirectAttributes redirectAttributes, String itType, String mulitId) {
|
||||
try {
|
||||
serviceDictInfoService.deleteDict(mulitId);
|
||||
String exIp="";
|
||||
String id="";
|
||||
Properties msgProp = getMsgProp();
|
||||
if(itType.equals("5")){
|
||||
String [] ids=mulitId.split(",");
|
||||
for (int i = 0; i < ids.length; i++) {
|
||||
ServiceDictInfo dict= serviceDictInfoService.getDictById(Integer.valueOf(ids[i]));
|
||||
if(dict!=null){
|
||||
UserManage user =new UserManage();
|
||||
user.setServerIp(dict.getItemValue()+",");
|
||||
List<UserManage> list=userManageService.findList(user);
|
||||
if(list!=null && list.size()>0){
|
||||
exIp+=dict.getItemValue()+",";
|
||||
}else{
|
||||
id+=ids[i]+",";
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
id=mulitId;
|
||||
}
|
||||
if(!StringUtil.isEmpty(id)){
|
||||
serviceDictInfoService.deleteDict(id);
|
||||
}
|
||||
if(!StringUtil.isEmpty(exIp)){
|
||||
exIp=exIp.substring(0, exIp.length()-1);
|
||||
addMessage(redirectAttributes,"error", "IP "+exIp+" "+msgProp.getProperty("user_check"));
|
||||
}else{
|
||||
addMessage(redirectAttributes,"success", "delete_success");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
addMessage(redirectAttributes,"error", "delete_failed");
|
||||
@@ -593,4 +622,17 @@ public class ServiceDictInfoController extends BaseController {
|
||||
return dicName;
|
||||
}
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value = "ajaxIpRepeat")
|
||||
public boolean ajaxIpRepeat(String oldIp, String ip,Integer type) {
|
||||
if (ip !=null && ip.equals(oldIp)) {
|
||||
return true;
|
||||
} else if (ip !=null && serviceDictInfoService.getByItemValue(ip,type) == null) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.eclipse.jetty.util.ajax.JSON;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
@@ -23,10 +24,8 @@ import com.google.common.collect.Maps;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.basics.IpReuseIpCfg;
|
||||
import com.nis.domain.basics.ServiceDictInfo;
|
||||
import com.nis.domain.configuration.BaseCfg;
|
||||
import com.nis.domain.configuration.BaseStringCfg;
|
||||
import com.nis.domain.configuration.CfgIndexInfo;
|
||||
import com.nis.domain.configuration.IpPortCfg;
|
||||
import com.nis.domain.configuration.IpReuseDnatPolicyCfg;
|
||||
import com.nis.domain.configuration.IpReusePolicyCfg;
|
||||
import com.nis.domain.configuration.UserManage;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.Constants;
|
||||
@@ -34,11 +33,15 @@ import com.nis.util.DateUtils;
|
||||
import com.nis.util.StringUtil;
|
||||
import com.nis.util.StringUtils;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.service.configuration.IpMultiplexService;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("${adminPath}/maintenance/userManage")
|
||||
public class UserManageController extends BaseController{
|
||||
|
||||
@Autowired
|
||||
private IpMultiplexService ipMultiplexService;
|
||||
|
||||
@RequestMapping(value = {"/list"})
|
||||
@RequiresPermissions(value={"user:manage:view"})
|
||||
public String list(Model model,HttpServletRequest request,HttpServletResponse response
|
||||
@@ -69,13 +72,30 @@ public class UserManageController extends BaseController{
|
||||
public String delete(Integer isValid
|
||||
,String ids
|
||||
,RedirectAttributes redirectAttributes,HttpServletRequest request){
|
||||
String deleteSuccessIp="";
|
||||
String message="";
|
||||
Properties msgProp = getMsgProp();
|
||||
String exUser="";
|
||||
try{
|
||||
for (String id : ids.split(",")) {
|
||||
UserManage user=userManageService.getUserById(id);
|
||||
if(user != null && !StringUtil.isEmpty(user.getServerIp())) {
|
||||
//判断用户是否存在snat、dnat复用策略中
|
||||
boolean flag=true;
|
||||
if(user!=null && !StringUtil.isEmpty(user.getUserName())){
|
||||
//snat
|
||||
List<IpReusePolicyCfg> snatList=ipMultiplexService.findByUser(user.getUserName());
|
||||
if(snatList!=null && snatList.size()>0){
|
||||
exUser+=user.getUserName()+",";
|
||||
flag=false;
|
||||
}else{
|
||||
//dnat
|
||||
List<IpReuseDnatPolicyCfg> dnatList=ipMultiplexService.findDnatUser(user.getUserName());
|
||||
if(dnatList!=null && dnatList.size()>0){
|
||||
exUser+=user.getUserName()+",";
|
||||
flag=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(user != null && !StringUtil.isEmpty(user.getServerIp()) && flag) {
|
||||
boolean lastIp=false;
|
||||
int deleteIpLenth=1;
|
||||
String serverIp=user.getServerIp().substring(0, user.getServerIp().length()-1);
|
||||
@@ -99,9 +119,19 @@ public class UserManageController extends BaseController{
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!StringUtil.isEmpty(exUser)){
|
||||
exUser=exUser.substring(0, exUser.length()-1);
|
||||
addMessage(redirectAttributes,"error", msgProp.getProperty("user")+" "+exUser+" "+msgProp.getProperty("user_check"));
|
||||
}else{
|
||||
addMessage(redirectAttributes,"success","delete_success");
|
||||
}
|
||||
|
||||
}catch(Exception e){
|
||||
logger.error("Delete failed",e);
|
||||
if(!StringUtil.isEmpty(exUser)){
|
||||
exUser=exUser.substring(0, exUser.length()-1);
|
||||
message+="<br/> "+msgProp.getProperty("user")+" "+exUser+" "+msgProp.getProperty("user_check");
|
||||
}
|
||||
if(e instanceof MaatConvertException) {
|
||||
addMessage(redirectAttributes,"error",message);
|
||||
}else {
|
||||
|
||||
@@ -48,4 +48,8 @@ public interface IpMultiplexDao extends CrudDao<IpMultiplexDao>{
|
||||
List<IpReusePolicyCfg> findByPage(@Param("ids")String ids);
|
||||
|
||||
List<BaseIpCfg> findPageByDnat(@Param("ids")String ids);
|
||||
|
||||
|
||||
List<IpReusePolicyCfg> findByUser(@Param("userName")String userName);
|
||||
List<IpReuseDnatPolicyCfg> findDnatUser(@Param("userName")String userName);
|
||||
}
|
||||
|
||||
@@ -801,4 +801,22 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="findByUser" resultMap="policyMap">
|
||||
SELECT
|
||||
<include refid="policyColumns"/>
|
||||
FROM
|
||||
ip_reuse_policy_cfg r
|
||||
where r.IS_VALID != -1
|
||||
and r.user_name =#{userName}
|
||||
</select>
|
||||
|
||||
<select id="findDnatUser" resultMap="dnatPolicyMap">
|
||||
SELECT
|
||||
<include refid="dnatPolicyColumns"/>
|
||||
FROM
|
||||
ip_reuse_dnat_policy a
|
||||
where a.IS_VALID != -1
|
||||
and a.translated_user_id =#{userName}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -327,4 +327,14 @@ public class IpMultiplexService extends BaseService{
|
||||
public IpReuseDnatPolicyCfg getDnatCfg(Long cfgId,Integer compileId) {
|
||||
return ipMultiplexDao.getDnatCfg(cfgId,compileId);
|
||||
}
|
||||
|
||||
public List<IpReusePolicyCfg> findByUser(String userName) {
|
||||
List<IpReusePolicyCfg> list=ipMultiplexDao.findByUser(userName);
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<IpReuseDnatPolicyCfg> findDnatUser(String userName) {
|
||||
List<IpReuseDnatPolicyCfg> list=ipMultiplexDao.findDnatUser(userName);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,12 @@ public class UserManageService extends BaseService{
|
||||
return page;
|
||||
}
|
||||
|
||||
public List<UserManage> findList(UserManage entity) {
|
||||
List<UserManage> list=userManageDao.findList(entity);
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
public List<UserManage> findByPage(String ids ) {
|
||||
List<UserManage> list=userManageDao.findByList(ids);
|
||||
return list;
|
||||
|
||||
@@ -1476,3 +1476,5 @@ mail_record=Mail Records
|
||||
ssl_record=SSL Records
|
||||
http_record=HTTP Records
|
||||
second_bps=bps
|
||||
ip_existed=IP has existed!
|
||||
user_check=In use, Can not be deleted!
|
||||
@@ -1480,3 +1480,5 @@ block_drop=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0
|
||||
mail_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0447\u0442\u044b
|
||||
ssl_record=SSL \u0417\u0430\u043f\u0438\u0441\u0438
|
||||
http_record=HTTP \u0417\u0430\u043f\u0438\u0441\u0438
|
||||
ip_existed=IP \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442!
|
||||
user_check=\u0414\u0430\u043D\u043D\u044B\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u0437\u0430\u043D\u044F\u0442, \u043D\u0435\u043B\u044C\u0437\u044F \u0443\u0434\u0430\u043B\u0438\u0442\u044C!
|
||||
@@ -1476,3 +1476,5 @@ mail_record=\u90ae\u4ef6\u6cdb\u6536
|
||||
ssl_record=SSL\u6cdb\u6536
|
||||
http_record=HTTP\u6cdb\u6536
|
||||
second_bps=bps
|
||||
ip_existed=IP\u5DF2\u5B58\u5728\uFF01
|
||||
user_check=\u6B63\u5728\u4F7F\u7528\uFF0C\u4E0D\u80FD\u5220\u9664\uFF01
|
||||
@@ -104,6 +104,23 @@ label.errorShow {
|
||||
return flagLeafChange;
|
||||
},"<spring:message code='leafChange'/>");
|
||||
|
||||
|
||||
//校验ip是否重复
|
||||
jQuery.validator.addMethod("ipRepeat",function(value,element){
|
||||
var flagLeafChange=false;
|
||||
$.ajax({
|
||||
type:'post',
|
||||
async:false,
|
||||
url:'${ctx}/basics/serviceDictInfo/ajaxIpRepeat',
|
||||
data:{oldIp:"${serviceDictInfo.itemValue}",ip:$("#itemValue").val(),type:5},
|
||||
success:function(data){
|
||||
flagLeafChange=data;
|
||||
}
|
||||
});
|
||||
return flagLeafChange;
|
||||
},"<spring:message code='ip_existed'/>");
|
||||
|
||||
|
||||
jQuery.validator.addMethod("ipchecks",function(value,element){
|
||||
var tel=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/;
|
||||
return this.optional(element) || (tel.test(value));
|
||||
@@ -252,7 +269,7 @@ label.errorShow {
|
||||
</label>
|
||||
<div class="col-md-4">
|
||||
<c:if test="${itType==5 }">
|
||||
<input class="form-control required ipchecks " id="itemValue" type="text" name="itemValue" value="${serviceDictInfo.itemValue}">
|
||||
<input class="form-control required ipchecks ipRepeat" id="itemValue" type="text" name="itemValue" value="${serviceDictInfo.itemValue}">
|
||||
</c:if>
|
||||
<c:if test="${itType!=5 }">
|
||||
<form:input path="itemValue" htmlEscape="false" maxlength="64" class="form-control required "/>
|
||||
|
||||
Reference in New Issue
Block a user