管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-10-08 5d6d6ce8574c52c8c267f6c655c450cc32a13366
修改令牌的管理接口
已修改9个文件
422 ■■■■■ 文件已修改
src/main/java/com/lf/server/controller/show/ApplyController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/sys/TokenController.java 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/all/StaticData.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/StringHelper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/interceptor/AuthInterceptor.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/sys/TokenMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/sys/TokenService.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sys/TokenMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
说明.txt 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/show/ApplyController.java
@@ -234,7 +234,7 @@
            int rows = applyService.updateForSubmit(ue.getId(), applyEntity.getId(), flowEntity.getId());
            applyEntity = applyService.selectById(applyEntity.getId());
            if (StaticData.TEN == applyEntity.getStatus()) {
            if (StaticData.I10 == applyEntity.getStatus()) {
                UserEntity user = userService.selectUser(applyEntity.getUserid());
                applyService.zipDbData(user, applyEntity);
            }
src/main/java/com/lf/server/controller/sys/TokenController.java
@@ -3,8 +3,11 @@
import com.lf.server.annotation.SysLog;
import com.lf.server.controller.all.BaseController;
import com.lf.server.entity.all.ResponseMsg;
import com.lf.server.entity.all.SettingData;
import com.lf.server.entity.all.StaticData;
import com.lf.server.entity.sys.TokenEntity;
import com.lf.server.entity.sys.UserEntity;
import com.lf.server.helper.StringHelper;
import com.lf.server.service.sys.TokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -18,10 +21,9 @@
/**
 * ä»¤ç‰Œè¡¨
 * @author  sws
 * @author WWW
 * @date 2022-09-28
 */
@Api(tags = "运维管理\\令牌管理")
@RestController
@RequestMapping("/token")
@@ -76,25 +78,31 @@
    }
    @SysLog()
    @ApiOperation(value = "插入多条")
    @ApiOperation(value = "创建新令牌")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "list", value = "实体类集合", dataType = "List<TokenEntity>", paramType = "body", example = "")
            @ApiImplicitParam(name = "type", value = "令牌类别:0-临时,1-固定", dataType = "Integer", paramType = "query", example = "1"),
            @ApiImplicitParam(name = "min", value = "分钟数:默认1个月", dataType = "Integer", paramType = "query", example = "43200")
    })
    @PostMapping(value = "/insertTokens", produces = "application/json; charset=UTF-8")
    public ResponseMsg<Integer> insertTokens(@RequestBody List<TokenEntity> list, HttpServletRequest req) {
    @GetMapping(value = "/insertNewToken")
    public ResponseMsg<Object> insertNewToken(Integer type, Integer min, HttpServletRequest req) {
        try {
            UserEntity ue = tokenService.getCurrentUser(req);
            if (ue != null) {
                for (TokenEntity entity : list) {
                    entity.setCreateUser(ue.getId());
                }
            if (null == type || type > 1) {
                type = 0;
            }
            if (null == min || min < StaticData.I10) {
                min = SettingData.TOKEN_EXPIRE;
            }
            int count = tokenService.insertTokens(list);
            UserEntity ue = tokenService.getCurrentUser(req);
            TokenEntity te = tokenService.getNewToken(type, min, ue, req);
            int rows = tokenService.insertToken(te);
            if (0 == rows) {
                return fail("创建令牌失败", null);
            }
            return success(count);
            return success(te);
        } catch (Exception ex) {
            return fail(ex, -1);
            return fail(ex, null);
        }
    }
@@ -125,7 +133,9 @@
            if (ids == null || ids.isEmpty()) {
                return fail("id数组不能为空", -1);
            }
            int count = tokenService.deleteTokens(ids);
            return success(count);
        } catch (Exception ex) {
            return fail(ex, -1);
@@ -155,6 +165,58 @@
    }
    @SysLog()
    @ApiOperation(value = "根据ID更新令牌为失效")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "令牌ID", dataType = "Integer", paramType = "query", example = "6563")
    })
    @GetMapping(value = "/updateExpireById")
    public ResponseMsg<Integer> updateExpireById(Integer id, HttpServletRequest req) {
        try {
            if (null == id || id < 0) {
                return fail("id参数无效", 0);
            }
            TokenEntity entity = tokenService.selectOneById(id);
            if (null == entity) {
                return fail("该id不存在", 0);
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            entity.setUpdateUser(ue.getId());
            int count = tokenService.updateTokenExpire(entity);
            return success(count);
        } catch (Exception ex) {
            return fail(ex, -1);
        }
    }
    @SysLog()
    @ApiOperation(value = "根据Token更新令牌为失效")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "tk", value = "令牌", dataType = "String", paramType = "query", example = "2edea2a2-e307-4baa-992c-b477ce0566dd")
    })
    @GetMapping(value = "/updateExpireByToken")
    public ResponseMsg<Integer> updateExpireByToken(String tk, HttpServletRequest req) {
        try {
            if (StringHelper.isEmpty(tk)) {
                return fail("token参数无效", 0);
            }
            TokenEntity entity = tokenService.selectOneByToken(tk);
            if (null == entity) {
                return fail("该token不存在或已失效", 0);
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            entity.setUpdateUser(ue.getId());
            int count = tokenService.updateTokenExpire(entity);
            return success(count);
        } catch (Exception ex) {
            return fail(ex, -1);
        }
    }
    @SysLog()
    @ApiOperation(value = "根据ID查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1658")
@@ -169,4 +231,42 @@
            return fail(ex, null);
        }
    }
    @SysLog()
    @ApiOperation(value = "根据ID查询(有效期内的)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "6563")
    })
    @GetMapping(value = "/selectOneById")
    public ResponseMsg<TokenEntity> selectOneById(Integer id) {
        try {
            if (null == id || id < 0) {
                return fail("id参数无效", null);
            }
            TokenEntity tokenEntity = tokenService.selectOneById(id);
            return success(tokenEntity);
        } catch (Exception ex) {
            return fail(ex, null);
        }
    }
    @SysLog()
    @ApiOperation(value = "根据token查询(有效期内的)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "tk", value = "令牌", dataType = "String", paramType = "query", example = "2edea2a2-e307-4baa-992c-b477ce0566dd")
    })
    @GetMapping(value = "/selectOneByToken")
    public ResponseMsg<TokenEntity> selectOneByToken(String tk) {
        try {
            if (StringHelper.isEmpty(tk)) {
                return fail("token参数无效", null);
            }
            TokenEntity tokenEntity = tokenService.selectOneByToken(tk);
            return success(tokenEntity);
        } catch (Exception ex) {
            return fail(ex, null);
        }
    }
}
src/main/java/com/lf/server/entity/all/StaticData.java
@@ -16,13 +16,15 @@
     */
    public static String[] EXCLUDE_PATH = new String[]{"/sign/", "/perms/", "/fmeit/", "/crds/", "/floatserver/", "/wmts/select", "/onemap/", "/swagger", "/error"};
    public final static int I1 = 1;
    public final static int TWO = 2;
    public final static int FOUR = 4;
    public final static int NINE = 9;
    public final static int TEN = 10;
    public final static int I10 = 10;
    public final static int SIXTEEN = 16;
