管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-10-08 5d6d6ce8574c52c8c267f6c655c450cc32a13366
修改令牌的管理接口
已修改9个文件
420 ■■■■■ 文件已修改
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 118 ●●●●● 补丁 | 查看 | 原始文档 | 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 {
            if (null == type || type > 1) {
                type = 0;
            }
            if (null == min || min < StaticData.I10) {
                min = SettingData.TOKEN_EXPIRE;
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            if (ue != null) {
                for (TokenEntity entity : list) {
                    entity.setCreateUser(ue.getId());
                }
            TokenEntity te = tokenService.getNewToken(type, min, ue, req);
            int rows = tokenService.insertToken(te);
            if (0 == rows) {
                return fail("创建令牌失败", null);
            }
            int count = tokenService.insertTokens(list);
            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,跨域:
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配置当中可以配置