Skip to content

Commit 99a75c8

Browse files
committed
fix redirection
1 parent 5e2c372 commit 99a75c8

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

src/main/java/de/rwth/idsg/steve/SteveAppContext.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.io.IOException;
2828
import java.util.ArrayList;
2929
import java.util.EnumSet;
30+
import java.util.HashSet;
3031
import java.util.List;
3132

3233
import static de.rwth.idsg.steve.SteveConfiguration.CONFIG;
@@ -112,24 +113,32 @@ private Handler getRedirectHandler() {
112113
rewrite.setRewriteRequestURI(true);
113114
rewrite.setRewritePathInfo(true);
114115

115-
String root = CONFIG.getContextPath();
116-
117-
String[] redirectArray = {
118-
"",
119-
// root + "",
120-
// root + "/",
121-
};
122-
123-
for (String redirect : redirectArray) {
116+
for (String redirect : getRedirectSet()) {
124117
RedirectPatternRule rule = new RedirectPatternRule();
125118
rule.setTerminating(true);
126119
rule.setPattern(redirect);
127-
rule.setLocation(root + "/manager/home");
120+
rule.setLocation(CONFIG.getContextPath() + "/manager/home");
128121
rewrite.addRule(rule);
129122
}
130123
return rewrite;
131124
}
132125

126+
private HashSet<String> getRedirectSet() {
127+
String path = CONFIG.getContextPath();
128+
129+
HashSet<String> redirectSet = new HashSet<>(3);
130+
redirectSet.add("");
131+
redirectSet.add(path + "");
132+
133+
// Otherwise (if path = ""), we would already be at root of the server ("/")
134+
// and using the redirection below would cause an infinite loop.
135+
if (!"".equals(path)) {
136+
redirectSet.add(path + "/");
137+
}
138+
139+
return redirectSet;
140+
}
141+
133142
// -------------------------------------------------------------------------
134143
// JSP stuff
135144
//

0 commit comments

Comments
 (0)