src/main/java/com/lf/server/helper/StringHelper.java
@@ -2,6 +2,7 @@
import com.lf.server.entity.all.StaticData;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -193,11 +194,16 @@
    /**
     * èŽ·å–GUID
     *
     * @return
     */
    public static String getGuid() {
        return UUID.randomUUID().toString();
    }
    /**
     * èŽ·å–åˆ†é’Ÿå·®æ•°
     */
    public static long getMinuteDifference(Timestamp ts) {
        return (ts.getTime() - new Date().getTime()) / 1000 / 60;
    }
    /**
@@ -216,7 +222,7 @@
        StringBuilder sb = new StringBuilder();
        for (T t : list) {
            if (null != t) {
                sb.append(t.toString() + join);
                sb.append(t.toString()).append(join);
            }
        }
src/main/java/com/lf/server/interceptor/AuthInterceptor.java
@@ -64,7 +64,7 @@
            }
            // 3.获取用户令牌
            UserEntity ue = sysService.tokenService.getCurrentUser(request);
            UserEntity ue = sysService.tokenService.getUserByToken(token);
            if (ue == null) {
                return WebHelper.writeStr2Page(response, NO_LOGIN);
            }
@@ -85,9 +85,8 @@
                return true;
            }
            // 7.检查白名单
            // 7.检查白名单和IP一致性
            if (!checkWhiteList(ip, request)) {
                // æ£€æŸ¥IP一致性
                if (!checkIpSource(ip, token)) {
                    return WebHelper.writeStr2Page(response, ILLEGAL_TOKEN);
                }
@@ -172,11 +171,11 @@
    }
    /**
     * æ£€æŸ¥IP一致性
     * æ£€æŸ¥IP一致性:固定令牌不检查
     */
    private boolean checkIpSource(String ip, String token) {
        TokenEntity te = sysService.tokenService.getEntityByToken(token);
        return te.getIp().equals(ip);
        return StaticData.I1 == te.getType() || te.getIp().equals(ip);
    }
}
src/main/java/com/lf/server/mapper/sys/TokenMapper.java
@@ -44,6 +44,22 @@
    public TokenEntity selectToken(int id);
    /**
     * æ ¹æ®id集合查询
     *
     * @param ids
     * @return
     */
    public List<TokenEntity> selectByIds(List<Integer> ids);
    /**
     * æ ¹æ®id查询一条记录
     *
     * @param id
     * @return
     */
    public TokenEntity selectOneById(Integer id);
    /**
     * æ ¹æ®token值查询一条记录
     *
     * @param token
src/main/java/com/lf/server/service/sys/TokenService.java
@@ -9,9 +9,9 @@
import com.lf.server.helper.WebHelper;
import com.lf.server.mapper.sys.TokenMapper;
import com.lf.server.service.all.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
@@ -23,19 +23,18 @@
 * @author sws
 * @date 2022-09-28
 */
