Author: enorman
Date: Fri Jan 13 18:55:13 2012
New Revision: 1231244
URL: http://svn.apache.org/viewvc?rev=1231244&view=rev
Log:
SLING-2165 fixed regression loading the login page of the launchpad
Modified:
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
Modified:
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java?rev=1231244&r1=1231243&r2=1231244&view=diff
==============================================================================
---
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
(original)
+++
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
Fri Jan 13 18:55:13 2012
@@ -403,19 +403,21 @@ public final class AuthUtil {
*/
public static boolean checkReferer(HttpServletRequest request, String
loginForm) {
//SLING-2165: if a Referer header is supplied check if it matches the
login path for this handler
- String referer = request.getHeader("Referer");
- if (referer != null) {
- String expectedPath = String.format("%s%s",
request.getContextPath(), loginForm);
- try {
- URL uri = new URL(referer);
- if (!expectedPath.equals(uri.getPath())) {
- //not for this selector, so let the next one handle it.
- return false;
+ if ("POST".equals(request.getMethod())) {
+ String referer = request.getHeader("Referer");
+ if (referer != null) {
+ String expectedPath = String.format("%s%s",
request.getContextPath(), loginForm);
+ try {
+ URL uri = new URL(referer);
+ if (!expectedPath.equals(uri.getPath())) {
+ //not for this selector, so let the next one handle it.
+ return false;
+ }
+ } catch (MalformedURLException e) {
+ getLog().debug("Failed to parse the referer value for the
login form " + loginForm, e);
}
- } catch (MalformedURLException e) {
- getLog().debug("Failed to parse the referer value for the
login form " + loginForm, e);
}
- }
+ }
return true;
}
Modified:
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java?rev=1231244&r1=1231243&r2=1231244&view=diff
==============================================================================
---
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
(original)
+++
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
Fri Jan 13 18:55:13 2012
@@ -144,4 +144,15 @@ public class RedirectOnLoginErrorTest ex
}
assertEquals("Expected to remain on the form/login page",
loginPageUrl, location);
}
+
+ /**
+ * Test SLING-2165. Verify that a GET request to the default login page
does not
+ * result in an error condition.
+ *
+ * @throws Exception
+ */
+ public void testGetDefaultLoginPage() throws Exception {
+ final String loginPageUrl = String.format("%s/system/sling/login",
HTTP_BASE_URL);
+ assertHttpStatus(loginPageUrl, HttpServletResponse.SC_OK);
+ }
}