From 5d6d6ce8574c52c8c267f6c655c450cc32a13366 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 08 十月 2023 15:25:51 +0800 Subject: [PATCH] 修改令牌的管理接口 --- src/main/java/com/lf/server/service/sys/TokenService.java | 118 +++++++++----- src/main/java/com/lf/server/controller/show/ApplyController.java | 2 src/main/java/com/lf/server/mapper/sys/TokenMapper.java | 16 ++ src/main/java/com/lf/server/controller/sys/TokenController.java | 128 ++++++++++++++- src/main/java/com/lf/server/interceptor/AuthInterceptor.java | 9 src/main/java/com/lf/server/helper/StringHelper.java | 12 + src/main/java/com/lf/server/entity/all/StaticData.java | 4 说明.txt | 120 ++++---------- src/main/resources/mapper/sys/TokenMapper.xml | 13 + 9 files changed, 273 insertions(+), 149 deletions(-) diff --git a/src/main/java/com/lf/server/controller/show/ApplyController.java b/src/main/java/com/lf/server/controller/show/ApplyController.java index b39f129..3d6f7c2 100644 --- a/src/main/java/com/lf/server/controller/show/ApplyController.java +++ b/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); } diff --git a/src/main/java/com/lf/server/controller/sys/TokenController.java b/src/main/java/com/lf/server/controller/sys/TokenController.java index ed7080d..b27a3e5 100644 --- a/src/main/java/com/lf/server/controller/sys/TokenController.java +++ b/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("璇d涓嶅瓨鍦�", 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("璇oken涓嶅瓨鍦ㄦ垨宸插け鏁�", 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); + } + } } diff --git a/src/main/java/com/lf/server/entity/all/StaticData.java b/src/main/java/com/lf/server/entity/all/StaticData.java index a24464a..93e8628 100644 --- a/src/main/java/com/lf/server/entity/all/StaticData.java +++ b/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; diff --git a/src/main/java/com/lf/server/helper/StringHelper.java b/src/main/java/com/lf/server/helper/StringHelper.java index 855596c..c0ea623 100644 --- a/src/main/java/com/lf/server/helper/StringHelper.java +++ b/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); } } diff --git a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java index 3d55891..9dd6838 100644 --- a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java +++ b/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.妫�鏌ョ櫧鍚嶅崟鍜孖P涓�鑷存�� if (!checkWhiteList(ip, request)) { - // 妫�鏌P涓�鑷存�� if (!checkIpSource(ip, token)) { return WebHelper.writeStr2Page(response, ILLEGAL_TOKEN); } @@ -172,11 +171,11 @@ } /** - * 妫�鏌P涓�鑷存�� + * 妫�鏌P涓�鑷存�э細鍥哄畾浠ょ墝涓嶆鏌� */ 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); } } diff --git a/src/main/java/com/lf/server/mapper/sys/TokenMapper.java b/src/main/java/com/lf/server/mapper/sys/TokenMapper.java index 0be1a6f..1d4b5c8 100644 --- a/src/main/java/com/lf/server/mapper/sys/TokenMapper.java +++ b/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 diff --git a/src/main/java/com/lf/server/service/sys/TokenService.java b/src/main/java/com/lf/server/service/sys/TokenService.java index ec92be1..41f1e68 100644 --- a/src/main/java/com/lf/server/service/sys/TokenService.java +++ b/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; } } diff --git a/src/main/resources/mapper/sys/TokenMapper.xml b/src/main/resources/mapper/sys/TokenMapper.xml index 6202595..7d1ae5a 100644 --- a/src/main/resources/mapper/sys/TokenMapper.xml +++ b/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 diff --git "a/\350\257\264\346\230\216.txt" "b/\350\257\264\346\230\216.txt" index 394d986..315e1b7 100644 --- "a/\350\257\264\346\230\216.txt" +++ "b/\350\257\264\346\230\216.txt" @@ -1,3 +1,24 @@ +------------------------------------------------------------------------------- 浼樺寲缃戠粶 +gpedit.msc +璁$畻鏈篭绠$悊妯℃澘\缃戠粶\Qos鏁版嵁鍖呰鍒掔▼搴廫闄愬埗鍙繚鐣欏甫瀹� -> 鍚敤锛�0% +netsh interface tcp show global # 鏌ョ湅鑷姩浼樺寲绾у埆 + +銆愮綉缁滆繛鎺ャ�戔啋鍙抽敭銆愬睘鎬с�戔啋銆愰厤缃�戔啋銆愰珮绾с�戔啋銆愬睘鎬с�戔啋銆怲CP/UDP 鏍¢獙鍜屽嵏杞斤紙IPv6鎴栬�匢Pv4锛夈�戔啋鍙宠竟鐨勩�愬�笺�戦�夋嫨绂佺敤銆� +銆� 婕父涓诲姩鎬� 銆戔啋銆愭渶浣庡�笺�� +銆愰�熷害/鍙屽伐銆戠殑銆愬�笺�戔啋銆�100MB 鍏ㄥ弻宸ャ�戙�� +銆愮數婧愮鐞嗐�戝叧闂�"鍏佽璁$畻鏈哄叧闂璁惧浠ヨ妭绾︾敤鐢�". + +ipconfig /flushdns # 鍒锋柊DNS缂撳瓨 +TCPOptimizer.exe锛岃嚜鍔ㄤ紭鍖� + +regedit.msc +HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows +鏂板缓椤圭洰 Psched锛屽彸鍑绘柊寤� NonBestEfortLimit锛孌WORD(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锛歨ttps://blog.csdn.net/weixin_43407520/article/details/122165848 GDAL锛歨ttps://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锛歨ttp://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锛宔ff -5.鏁版嵁鍙戝竷锛氭彁渚沇MS鏈嶅姟鍦板潃锛�100.10.1.169锛�103.85.165.99:8050 -6.Druid锛歨ttp://127.0.0.1:12316/server/druid/index.html -7.Index锛歨ttp://103.85.165.99:8052/web ------------------------------------------------------------------------------- Java涓嶱ostgres绫诲瀷瀵瑰簲 - 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鍜宩s瀹炵幇aes鍔犲瘑瑙e瘑锛� 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 @@ 鏈嶅姟绔細鏍稿績妗嗘灦锛歋pringBoot锛屾寔涔呭眰妗嗘灦锛歁ybatis锛屽畨鍏ㄦ鏋讹細Shiro锛岀紦瀛橈細redis 鍓嶇锛欽S妗嗘灦锛歷ue.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 // 鑾峰彇铏氭嫙鐩綍(涓婁笅鏂囩洰褰�)锛氳櫄鎷熻矾寰勯�氳繃鍦╝pplication閰嶇疆褰撲腑鍙互閰嶇疆 -- Gitblit v1.9.3