Skip to content

Commit bc5bfc2

Browse files
authored
fix: include server time in cookie and sessionTimeout in systemInfo
* fix: expose sessionTimeout in system/info endpoint * fix: include server time in SESSION_EXPIRE cookie
1 parent 02683ee commit bc5bfc2

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

dhis-2/dhis-api/src/main/java/org/hisp/dhis/system/SystemInfo.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public final class SystemInfo {
6262
@JsonProperty private final String dateFormat;
6363
@JsonProperty private final Date serverDate;
6464
@JsonProperty private final String serverTimeZoneId;
65+
@JsonProperty private final int sessionTimeout;
6566
@JsonProperty private final String serverTimeZoneDisplayName;
6667
@JsonProperty private final Date lastAnalyticsTableSuccess;
6768
@JsonProperty private final String intervalSinceLastAnalyticsTableSuccess;

dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/system/DefaultSystemService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public SystemInfo getSystemInfo() {
124124
.capability(capabilityProvider.getSystemCapability())
125125
.calendar(calendarService.getSystemCalendar().name())
126126
.dateFormat(calendarService.getSystemDateFormat().getJs())
127+
.sessionTimeout(dhisConfig.getIntProperty(ConfigurationKey.SYSTEM_SESSION_TIMEOUT))
127128
.serverDate(now)
128129
.serverTimeZoneId(tz.getID())
129130
.serverTimeZoneDisplayName(tz.getDisplayName())

dhis-2/dhis-web-api/src/main/java/org/hisp/dhis/webapi/filter/SessionTimeoutHeaderFilter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,12 @@ protected void doFilterInternal(
6464
long expiresEpochSecond = Instant.now().plusSeconds(maxInactiveInterval).getEpochSecond();
6565
SessionCookieConfig sessionCookieConfig =
6666
request.getServletContext().getSessionCookieConfig();
67+
String cookieValue =
68+
String.format(
69+
"server-time:%s/session-expiry:%s",
70+
Instant.now().getEpochSecond(), expiresEpochSecond);
6771
ResponseCookie cookie =
68-
ResponseCookie.from(COOKIE_NAME, String.valueOf(expiresEpochSecond))
72+
ResponseCookie.from(COOKIE_NAME, cookieValue)
6973
.maxAge(maxInactiveInterval)
7074
.path("/")
7175
.httpOnly(false)

0 commit comments

Comments
 (0)