Additional config key, to enable insecure cookie for CSRF.

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

@ -76,4 +76,10 @@ public class JanitorConfig {
@ConfigItem(defaultValue = "false") @ConfigItem(defaultValue = "false")
public boolean csrfInCookie; 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 cookieName;
public String csrfName; public String csrfName;
public boolean csrfInCookie; public boolean csrfInCookie;
public boolean secureCsrfInCookie;
public Long sessionLifetime; public Long sessionLifetime;
public void setConfig(JanitorConfig config) { public void setConfig(JanitorConfig config) {
@ -20,6 +21,7 @@ public class SessionCacheConfig {
this.csrfName = config.csrfName; this.csrfName = config.csrfName;
this.csrfInCookie = config.csrfInCookie; this.csrfInCookie = config.csrfInCookie;
this.sessionLifetime = config.sessionLifetime; this.sessionLifetime = config.sessionLifetime;
this.secureCsrfInCookie = config.secureCsrfInCookie;
} }
} }

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

Loading…
Cancel
Save