fix bug. Client ip changes, sessionId cannot be accessed modify(#622) (#653)

* 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
This commit is contained in:
乔占卫 2019-07-30 15:11:35 +08:00 committed by GitHub
parent 244bdd9646
commit 8142e364bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 27 deletions

View File

@ -68,7 +68,7 @@ public class SessionService extends BaseService{
String ip = BaseController.getClientIpAddress(request); String ip = BaseController.getClientIpAddress(request);
logger.info("get session: {}, ip: {}", sessionId, ip); 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) { public String createSession(User user, String ip) {
// logined // logined
Session session = sessionMapper.queryByUserIdAndIp(user.getId(), ip); Session session = sessionMapper.queryByUserId(user.getId());
Date now = new Date(); Date now = new Date();
/** /**
@ -126,7 +126,7 @@ public class SessionService extends BaseService{
/** /**
* query session by user id and ip * query session by user id and ip
*/ */
Session session = sessionMapper.queryByUserIdAndIp(loginUser.getId(), ip); Session session = sessionMapper.queryByUserId(loginUser.getId());
//delete session //delete session
sessionMapper.deleteById(session.getId()); sessionMapper.deleteById(session.getId());
} }

View File

@ -57,25 +57,10 @@ public interface SessionMapper {
int update(@Param("sessionId") String sessionId, @Param("loginTime") Date loginTime); 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 * query by session id and ip
* *
* @param sessionId * @param sessionId
* @param ip
* @return * @return
*/ */
@Results(value = { @Results(value = {
@ -84,14 +69,13 @@ public interface SessionMapper {
@Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR), @Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR),
@Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE) @Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE)
}) })
@SelectProvider(type = SessionMapperProvider.class, method = "queryByIdAndIp") @SelectProvider(type = SessionMapperProvider.class, method = "queryBySessionId")
Session queryByIdAndIp(@Param("sessionId") String sessionId, @Param("ip") String ip); Session queryBySessionId(@Param("sessionId") String sessionId);
/** /**
* query by user id and ip * query by user id and ip
* @param userId * @param userId
* @param ip
* @return * @return
*/ */
@Results(value = { @Results(value = {
@ -100,7 +84,7 @@ public interface SessionMapper {
@Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR), @Result(property = "ip", column = "ip", javaType = String.class, jdbcType = JdbcType.VARCHAR),
@Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE) @Result(property = "lastLoginTime", column = "last_login_time", javaType = Timestamp.class, jdbcType = JdbcType.DATE)
}) })
@SelectProvider(type = SessionMapperProvider.class, method = "queryByUserIdAndIp") @SelectProvider(type = SessionMapperProvider.class, method = "queryByUserId")
Session queryByUserIdAndIp(@Param("userId") int userId, @Param("ip") String ip); Session queryByUserId(@Param("userId") int userId);
} }

View File

@ -107,14 +107,13 @@ public class SessionMapperProvider {
* @param parameter * @param parameter
* @return * @return
*/ */
public String queryByIdAndIp(Map<String, Object> parameter) { public String queryBySessionId(Map<String, Object> parameter) {
return new SQL() {{ return new SQL() {{
SELECT("*"); SELECT("*");
FROM(TABLE_NAME); FROM(TABLE_NAME);
WHERE("`id` = #{sessionId}"); WHERE("`id` = #{sessionId}");
WHERE("`ip` = #{ip}");
}}.toString(); }}.toString();
} }
@ -123,14 +122,13 @@ public class SessionMapperProvider {
* @param parameter * @param parameter
* @return * @return
*/ */
public String queryByUserIdAndIp(Map<String, Object> parameter) { public String queryByUserId(Map<String, Object> parameter) {
return new SQL() {{ return new SQL() {{
SELECT("*"); SELECT("*");
FROM(TABLE_NAME); FROM(TABLE_NAME);
WHERE("`user_id` = #{userId}"); WHERE("`user_id` = #{userId}");
WHERE("`ip` = #{ip}");
}}.toString(); }}.toString();
} }
} }