Additional config key, to enable insecure cookie for CSRF.

master
Edward M. Kagan 5 years ago
parent 4d61588910
commit e64a27e773

@ -75,5 +75,11 @@ public class JanitorConfig {
*/
@ConfigItem(defaultValue = "false")
public boolean csrfInCookie;
/**
* CSRF cookie will be used as secure
*/
@ConfigItem(defaultValue = "true")
public boolean secureCsrfInCookie;
}

@ -13,6 +13,7 @@ public class SessionCacheConfig {
public String cookieName;
public String csrfName;
public boolean csrfInCookie;
public boolean secureCsrfInCookie;
public Long sessionLifetime;
public void setConfig(JanitorConfig config) {
@ -20,6 +21,7 @@ public class SessionCacheConfig {
this.csrfName = config.csrfName;
this.csrfInCookie = config.csrfInCookie;
this.sessionLifetime = config.sessionLifetime;
this.secureCsrfInCookie = config.secureCsrfInCookie;
}
}

@ -63,11 +63,11 @@ public class SessionCacheImpl implements SessionCache {
put(sessionId, sessionInfo);
ResponseBuilder builder = Response.ok().cookie(new NewCookie(config.cookieName,
sessionId, "/", null, null, config.sessionLifetime.intValue(),
false, true));
config.secureCsrfInCookie, true));
if (config.csrfInCookie) {
builder.cookie(new NewCookie(config.csrfName,
sessionInfo.csrfToken(), "/", null, null, config.sessionLifetime.intValue(),
false, true));
config.secureCsrfInCookie, true));
} else {
builder.header(config.csrfName, sessionInfo.csrfToken());
}

Loading…
Cancel
Save