Warn if cache.web_sessions.maxAge is to small
Setting maxAge to a small value e.g. 59s can result in the browser endlessly redirecting trying to setup a new valid session. Warn administrators that the value is set smaller than 5 minutes. Bug: issue 1821 Change-Id: I7a306d93ca5bd55d68d0909be52b259acdbb6db5
This commit is contained in:
		@@ -36,6 +36,8 @@ import com.google.inject.Singleton;
 | 
				
			|||||||
import com.google.inject.name.Named;
 | 
					import com.google.inject.name.Named;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.eclipse.jgit.lib.Config;
 | 
					import org.eclipse.jgit.lib.Config;
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.ByteArrayOutputStream;
 | 
					import java.io.ByteArrayOutputStream;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
@@ -47,6 +49,7 @@ import java.util.concurrent.TimeUnit;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@Singleton
 | 
					@Singleton
 | 
				
			||||||
class WebSessionManager {
 | 
					class WebSessionManager {
 | 
				
			||||||
 | 
					  private static final Logger log = LoggerFactory.getLogger(WebSessionManager.class);
 | 
				
			||||||
  static final String CACHE_NAME = "web_sessions";
 | 
					  static final String CACHE_NAME = "web_sessions";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static long now() {
 | 
					  static long now() {
 | 
				
			||||||
@@ -66,6 +69,12 @@ class WebSessionManager {
 | 
				
			|||||||
    sessionMaxAgeMillis = MINUTES.toMillis(ConfigUtil.getTimeUnit(cfg,
 | 
					    sessionMaxAgeMillis = MINUTES.toMillis(ConfigUtil.getTimeUnit(cfg,
 | 
				
			||||||
        "cache", CACHE_NAME, "maxAge",
 | 
					        "cache", CACHE_NAME, "maxAge",
 | 
				
			||||||
        MAX_AGE_MINUTES, MINUTES));
 | 
					        MAX_AGE_MINUTES, MINUTES));
 | 
				
			||||||
 | 
					    if (sessionMaxAgeMillis < TimeUnit.MINUTES.toMillis(5)) {
 | 
				
			||||||
 | 
					      log.warn(String.format(
 | 
				
			||||||
 | 
					          "cache.%s.maxAge is set to %d milliseconds;" +
 | 
				
			||||||
 | 
					          " it should be at least 5 minutes.",
 | 
				
			||||||
 | 
					          CACHE_NAME, sessionMaxAgeMillis));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Key createKey(final Account.Id who) {
 | 
					  Key createKey(final Account.Id who) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user