Skip to content

Commit 24bb127

Browse files
authored
Updating session timeout with signinurl and textoverrides - v2 (#74)
* Updating session timeout with signinurl and textoverrides * Updating changelog
1 parent c443a56 commit 24bb127

11 files changed

Lines changed: 166 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
## v2.7.4
66

77
- [CDTS](https://github.com/wet-boew/cdts-sgdc/) v5.0.4 & [wet-boew](https://github.com/wet-boew/wet-boew) v4.0.85
8+
- Adding an optional signInUrl property for Session Timeout allowing users to specify the sign-in page url when the session has expired
9+
- Adding an optional textOverrides property for Session Timeout allowing users to override specific text elements
810
- Updated static fallback files
911

1012
## v2.7.3

gocwebtemplate-core/gocwebtemplate-core-base/src/main/java/goc/webtemplate/SessionTimeout.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public class SessionTimeout implements Serializable {
1515
private int refreshLimit = 0;
1616
private String method = "";
1717
private String additionalData = "";
18+
private String signInUrl = "";
19+
private SessionTimeoutTextOverrides textOverrides = null;
1820

1921
public SessionTimeout() {
2022
}
@@ -31,10 +33,24 @@ public SessionTimeout(int inactivity, int reactiontime, int sessionalive,
3133
method, additionaldata);
3234
}
3335

36+
public SessionTimeout(boolean enabled, int inactivity, int reactiontime, int sessionalive,
37+
String logouturl, String refreshcallbackurl,
38+
boolean refreshonclick, int refreshlimit,
39+
String method, String additionaldata) {
40+
41+
this(false,
42+
inactivity, reactiontime, sessionalive,
43+
logouturl, refreshcallbackurl,
44+
refreshonclick, refreshlimit,
45+
method, additionaldata,
46+
"", null);
47+
}
48+
3449
public SessionTimeout(boolean enabled, int inactivity, int reactiontime, int sessionalive,
3550
String logouturl, String refreshcallbackurl,
3651
boolean refreshonclick, int refreshlimit,
37-
String method, String additionaldata) {
52+
String method, String additionaldata,
53+
String signinurl, SessionTimeoutTextOverrides textoverrides) {
3854

3955
this.enabled = enabled;
4056
this.inactivity = inactivity;
@@ -46,6 +62,8 @@ public SessionTimeout(boolean enabled, int inactivity, int reactiontime, int ses
4662
this.refreshLimit = refreshlimit;
4763
this.method = method;
4864
this.additionalData = additionaldata;
65+
this.signInUrl = signinurl;
66+
this.textOverrides = textoverrides;
4967
}
5068

5169
public boolean isEnabled() {
@@ -127,4 +145,20 @@ public String getAdditionalData() {
127145
public void setAdditionalData(String additionalData) {
128146
this.additionalData = additionalData;
129147
}
148+
149+
public String getSignInUrl() {
150+
return signInUrl;
151+
}
152+
153+
public void setSignInUrl(String signInUrl) {
154+
this.signInUrl = signInUrl;
155+
}
156+
157+
public SessionTimeoutTextOverrides getTextOverrides() {
158+
return textOverrides;
159+
}
160+
161+
public void setTextOverrides(SessionTimeoutTextOverrides textOverrides) {
162+
this.textOverrides = textOverrides;
163+
}
130164
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package goc.webtemplate;
2+
3+
/**
4+
* Optional button text and message elements to override the defaults in SessionTimeout
5+
*/
6+
public class SessionTimeoutTextOverrides {
7+
private String buttonContinue;
8+
private String buttonEnd;
9+
private String buttonSignIn;
10+
private String timeoutEnd;
11+
private String timeoutAlready;
12+
13+
public SessionTimeoutTextOverrides() {}
14+
15+
/**
16+
* Create new SessionTimeoutTextOverrides
17+
* @param buttonContinue Text for the Continue Session button
18+
* @param buttonEnd Text for the End Session button
19+
* @param buttonSignIn Text for the Sign In button
20+
* @param timeoutEnd Text for the message displayed below the timer
21+
* @param timeoutAlready Text for the message displayed when the session has expired
22+
*/
23+
public SessionTimeoutTextOverrides(String buttonContinue, String buttonEnd, String buttonSignIn, String timeoutEnd, String timeoutAlready)
24+
{
25+
this.buttonContinue = buttonContinue;
26+
this.buttonEnd = buttonEnd;
27+
this.buttonSignIn = buttonSignIn;
28+
this.timeoutEnd = timeoutEnd;
29+
this.timeoutAlready = timeoutAlready;
30+
}
31+
32+
public String getButtonContinue() {
33+
return buttonContinue;
34+
}
35+
36+
public void setButtonContinue(String buttonContinue) {
37+
this.buttonContinue = buttonContinue;
38+
}
39+
40+
public String getButtonEnd() {
41+
return buttonEnd;
42+
}
43+
44+
public void setButtonEnd(String buttonEnd) {
45+
this.buttonEnd = buttonEnd;
46+
}
47+
48+
public String getButtonSignIn() {
49+
return buttonSignIn;
50+
}
51+
52+
public void setButtonSignIn(String buttonSignIn) {
53+
this.buttonSignIn = buttonSignIn;
54+
}
55+
56+
public String getTimeoutEnd() {
57+
return timeoutEnd;
58+
}
59+
60+
public void setTimeoutEnd(String timeoutEnd) {
61+
this.timeoutEnd = timeoutEnd;
62+
}
63+
64+
public String getTimeoutAlready() {
65+
return timeoutAlready;
66+
}
67+
68+
public void setTimeoutAlready(String timeoutAlready) {
69+
this.timeoutAlready = timeoutAlready;
70+
}
71+
}

gocwebtemplate-core/gocwebtemplate-core-base/src/main/java/goc/webtemplate/component/AbstractCoreBean.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,6 +1654,9 @@ private SessionTimeout buildDefaultSessionTimeoutConfigurations(java.util.Resour
16541654

16551655
if (!Utility.isNullOrEmpty(bundle.getString("session.additionaldata")))
16561656
configs.setAdditionalData(bundle.getString("session.additionaldata"));
1657+
1658+
if (!Utility.isNullOrEmpty(bundle.getString("session.signinurl")))
1659+
configs.setSignInUrl(bundle.getString("session.signinurl"));
16571660
}
16581661

16591662
return configs;

gocwebtemplate-core/gocwebtemplate-core-base/src/main/java/goc/webtemplate/component/jsonentities/SessionTimeout.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.Serializable;
44

5+
import goc.webtemplate.SessionTimeoutTextOverrides;
56
import goc.webtemplate.component.JsonValueUtils;
67

78
/**
@@ -25,6 +26,8 @@ public class SessionTimeout implements Serializable {
2526
private Integer refreshLimit = null;
2627
private String method = null;
2728
private String additionalData = null;
29+
private String signInUrl = null;
30+
private SessionTimeoutTextOverrides textOverrides = null;
2831

2932
public SessionTimeout() {
3033
}
@@ -44,11 +47,14 @@ public SessionTimeout(goc.webtemplate.SessionTimeout otherObj) {
4447
this.refreshLimit = otherObj.getRefreshLimit() > 0? otherObj.getRefreshLimit(): null;
4548
this.method = JsonValueUtils.getNonEmptyString(otherObj.getMethod());
4649
this.additionalData = JsonValueUtils.getNonEmptyString(otherObj.getAdditionalData());
50+
this.signInUrl = JsonValueUtils.getNonEmptyString(otherObj.getSignInUrl());
51+
this.textOverrides = otherObj.getTextOverrides();
4752
}
4853

4954
public SessionTimeout(Integer inactivity, Integer reactionTime, Integer sessionalive,
5055
String logouturl, String refreshCallbackUrl, Boolean refreshOnClick,
51-
Integer refreshLimit, String method, String additionalData) {
56+
Integer refreshLimit, String method, String additionalData,
57+
String signInUrl, SessionTimeoutTextOverrides textOverrides) {
5258
this.inactivity = inactivity;
5359
this.reactionTime = reactionTime;
5460
this.sessionalive = sessionalive;
@@ -58,6 +64,8 @@ public SessionTimeout(Integer inactivity, Integer reactionTime, Integer sessiona
5864
this.refreshLimit = refreshLimit;
5965
this.method = method;
6066
this.additionalData = additionalData;
67+
this.signInUrl = signInUrl;
68+
this.textOverrides = textOverrides;
6169
}
6270

6371
public Integer getInactivity() {
@@ -132,4 +140,20 @@ public void setAdditionalData(String additionalData) {
132140
this.additionalData = additionalData;
133141
}
134142

143+
public String getSignInUrl() {
144+
return signInUrl;
145+
}
146+
147+
public void setSignInUrl(String signInUrl) {
148+
this.signInUrl = signInUrl;
149+
}
150+
151+
public SessionTimeoutTextOverrides getTextOverrides() {
152+
return textOverrides;
153+
}
154+
155+
public void setTextOverrides(SessionTimeoutTextOverrides textOverrides) {
156+
this.textOverrides = textOverrides;
157+
}
158+
135159
}

gocwebtemplate-core/gocwebtemplate-core-jsp/src/test/resources/goc/webtemplate/global/config/cdn.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ session.refreshonclick=
4444
session.refreshlimit.value=120000
4545
session.method=
4646
session.additionaldata=
47+
session.signinurl=
4748
#
4849
# GoC Web Template Global Config Values
4950
goc.webtemplate.showlanguagelink=true

gocwebtemplate-sample-jsp/src/main/java/goc/webtemplate/jsp/samplebeans/SessionTimeoutSampleBean.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import goc.webtemplate.Breadcrumb;
1111
import goc.webtemplate.SessionTimeout;
12-
12+
import goc.webtemplate.SessionTimeoutTextOverrides;
1313
import goc.webtemplate.component.jsp.DefaultTemplateCoreBean;
1414

1515
public class SessionTimeoutSampleBean extends DefaultTemplateCoreBean {
@@ -26,6 +26,8 @@ public void onWebTemplateInitialize() {
2626
this.setBreadcrumbs(bcs);
2727

2828
SessionTimeout sconfig = new SessionTimeout();
29+
SessionTimeoutTextOverrides textOverrides = new SessionTimeoutTextOverrides();
30+
textOverrides.setButtonContinue("Keep Going");
2931

3032
sconfig.setEnabled(true);
3133
sconfig.setInactivity(30000);
@@ -37,6 +39,8 @@ public void onWebTemplateInitialize() {
3739
sconfig.setRefreshLimit(3);
3840
sconfig.setMethod("");
3941
sconfig.setAdditionalData("");
42+
sconfig.setSignInUrl("");
43+
sconfig.setTextOverrides(textOverrides);
4044

4145
this.setSessionTimeoutConfiguration(sconfig);
4246
}

gocwebtemplate-sample-jsp/src/main/webapp/samplecontents/sessiontimeoutsamplecontent.jsp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,15 @@
3131
<li><strong>session.refreshlimit.value</strong>: Sets the amount of time that must pass before an ajax request can be made</li>
3232
<li><strong>session.method</strong>: Sets the request method used for ajax requests. Recommended: GET or POST</li>
3333
<li><strong>session.additionaldata</strong>: Additional data to send with the request</li>
34+
<li><strong>session.signinurl</strong>: URL to the Sign-In page</li>
35+
</ul>
36+
<p>Override the default text and message elements programmatically via the <code class="wb-prettify">setTextOverrides</code> method using the SessionTimeoutTextOverrides object: </p>
37+
<ul>
38+
<li><strong>buttonContinue</strong>: Text for the Continue Session button</li>
39+
<li><strong>buttonEnd</strong>: Text for the End Session button</li>
40+
<li><strong>buttonSignin</strong>: Text for the Sign In button</li>
41+
<li><strong>timeoutEnd</strong>: Text for the message displayed below the timer</li>
42+
<li><strong>timeoutAlready</strong>: Text for the message displayed when the session has expired</li>
3443
</ul>
3544
<h4>Notes:</h4>
3645
<ul>

gocwebtemplate-sample-spring/src/main/java/goc/webtemplate/spring/samplebeans/SessionTimeoutSampleBean.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import goc.webtemplate.Breadcrumb;
1313
import goc.webtemplate.SessionTimeout;
14+
import goc.webtemplate.SessionTimeoutTextOverrides;
1415
import goc.webtemplate.component.spring.DefaultTemplateCoreBean;
1516

1617
@Component(value = "sessiontimeoutsamplebean")
@@ -28,6 +29,8 @@ public void onWebTemplateInitialize() {
2829
this.setBreadcrumbs(bcs);
2930

3031
SessionTimeout sconfig = new SessionTimeout();
32+
SessionTimeoutTextOverrides textOverrides = new SessionTimeoutTextOverrides();
33+
textOverrides.setButtonContinue("Keep Going");
3134

3235
sconfig.setEnabled(true);
3336
sconfig.setInactivity(30000);
@@ -39,6 +42,8 @@ public void onWebTemplateInitialize() {
3942
sconfig.setRefreshLimit(3);
4043
sconfig.setMethod("");
4144
sconfig.setAdditionalData("");
45+
sconfig.setSignInUrl("");
46+
sconfig.setTextOverrides(textOverrides);
4247

4348
this.setSessionTimeoutConfiguration(sconfig);
4449
}

gocwebtemplate-sample-spring/src/main/resources/goc/webtemplate/global/config/cdn.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ session.refreshonclick=
4444
session.refreshlimit.value=120000
4545
session.method=
4646
session.additionaldata=
47+
session.signinurl=
4748
#
4849
# GoC Web Template Global Config Values
4950
goc.webtemplate.showlanguagelink=true

0 commit comments

Comments
 (0)