@Service
public class TokenService implements TokenMapper {
    @Autowired
    @Resource
    TokenMapper tokenMapper;
    @Autowired
    @Resource
    UserService usersService;
    @Autowired
    @Resource
    LoginService loginService;
    @Autowired
    @Resource
    RedisService redisService;
    @Override
@@ -55,6 +54,16 @@
    @Override
    public TokenEntity selectToken(int id) {
        return tokenMapper.selectToken(id);
    }
    @Override
    public List<TokenEntity> selectByIds(List<Integer> ids) {
        return tokenMapper.selectByIds(ids);
    }
    @Override
    public TokenEntity selectOneById(Integer id) {
        return tokenMapper.selectOneById(id);
    }
    @Override
@@ -79,11 +88,27 @@
    @Override
    public Integer deleteToken(int id) {
        TokenEntity entity = tokenMapper.selectToken(id);
        if (null == entity) {
            return 0;
        }
        clearCache(entity.getToken());
        return tokenMapper.deleteToken(id);
    }
    @Override
    public Integer deleteTokens(List<Integer> ids) {
        List<TokenEntity> list = tokenMapper.selectByIds(ids);
        if (null == list || list.isEmpty()) {
            return 0;
        }
        for (TokenEntity entity : list) {
            clearCache(entity.getToken());
        }
        return tokenMapper.deleteTokens(ids);
    }
@@ -94,6 +119,8 @@
    @Override
    public Integer updateTokenExpire(TokenEntity tokenEntity) {
        clearCache(tokenEntity.getToken());
        return tokenMapper.updateTokenExpire(tokenEntity);
    }
@@ -101,11 +128,18 @@
     * èŽ·å–æ–°çš„ä»¤ç‰Œå®žä½“ç±»
     */
    public TokenEntity getNewToken(UserEntity ue, HttpServletRequest req) {
        return getNewToken(0, SettingData.TOKEN_EXPIRE, ue, req);
    }
    /**
     * èŽ·å–æ–°çš„ä»¤ç‰Œå®žä½“ç±»
     */
    public TokenEntity getNewToken(Integer type, Integer min, UserEntity ue, HttpServletRequest req) {
        TokenEntity te = new TokenEntity();
        te.setToken(WebHelper.getGuid());
        te.setDuration(SettingData.TOKEN_EXPIRE);
        te.setExpire(WebHelper.getTimestamp(SettingData.TOKEN_EXPIRE));
        te.setType(0);
        te.setDuration(min);
        te.setExpire(WebHelper.getTimestamp(min));
        te.setType(type);
        te.setIp(WebHelper.getIpAddress(req));
        te.setCreateUser(ue.getId());
        te.setUname(ue.getUname());
@@ -122,20 +156,9 @@
            return false;
        }
        // redis
        String tokenKey = RedisCacheKey.signTokenKey(token);
        if (redisService.hasKey(tokenKey)) {
            return true;
        }
        TokenEntity te = getEntityByToken(token);
        // db
        TokenEntity te = selectOneByToken(token);
        if (te != null) {
            redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES);
            return true;
        }
        return false;
        return null != te;
    }
    /**
@@ -143,7 +166,7 @@
     */
    public Boolean logout(String token, HttpServletRequest req, HttpServletResponse res) {
        TokenEntity te = getEntityByToken(token);
        if (te == null) {
        if (null == te) {
            return false;
        }
@@ -156,16 +179,10 @@
            return false;
        }
        // æ¸…除缓存
        String tokenKey = RedisCacheKey.signTokenKey(token);
        redisService.delete(tokenKey);
        String userKey = RedisCacheKey.signUserKey(te.getToken());
        redisService.delete(userKey);
        // db,设置令牌过期
        te.setUpdateUser(ue.getId());
        Integer rows = updateTokenExpire(te);
        if (rows == 0) {
        if (0 == rows) {
            return false;
        }
@@ -177,13 +194,19 @@
    }
    /**
     * æ¸…除缓存
     */
    public void clearCache(String token) {
        String tokenKey = RedisCacheKey.signTokenKey(token);
        redisService.delete(tokenKey);
        String userKey = RedisCacheKey.signUserKey(token);
        redisService.delete(userKey);
    }
    /**
     * æ ¹æ®ä»¤ç‰ŒèŽ·å–å®žä½“
     */
    public TokenEntity getEntityByToken(String token) {
        if (StringHelper.isNull(token)) {
            return null;
        }
        String tokenKey = RedisCacheKey.signTokenKey(token);
        // redis
@@ -194,8 +217,11 @@
        // db
        TokenEntity te = selectOneByToken(token);
        if (te != null) {
            redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES);
        if (null != te) {
            long min = StringHelper.getMinuteDifference(te.getExpire());
            if (min > 0) {
                redisService.put(tokenKey, te, min, TimeUnit.MINUTES);
            }
        }
        return te;
@@ -222,13 +248,20 @@
     */
    public UserEntity getCurrentUser(HttpServletRequest req) {
        String token = WebHelper.getToken(req);
        return getUserByToken(token);
    }
    /**
     * æ ¹æ®ä»¤ç‰ŒèŽ·å–ç”¨æˆ·
     */
    public UserEntity getUserByToken(String token) {
        if (StringHelper.isNull(token)) {
            return null;
        }
        String userKey = RedisCacheKey.signUserKey(token);
        // redis
        String userKey = RedisCacheKey.signUserKey(token);
        Object obj = redisService.get(userKey);
        if (obj instanceof UserEntity) {
            return (UserEntity) obj;
@@ -236,11 +269,8 @@
        // db
        UserEntity ue = usersService.selectByToken(token);
        if (ue != null) {
            TokenEntity te = getEntityByToken(token);
            if (te != null) {
                redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES);
            }
        if (null != ue) {
            getEntityByToken(token);
        }
        return ue;
@@ -276,6 +306,6 @@
        String key = RedisCacheKey.signPwdError(ue.getUid());
        Object objCount = redisService.get(key);
        return objCount != null && (int) objCount >= SettingData.PWD_ERR_COUNT;
        return null != objCount && (int) objCount >= SettingData.PWD_ERR_COUNT;
    }
}
src/main/resources/mapper/sys/TokenMapper.xml
@@ -47,6 +47,19 @@
        where id = #{id}
    </select>
    <select id="selectByIds" resultType="com.lf.server.entity.sys.TokenEntity">
        select * from lf.sys_token where id in
        <foreach item="id" collection="ids" index="index" open="(" separator="," close=")">
            #{id}
        </foreach>
    </select>
    <select id="selectOneById" resultType="com.lf.server.entity.sys.TokenEntity">
        select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName
        from lf.sys_token a
        where id = #{id} and expire > now() limit 1
    </select>
    <select id="selectOneByToken" resultType="com.lf.server.entity.sys.TokenEntity">
        select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName
        from lf.sys_token a
˵Ã÷.txt
@@ -1,3 +1,24 @@
------------------------------------------------------------------------------- ä¼˜åŒ–网络
gpedit.msc
计算机\管理模板\网络\Qos数据包计划程序\限制可保留带宽 -> å¯ç”¨ï¼Œ0%
netsh interface tcp show global # æŸ¥çœ‹è‡ªåŠ¨ä¼˜åŒ–çº§åˆ«
【网络连接】→右键【属性】→【配置】→【高级】→【属性】→【TCP/UDP æ ¡éªŒå’Œå¸è½½ï¼ˆIPv6或者IPv4)】→右边的【值】选择禁用。
【 æ¼«æ¸¸ä¸»åŠ¨æ€§ ã€‘→【最低值】
【速度/双工】的【值】→【100MB å…¨åŒå·¥ã€‘。
【电源管理】关闭"允许计算机关闭该设备以节约用电".
ipconfig /flushdns # åˆ·æ–°DNS缓存
TCPOptimizer.exe,自动优化
regedit.msc
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
新建项目 Psched,右击新建 NonBestEfortLimit,DWORD(32-位)值为 0。
------------------------------------------------------------------------------- Postgres修改Data
https://www.landui.com/docs-1599
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\postgresql-x64-14
修改 ImagePath:"C:\Program Files\PostgreSQL\14cm\bin\pg_ctl.exe" runservice -N "postgresql-x64-14" -D "C:\Program Files\PostgreSQL\14cm\data" -w
net start postgresql-x64-14 # é‡å¯
-------------------------------------------------------------------------------
Access:https://blog.csdn.net/weixin_43407520/article/details/122165848
GDAL:https://www.cnblogs.com/unlockth/p/14062076.html
@@ -15,59 +36,32 @@
https://blog.csdn.net/qq_43444401/article/details/125649414
https://blog.csdn.net/qq_43961619/article/details/124627871
http://127.0.0.1:12316/dict/selectCount?tab=sys_user
http://127.0.0.1:12316/Dict/selectByPage?tab=sys_user&pageSize=10&pageIndex=0
http://127.0.0.1:12316/Style/selectCount?name=edp
http://127.0.0.1:12316/Style/selectByPage?name=edp&pageSize=10&pageIndex=0
http://127.0.0.1/lf/sg/login.html
Druid:http://127.0.0.1:12316/server/druid/index.html
http://127.0.0.1:12316/swagger-ui.html
http://192.168.20.106:12316/swagger-ui.html
http://localhost:12316/sign/toIndex
http://localhost:12316/sign/toLogin
http://127.0.0.1:12316/sign/toLogin?service=http://www.sina.com.cn
------------------------------------------------------------------------------- é—®é¢˜è®°å½•
1.在线制图:出图成功要提示信息,要求能够定制字体大小、符号显示等
2.系统监控:状态信息允许导出表格 *
3.地下模式:挂载地下模型
4.三维特定格式:3dm,eff
5.数据发布:提供WMS服务地址,100.10.1.169,103.85.165.99:8050
6.Druid:http://127.0.0.1:12316/server/druid/index.html
7.Index:http://103.85.165.99:8052/web
------------------------------------------------------------------------------- Java与Postgres类型对应
    java8            postgreSQL
1    LocalDate        date
2    LocalTime        time
3    LocalDateTime    timestamp without timezone
4    OffsetDateTime    timestamp with timezone
5    String            varchar
6    String            text
7    Integer            int2
8    Integer            int4
9    Long            int8
10    Float            float4
11    Double            float8
12    BigDecimal        numeric
13    Boolean            bool
------------------------------------------------------------------------------- æœªå¯¹åº”çš„Controller
data/DownloadController
data/MetaFileController
sys/AttachController
sys/MsgController
http://127.0.0.1/data/test.kml,跨域:
java8                      postgreSQL
LocalDate                date
LocalTime                time
LocalDateTime      timestamp without timezone
OffsetDateTime    timestamp with timezone
String                      varchar
String                      text
Integer                    int2
Integer                    int4
Long                      int8
Float                      float4
Double                    float8
BigDecimal            numeric
Boolean                  bool
------------------------------------------------------------------------------- è·¨åŸŸ
chrome://flags/#block-insecure-private-network-requests
Block insecure private network requests. -> Disabled
进入bin目录,输入:ogrinfo --formats,中国石油天然气管道工程有限公司
-------------------------------------------------------------------------------
java和js实现aes加密解密:
https://blog.csdn.net/weixin_30663839/article/details/114049667
http://192.168.20.39:12306/
http://192.168.20.39:12315/
http://192.168.20.39:12316/
http://192.168.20.39:12316/server/druid/sql.html
-------------------------------------------------------------------------------
String path = System.getProperty("user.dir");
@@ -99,46 +93,10 @@
服务端:核心框架:SpringBoot,持久层框架:Mybatis,安全框架:Shiro,缓存:redis
前端:JS框架:vue.js,主页框架:adminLTE(基于Bootstrap),表格插件:jqGrid,树形表格:tree-table,树形插件:ztree,弹窗组件:layer,表单校验:validator
private static final String SQLSERVER_URL = "jdbc:sqlserver://192.168.0.77\\ZKZS; databaseName=xian";
------------------------------------------------------------------------------- floatserver
http://localhost:12316/floatserver/checkout/license
String str = EntityUtils.toString(entity, "UTF-8");
java -jar C:\360\luyten054\luyten-0.5.4.jar
请求:8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cf755f0dfd19be0d80e2573e0a2a22edca35215b390607b0ff68deab90c69296df60934315036bd8a64ee668a39502754b701be7534d0ca2e790161194d673d9454c44c570a1dbe604ac5952be731ca15809f9f4d43ad1b023f69981ce77abacc50e8e5217627eb236d5f6d114e00585d9a597f3a195b0b0c0ff8cf1e2445ca12e
响应:8dfb75298185cbcc4b2d485fdb4f25627f7aeb4dd41329076b5015586e4d56cfe2c56f12cd9852c447904210117b41fe2672b24d7e82fd581ad5a0983b501b5bcbe97d65dbbe770dbdc4a98e80d2966a71ecd0041a5282283bff853d70caf7aed671bc9c9d4bedf6d1d0294394861af40f195d68a965d957d53c78aa50ada3afc65d1a526c54648e6e081e8f7f7ab1c31b9f75916170e638b0b9216d30204864afe3a7a1bc8a6563bf44daf6a29e27c19f798c4f82dbb904ea4aa4fcc87a82226d9bf3e891ecb97b94263064fec025e3aa7c440d7c0e8ed559b84ae2438ec0fc438444a03c992883170ecdde20e08552efcf9d584de469930b27c81f946548d5c6e63e815671182b03b5e6e622ddb10a3f6a35ad3f44ec247a3b2dee0e936020d48efb7abc2d2abfb555f61d54c85eca
{"machineId":"dba5c0f908f92fbdb6f0a3f58a5a3193","isRegistered":true,"registeredModules":[1,3,4,9,10,11,12,13,17,25,30,33,37],"modules":[{"id":1,"name":"wms","group":"GISServer","title":"动态地图服务"},{"id":3,"name":"tms","group":"GISServer","title":"瓦片地图服务"},{"id":9,"name":"wfs","group":"GISServer","title":"要素服务"},{"id":12,"name":"wns","group":"GISServer","title":"网络分析服务"},{"id":13,"name":"geocode","group":"GISServer","title":"地理编码服务"},{"id":17,"name":"wcs","group":"GISServer","title":"栅格服务"},{"id":25,"name":"c3d","group":"GISServer","title":"三维模型服务"},{"id":30,"name":"cts","group":"GISServer","title":"三维地形服务"},{"id":33,"name":"cimservice","group":"CIMSuite","title":"语义模型服务"},{"id":37,"name":"websdk","group":"WEBSDK","title":"WEBSDK"},{"id":38,"name":"pw","group":"Parallelworld","title":" Parallelworld"},{"id":50,"name":"ext","group":"extension","title":"extension"}],"expireDate":1668486201730,"isFloating":true,"floatServerIp":"192.168.20.106","floatServerPort":12316,"message":"OK","success":true}
{"id":"dba5c0f908f92fbdb6f0a3f58a5a3193","expireDate":"2023-01-17","localId":"192.168.20.106|E0-70-EA-AA-B6-43","availableNum":12,"time":1668394770458,"licenseCode":"78a82f0920de0f557f8177bec1e48601c4dc25e4054a00728e4314b56528d3a1632de5298edee38a65412277977a174fea5d91c452b19ef138dbc2ba089ba632"}
------------------------------------------------------------------------------- æƒé™
管道基础大数据平台:           åˆ é™¤
综合展示\综合展示\查询:       ä¸‹è½½ã€ä¸Šä¼ 
综合展示\综合展示\标绘:       æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
综合展示\专题图:             ç»Ÿè®¡
综合展示\资料馆:             ä¸‹è½½
-------------------------------------------
数据管理\数据上传:           æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤ã€ä¸Šä¼ ã€ä¸‹è½½
数据管理\目录管理:           æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
数据管理\数据检索:           æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤ã€ä¸Šä¼ ã€ä¸‹è½½
数据管理\版本管理:           æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
数据管理\字典管理:           æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
数据管理\元数据管理:          æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤ã€ä¸Šä¼ ã€ä¸‹è½½
数据管理\样式管理:           æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤ã€ä¸Šä¼ ã€ä¸‹è½½
-------------------------------------------
运维管理\系统管理\菜单管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\系统管理\用户管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\系统管理\单位管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\系统管理\资源管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤ã€ä¸Šä¼ 
运维管理\系统管理\角色管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\系统管理\权限管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\授权管理\用户角色授权:新增、修改、删除
运维管理\授权管理\菜单权限授权:新增、修改、删除
运维管理\授权管理\角色菜单授权:新增、修改、删除
运维管理\授权管理\角色资源授权:新增、修改、删除
运维管理\运维监控\令牌管理:   æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\运维监控\黑白/名单:  æ–°å¢žã€ä¿®æ”¹ã€åˆ é™¤
运维管理\系统配置:           ä¿®æ”¹
------------------------------------------------------------------------------- Java Web操作
String getMethod() // èŽ·å–è¯·æ±‚æ–¹å¼: GET
// èŽ·å–è™šæ‹Ÿç›®å½•(上下文目录):虚拟路径通过在application配置当中可以配置