Skip to content

Commit 4ece397

Browse files
authored
Merge pull request #1167 from fzs/secureCookies
Secure cookies
2 parents bf179e6 + 60099a4 commit 4ece397

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/main/java/com/gitblit/GitBlitServer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,8 @@ public void log(String message) {
375375
HashSessionManager sessionManager = new HashSessionManager();
376376
sessionManager.setHttpOnly(true);
377377
// Use secure cookies if only serving https
378-
sessionManager.setSecureRequestOnly(params.port <= 0 && params.securePort > 0);
378+
sessionManager.setSecureRequestOnly( (params.port <= 0 && params.securePort > 0) ||
379+
(params.port > 0 && params.securePort > 0 && settings.getBoolean(Keys.server.redirectToHttpsPort, true)) );
379380
rootContext.getSessionHandler().setSessionManager(sessionManager);
380381

381382
// Ensure there is a defined User Service

src/main/java/com/gitblit/manager/AuthenticationManager.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,11 @@ public void setCookie(HttpServletRequest request, HttpServletResponse response,
608608
userCookie = new Cookie(Constants.NAME, cookie);
609609
// expire the cookie in 7 days
610610
userCookie.setMaxAge((int) TimeUnit.DAYS.toSeconds(7));
611+
612+
// Set cookies HttpOnly so they are not accessible to JavaScript engines
613+
userCookie.setHttpOnly(true);
614+
// Set secure cookie if only HTTPS is used
615+
userCookie.setSecure(httpsOnly());
611616
}
612617
}
613618
String path = "/";
@@ -622,6 +627,15 @@ public void setCookie(HttpServletRequest request, HttpServletResponse response,
622627
}
623628
}
624629

630+
631+
private boolean httpsOnly() {
632+
int port = settings.getInteger(Keys.server.httpPort, 0);
633+
int tlsPort = settings.getInteger(Keys.server.httpsPort, 0);
634+
return (port <= 0 && tlsPort > 0) ||
635+
(port > 0 && tlsPort > 0 && settings.getBoolean(Keys.server.redirectToHttpsPort, true) );
636+
}
637+
638+
625639
/**
626640
* Logout a user.
627641
*

0 commit comments

Comments
 (0)