Merge branch 'master' into eureka

eureka
tanghc 5 years ago
commit bdebc2004c
  1. 58
      sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/common/MyApiSessionManager.java
  2. 3
      sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java

@ -0,0 +1,58 @@
package com.gitee.sop.adminserver.common;
import com.gitee.easyopen.exception.ApiException;
import com.gitee.easyopen.session.ApiSessionManager;
import com.google.common.cache.LoadingCache;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
/**
* @author tanghc
*/
@Slf4j
public class MyApiSessionManager extends ApiSessionManager {
private volatile LoadingCache<String, HttpSession> cache;
@Override
public HttpSession getSession(String sessionId) {
if (sessionId == null) {
return this.createSession(sessionId);
}
try {
return getCache().get(sessionId);
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new ApiException("create session error");
}
}
/**
* 创建一个session
*
* @param sessionId 传null将返回一个新session
* @return 返回session
*/
@Override
protected HttpSession createSession(String sessionId) {
ServletContext servletContext = getServletContext();
HttpSession session = this.newSession(sessionId, servletContext);
session.setMaxInactiveInterval(getSessionTimeout());
getCache().put(session.getId(), session);
return session;
}
public LoadingCache<String, HttpSession> getCache() {
if (cache == null) {
synchronized (ApiSessionManager.class) {
if (cache == null) {
cache = buildCache();
}
}
}
return cache;
}
}

@ -8,6 +8,7 @@ import com.gitee.easyopen.ApiParamParser;
import com.gitee.easyopen.ParamNames;
import com.gitee.easyopen.interceptor.ApiInterceptor;
import com.gitee.easyopen.session.ApiSessionManager;
import com.gitee.sop.adminserver.common.MyApiSessionManager;
import com.gitee.sop.adminserver.interceptor.LoginInterceptor;
import com.gitee.sop.adminserver.service.RegistryService;
import com.gitee.sop.adminserver.service.impl.RegistryServiceEurekaImpl;
@ -48,7 +49,7 @@ public class WebConfig {
, SerializerFeature.WriteDateUseDateFormat)
);
ApiSessionManager apiSessionManager = new ApiSessionManager();
ApiSessionManager apiSessionManager = new MyApiSessionManager();
// session有效期
int timeout = NumberUtils.toInt(accessTokenTimeout, 30);
apiSessionManager.setSessionTimeout(timeout);

Loading…
Cancel
Save