diff --git a/src/main/java/com/cetc32/dh/beans/ResultUserRole.java b/src/main/java/com/cetc32/dh/beans/ResultUserRole.java index da107cb059a5a82a60d14badfeab00dec8737423..d1536a396bd7ee2bb6ca9a2540757e64c49ecb05 100644 --- a/src/main/java/com/cetc32/dh/beans/ResultUserRole.java +++ b/src/main/java/com/cetc32/dh/beans/ResultUserRole.java @@ -35,7 +35,7 @@ public class ResultUserRole extends NumberS { /** * 是否默认 * */ - private Integer isDefault; + private Integer isDefault = 0; public List getSystemMenu() { return systemMenu; diff --git a/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java b/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java index efd0888818a3e04a06ff16d5ece29a6662830185..3434573860a98e63f3c0863ae1a1afc4bc64217d 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AreaCommonController.java @@ -16,6 +16,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -40,17 +41,18 @@ public class AreaCommonController { @Autowired private AreaCommonService areaCommonService; - + @Value("${startCode}") + String startCode; @ApiOperation(value = "查询地理范围树结构") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "查询ID(key值)下的范围树,非必填,默认查询全国", dataType = "String"), }) @RequestMapping(value = "/all", method = RequestMethod.GET) - //@LoginSkipped + @LoginSkipped public ResponseResult areaCommonTree(String id) { if (id == null) { - id = "100000"; + id = "000000"; } // List areaCommonDTO = areaCommonService.getAreaTreeList(id); return ResponseResult.success(areaCommonService.getAreaTreeList(id)); diff --git a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java index d5346b44f695e7a9df4da67e75efd7506af1587a..9945eaa8c3944bb3d0fca13892e6452f8979be42 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AuthController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AuthController.java @@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -59,6 +60,12 @@ import static com.cetc32.dh.common.utils.Tools.*; @LoginRequired(loginSuccess = true) public class AuthController { + @Value("${sso.basePermission}") + String basePermission; + @Value("${sso.tokeAge}") + Long tokenAge=7200000L; + @Value("${sso.syscode}") + String sysCode; @Autowired AdminUserService userService; @@ -133,7 +140,8 @@ public class AuthController { private ResponseData createTokenAndSaveCookies(HttpServletRequest request, HttpServletResponse response, String username, BaseAdminUser user) { userService.updateLogin(user); long currentTimeMillis = System.currentTimeMillis(); - String jwtToken = JWTUtil.createToken(username, currentTimeMillis); + System.out.println("tokenAge:"+tokenAge); + String jwtToken = JWTUtil.createToken(username, currentTimeMillis,tokenAge); List zqPoints = null;//userService.getZQPoints(user.getAreaCodeList()); LoginResult data = new LoginResult(jwtToken, user.getDepartment(), @@ -148,7 +156,7 @@ public class AuthController { user.getUserPhone(), user.getRealName(), zqPoints); - CookieUtil.setCookie(request, response, "token", jwtToken, 60 * 60 * 2, true); + CookieUtil.setCookie(request, response, "token", jwtToken, tokenAge.intValue()/1000, true); return ResponseData.success(200, "success", data); } @@ -342,6 +350,9 @@ public class AuthController { @PostMapping(value = "/deleteUser") public ResponseData deleteUser(@RequestBody Map did){ Integer id=did.getOrDefault("id",0); + if(id<=1){ + return ResponseData.error("内置关键账户不能删除"); + } if(userService.deleteInfo(id)>0) { return ResponseData.success("删除成功!"); @@ -558,6 +569,9 @@ public class AuthController { user_info.setRoleId(userInfoMap.getOrDefault("role",null)); //System.out.println(userInfoMap.get("permissions")); user_info.setPermissions(userInfoMap.get("permissions")); + /*if(null != user_info.getPermissions() && user_info.getPermissions().contains("S")){ + + }*/ // user_info.setDepartment(userInfoMap.getOrDefault("department",null)); // user_info.setSecurity(getMapValueInt(userInfoMap,"security")); // user_info.setPage(getMapValueInt(userInfoMap,"page")); @@ -643,6 +657,7 @@ public class AuthController { data.setAreacode(user.getAreacode()); data.setDepartment(user.getDepartment()); data.setPwd(user.getSysUserPwd()); + System.out.println(user.getPermissions()); if(resultUserRole!=null ){ //确保user 的permission中有权限时候忽略角色权限 if(StringUtils.isBlank(user.getPermissions())){ @@ -651,6 +666,9 @@ public class AuthController { }else{ data.addPermissions(Arrays.asList(user.getPermissions().split(","))); } + if(null != data.getPermissions() && data.getPermissions().stream().noneMatch(f-> f.startsWith(sysCode))){ + data.getPermissions().add(basePermission); + } } return ResponseData.success(data); } diff --git a/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java b/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java index f9eaf4bd744428449b26edb3205d33e2598181e4..72338e5f88534b05887cf5251a3b0d8c861f88a0 100644 --- a/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java +++ b/src/main/java/com/cetc32/dh/controller/rest/AuthRoleController.java @@ -17,6 +17,7 @@ import com.cetc32.webutil.common.annotations.LoginSkipped; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -30,10 +31,7 @@ import java.util.Map; @RestController @RequestMapping("/rest/role/") public class AuthRoleController { - @Value("${sso.basePermission}") - String basePermission; - @Value("${sso.syscode}") - String sysCode; + @Autowired AdminRoleServiceImpl adminRoleService; @@ -80,10 +78,10 @@ public class AuthRoleController { } if(newRole.getId() == null){ BaseAdminRole br=new BaseAdminRole(); - if(newRole.getSystemMenu().stream().noneMatch(f-> f==(basePermission))){ - newRole.getSystemMenu().add(basePermission); - } - System.out.println("权限个数"+newRole.getSystemMenu().size()); +// if(newRole.getSystemMenu().stream().noneMatch(f-> f==(basePermission))){ +// newRole.getSystemMenu().add(basePermission); +// } +// System.out.println("权限个数"+newRole.getSystemMenu().size()); BeanUtils.copyProperties(newRole, br); //新增角色 if(adminRoleService.addRole(br)>0) @@ -121,9 +119,9 @@ public class AuthRoleController { } } BaseAdminRole br=new BaseAdminRole(); - if(role.getSystemMenu().stream().noneMatch(f-> basePermission.equals(f)|| f.startsWith(sysCode))){ - role.getSystemMenu().add(basePermission); - } +// if(role.getSystemMenu().stream().noneMatch(f-> basePermission.equals(f)|| f.startsWith(sysCode))){ +// role.getSystemMenu().add(basePermission); +// } BeanUtils.copyProperties(role, br); if(adminRoleService.updateRole(br)>0) { @@ -145,7 +143,7 @@ public class AuthRoleController { return ResponseData.error("角色id不能为空!"); } ResultUserRole rr=adminRoleService.findRoleById(id); - if(rr != null && rr.getIsDefault() <= 10) + if(rr != null && rr.getIsDefault() == 1) { return ResponseData.error("内置角色不能删除!"); } @@ -171,7 +169,8 @@ public class AuthRoleController { TreeNode node =new TreeNode(r.getId()+"",r.getId()+"",r.getRoleName()); List sms= r.getSystemMenu(); for(String sm:sms){ - node.addLeaf(new TreeNode(sm,sm,sm.substring(4))); + if(StringUtils.isNotBlank(sm)) + node.addLeaf(new TreeNode(sm,sm,sm.substring(4))); } treeNodes.add(node); } diff --git a/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java b/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java index 4e72c82bba753336e36d20c90fa5da8a4fb56b14..9db4a37073db8d899ada27e97756d1fd53042acb 100644 --- a/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java +++ b/src/main/java/com/cetc32/dh/entity/BaseAdminUser.java @@ -599,16 +599,32 @@ public class BaseAdminUser extends NumberS { } public void setPermissions(Object permissions) { this.permissions=null; - if(permissions instanceof String) + if(permissions instanceof String){ + try{ + int i =Integer.valueOf((String )permissions); + if(i> Integer.MIN_VALUE) { + this.permissions=null; + return; + } + }catch (Exception e){ + + } this.permissions = (String)permissions; - else if(permissions instanceof String[] && null != permissions && ((String[])permissions).length>0){ + }else if(permissions instanceof String[] && null != permissions && ((String[])permissions).length>0){ this.permissions =","; - for(String s :((String[])permissions) ) + for(String s :((String[])permissions) ){ + if(StringUtils.isBlank(s) || !s.contains("S")) + continue; this.permissions += s+","; + } }else if(permissions instanceof List && null != permissions && ((List)permissions).size()>0){ + this.permissions =","; - for(String s :((List)permissions)) + for(String s :((List)permissions)){ + if(StringUtils.isBlank(s)|| !s.contains("S")) + continue; this.permissions += s+","; + } } } /*public void setPermissions(String[] permissions) { diff --git a/src/main/java/com/cetc32/dh/mybatis/SystemVisitMapper.java b/src/main/java/com/cetc32/dh/mybatis/SystemVisitMapper.java index 5d4151d42b3953c887aadf955e3a52392e8d421b..e51ee56b60c0de94bc52bbd5a1916be6d734fc52 100644 --- a/src/main/java/com/cetc32/dh/mybatis/SystemVisitMapper.java +++ b/src/main/java/com/cetc32/dh/mybatis/SystemVisitMapper.java @@ -19,4 +19,5 @@ import java.util.List; public interface SystemVisitMapper { public void insertOrUpdateSystemVisit(SystemVisitLog sysInfo); public List selectLatest7Days(@Param("userName") String userName); + public Integer deleteUserSysCode(@Param("username")String username,@Param("list") List list); } diff --git a/src/main/java/com/cetc32/dh/service/AdminUserService.java b/src/main/java/com/cetc32/dh/service/AdminUserService.java index 64bce895eb55cd60f395b6bcf43f076f725c2b08..46259c85b1638f48d88aee7587675d9da91334e1 100644 --- a/src/main/java/com/cetc32/dh/service/AdminUserService.java +++ b/src/main/java/com/cetc32/dh/service/AdminUserService.java @@ -34,6 +34,7 @@ public interface AdminUserService { List findUserByCondition(BaseAdminUser userInfo); Integer countUserByCondition(BaseAdminUser user); + @Deprecated Map updateUser(BaseAdminUser user); BaseAdminUser getUserById(Integer id); diff --git a/src/main/java/com/cetc32/dh/service/impl/AdminUserServiceImpl.java b/src/main/java/com/cetc32/dh/service/impl/AdminUserServiceImpl.java index 2951fc093c6325027f43d97c0bf2223ae5db905c..145e395cdac1d25f78895da9c3a8c56bbf2c04cb 100644 --- a/src/main/java/com/cetc32/dh/service/impl/AdminUserServiceImpl.java +++ b/src/main/java/com/cetc32/dh/service/impl/AdminUserServiceImpl.java @@ -19,15 +19,13 @@ import com.cetc32.dh.entity.AreaCommon; import com.cetc32.dh.entity.BaseAdminUser; import com.cetc32.dh.entity.Department; import com.cetc32.dh.listener.ContainerStartedListener; -import com.cetc32.dh.mybatis.AreaCommonMapper; -import com.cetc32.dh.mybatis.BaseAdminRoleMapper; -import com.cetc32.dh.mybatis.BaseAdminUserMapper; -import com.cetc32.dh.mybatis.DepartmentMapper; +import com.cetc32.dh.mybatis.*; import com.cetc32.dh.service.AdminUserService; import com.cetc32.dh.utils.CommonVariable; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import io.swagger.models.auth.In; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -57,7 +55,8 @@ public class AdminUserServiceImpl implements AdminUserService { private DepartmentMapper departmentMapper; @Autowired - private AreaCommonMapper areaCommonMapper; + SystemVisitMapper systemVisitMapper; + //private AreaCommonMapper areaCommonMapper; @Override @@ -153,7 +152,23 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public int updateUserInfo(BaseAdminUser user) { - return baseAdminUserMapper.updateUser(user); + ArrayListlist =new ArrayList<>(); + if(StringUtils.isNotBlank(user.getPermissions())){ + String ps[]= user.getPermissions().split(","); + + for(String s:ps){ + if(s.length()>4){ + list.add(s.substring(0,4)); + } + } + } + if ( baseAdminUserMapper.updateUser(user) >0 ){ + if(StringUtils.isNotBlank(user.getSysUserName() ) && list.size()>0){ + systemVisitMapper.deleteUserSysCode(user.getSysUserName(), list); + } + return 1; + } + return -1; } /** * 更新用户 @@ -161,6 +176,7 @@ public class AdminUserServiceImpl implements AdminUserService { * @return Map */ @Override + @Deprecated public Map updateUser(BaseAdminUser user) { Map data = new HashMap(); Integer id = user.getId(); diff --git a/src/main/java/com/cetc32/dh/service/impl/SysInfoServiceImpl.java b/src/main/java/com/cetc32/dh/service/impl/SysInfoServiceImpl.java index b01a794b91a063650bb95f1fb4bde96792163464..af1f57977216f4b5a7ac5f806c4075aaf3de7726 100644 --- a/src/main/java/com/cetc32/dh/service/impl/SysInfoServiceImpl.java +++ b/src/main/java/com/cetc32/dh/service/impl/SysInfoServiceImpl.java @@ -19,6 +19,7 @@ import com.cetc32.webutil.common.util.SecurityUserUtil; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; @@ -33,6 +34,8 @@ public class SysInfoServiceImpl implements SysInfoService { UserVisitMapper userVisitMapper; @Autowired SystemVisitMapper systemVisitMapper; + @Value("${sso.syscode}") + String sysCode; @Override public List selectAll() { @@ -112,8 +115,11 @@ public class SysInfoServiceImpl implements SysInfoService { HashSet sysCodes = new HashSet<>(); for (String p : permissions) { - if (StringUtils.isNotBlank(p)) + if (StringUtils.isNotBlank(p)){ + if(p.contains(sysCode) && !p.contains(sysCode+"*")) + continue; sysCodes.add(p.substring(0, 4)); + } } return "'"+(sysCodes.toString() .replace("[", "") diff --git a/src/main/resources/application-xwybjb.yml b/src/main/resources/application-xwybjb.yml index 6d20cce00b2508e19367431e007ffffd3e43ccdf..56e8fea5beff695265ceeeda62a61a652e6bda69 100644 --- a/src/main/resources/application-xwybjb.yml +++ b/src/main/resources/application-xwybjb.yml @@ -7,11 +7,11 @@ spring: application: name: dhManager datasource: - url: jdbc:postgresql://180.184.65.203:5432/dhmanage + url: jdbc:postgresql://localhost:5432/dhmanage #url: jdbc:postgresql://192.168.1.60:5432/dhmanage username: postgres - #password: 123456 - password: Zdk@824. + password: 123456 + #password: Zdk@824. driver-class-name: org.postgresql.Driver # datasource: @@ -59,6 +59,7 @@ rootPath: /root/daohang/data myPath: ${rootPath}myPath writePath: ${rootPath}/product eip: http://localhost:8080/ +startCode: 000000 #verifyUrl: ${sso.authcenter}/rest/auth/verify?token= #passportUrl: ${sso.authcenter}/?ReturnUrl= #defaultLoginRequiredEnable: false @@ -74,3 +75,5 @@ sso: #loginInclude: /rest/auth/**,/rest/role/**,/rest/audit/** syscode: S000 basePermission: S000接口用户 + #单位是毫秒 + tokeAge : 3600000 diff --git a/src/main/resources/mapper/BaseAdminUserMapper.xml b/src/main/resources/mapper/BaseAdminUserMapper.xml index 0447e1de38ecbd9297411e57b403617cbfd3c133..7212cb65198bf8b5bac451afa05cf5b40863bcac 100644 --- a/src/main/resources/mapper/BaseAdminUserMapper.xml +++ b/src/main/resources/mapper/BaseAdminUserMapper.xml @@ -30,7 +30,7 @@ id,sys_user_name,sys_user_pwd,user_status,reg_time,user_phone,role_id,areacode,security,department, web_login_count, web_login_status, web_login_time, app_login_status, - app_login_time, app_login_count, loginfailed,realname,realdepartment,userbd + app_login_time, app_login_count, loginfailed,realname,realdepartment,userbd,permissions @@ -89,7 +89,7 @@ userbd = #{userBD}, - realname = #{realName} + realname = #{realName}, permissions = #{permissions} @@ -147,7 +147,7 @@ user_status = #{userStatus} - and sys_user_name LIKE CONCAT('%' , #{sysUserName} , '%') + and (sys_user_name LIKE CONCAT('%' , #{sysUserName} , '%') or realname LIKE CONCAT('%' , #{sysUserName} , '%')) and role_id LIKE CONCAT('%' , #{roleId} , '%') diff --git a/src/main/resources/mapper/SystemVisitMapper.xml b/src/main/resources/mapper/SystemVisitMapper.xml index c487c7e95d164e9ba1e6caac1d6908c1e2c596e0..8e535b82216c2cabf17b2d0378c5a32c43a88135 100644 --- a/src/main/resources/mapper/SystemVisitMapper.xml +++ b/src/main/resources/mapper/SystemVisitMapper.xml @@ -39,10 +39,12 @@ GROUP BY logtime ORDER BY logtime DESC limit 7; - - - - + + delete from systemvisit_log where username=#{username} and syscode not in + + #{code} + +
-

统一认证登陆系统

+

导航图生产与服务系统(一期)

@@ -103,12 +103,12 @@ if(data.code == "200"){ var j=0 ,len=0; setCookie("token",data.data.token,2*60*60*1000); - for(j=0,len=data.data.role.length;j