use X-Requested-With header if Referer is empty

This commit is contained in:
Giuseppe Digilio
2019-10-24 15:43:46 +02:00
parent 8ce9c2d98f
commit ccb0efd2ea

View File

@@ -510,8 +510,16 @@ public class ShibAuthentication implements AuthenticationMethod {
int port = request.getServerPort();
String contextPath = request.getContextPath();
String returnURL = ConfigurationManager.getProperty("dspace.baseUrl") + "/api/authn/shibboleth?redirectUrl="
+ request.getHeader("Referer");
String redirectUrl = null;
if (request.getHeader("Referer") != null && StringUtils.isNotBlank(request.getHeader("Referer"))) {
redirectUrl = request.getHeader("Referer");
} else if (request.getHeader("X-Requested-With") != null
&& StringUtils.isNotBlank(request.getHeader("X-Requested-With"))) {
redirectUrl = request.getHeader("X-Requested-With");
}
String returnURL = ConfigurationManager.getProperty("dspace.baseUrl") + "/api/authn/shibboleth"
+ ((redirectUrl != null) ? "?redirectUrl=" + redirectUrl : "");
try {
shibURL += "?target=" + URLEncoder.encode(returnURL, "UTF-8");