From 8142e364bbc601ae07513ecd89dd754743d7c9cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=94=E5=8D=A0=E5=8D=AB?= <825193156@qq.com> Date: Tue, 30 Jul 2019 15:11:35 +0800 Subject: [PATCH] fix bug. Client ip changes, sessionId cannot be accessed modify(#622) (#653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Filtering the log of one task to the log of another task * Filtering the log of one task to the log of another task update * rollback * The log shows confusion * update loggerserver * update * datasource connect error modify * rollback code,logger server log filter ,process variables modify local variables * Client ip changes, sessionId cannot be accessed modify --- .../api/service/SessionService.java | 6 ++--- .../escheduler/dao/mapper/SessionMapper.java | 24 ++++--------------- .../dao/mapper/SessionMapperProvider.java | 6 ++--- 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/escheduler-api/src/main/java/cn/escheduler/api/service/SessionService.java b/escheduler-api/src/main/java/cn/escheduler/api/service/SessionService.java index a1bf74395..fac31ceed 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/service/SessionService.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/service/SessionService.java @@ -68,7 +68,7 @@ public class SessionService extends BaseService{ String ip = BaseController.getClientIpAddress(request); logger.info("get session: {}, ip: {}", sessionId, ip); - return sessionMapper.queryByIdAndIp(sessionId, ip); + return sessionMapper.queryBySessionId(sessionId); } /** @@ -80,7 +80,7 @@ public class SessionService extends BaseService{ */ public String createSession(User user, String ip) { // logined - Session session = sessionMapper.queryByUserIdAndIp(user.getId(), ip); + Session session = sessionMapper.queryByUserId(user.getId()); Date now = new Date(); /** @@ -126,7 +126,7 @@ public class SessionService extends BaseService{ /** * query session by user id and ip */ - Session session = sessionMapper.queryByUserIdAndIp(loginUser.getId(), ip); + Session session = sessionMapper.queryByUserId(loginUser.getId()); //delete session sessionMapper.deleteById(session.getId()); } diff --git a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapper.java b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapper.java index bd67458d5..1d9477011 100644 --- a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapper.java +++ b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapper.java @@ -57,25 +57,10 @@ public interface SessionMapper { int update(@Param("sessionId") String sessionId, @Param("loginTime") Date loginTime); - /** - * query by session id - * @param sessionId - * @return - */ - @Results(value = {@Result(property = "id", column = "id", javaType = String.class, jdbcType = JdbcType.VARCHAR), - @Result(property = "userId", column = "user_id", javaType = Integer.class, jdbcType = JdbcType.INTEGER), - @Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR), - @Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE) - }) - @SelectProvider(type = SessionMapperProvider.class, method = "queryById") - Session queryById(@Param("sessionId") int sessionId); - - /** * query by session id and ip * * @param sessionId - * @param ip * @return */ @Results(value = { @@ -84,14 +69,13 @@ public interface SessionMapper { @Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR), @Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE) }) - @SelectProvider(type = SessionMapperProvider.class, method = "queryByIdAndIp") - Session queryByIdAndIp(@Param("sessionId") String sessionId, @Param("ip") String ip); + @SelectProvider(type = SessionMapperProvider.class, method = "queryBySessionId") + Session queryBySessionId(@Param("sessionId") String sessionId); /** * query by user id and ip * @param userId - * @param ip * @return */ @Results(value = { @@ -100,7 +84,7 @@ public interface SessionMapper { @Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR), @Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE) }) - @SelectProvider(type = SessionMapperProvider.class, method = "queryByUserIdAndIp") - Session queryByUserIdAndIp(@Param("userId") int userId, @Param("ip") String ip); + @SelectProvider(type = SessionMapperProvider.class, method = "queryByUserId") + Session queryByUserId(@Param("userId") int userId); } diff --git a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapperProvider.java b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapperProvider.java index 9bf9f8f94..ebb278616 100644 --- a/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapperProvider.java +++ b/escheduler-dao/src/main/java/cn/escheduler/dao/mapper/SessionMapperProvider.java @@ -107,14 +107,13 @@ public class SessionMapperProvider { * @param parameter * @return */ - public String queryByIdAndIp(Map parameter) { + public String queryBySessionId(Map parameter) { return new SQL() {{ SELECT("*"); FROM(TABLE_NAME); WHERE("`id` = #{sessionId}"); - WHERE("`ip` = #{ip}"); }}.toString(); } @@ -123,14 +122,13 @@ public class SessionMapperProvider { * @param parameter * @return */ - public String queryByUserIdAndIp(Map parameter) { + public String queryByUserId(Map parameter) { return new SQL() {{ SELECT("*"); FROM(TABLE_NAME); WHERE("`user_id` = #{userId}"); - WHERE("`ip` = #{ip}"); }}.toString(); } } -- GitLab