You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2014/08/02 01:54:02 UTC
git commit: TAP5-1973: In certain development cases when switching
from insecure to secure, BaseURLSource will still include :443 in the URL
Repository: tapestry-5
Updated Branches:
refs/heads/master a29d1ea93 -> 30a66c952
TAP5-1973: In certain development cases when switching from insecure to secure, BaseURLSource will still include :443 in the URL
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/30a66c95
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/30a66c95
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/30a66c95
Branch: refs/heads/master
Commit: 30a66c9526dee3da55a5204e43a169fe4692df79
Parents: a29d1ea
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Fri Aug 1 16:54:06 2014 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Fri Aug 1 16:54:06 2014 -0700
----------------------------------------------------------------------
.../internal/services/BaseURLSourceImpl.java | 12 +++++------
.../services/BaseURLSourceImplTest.java | 21 ++++++++++++++++++--
2 files changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/30a66c95/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/BaseURLSourceImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/BaseURLSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/BaseURLSourceImpl.java
index b7ea719..11b6bd8 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/BaseURLSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/BaseURLSourceImpl.java
@@ -1,5 +1,3 @@
-// Copyright 2008, 2010, 2011, 2012 The Apache Software Foundation
-//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -48,23 +46,23 @@ public class BaseURLSourceImpl implements BaseURLSource
private String portExtension(boolean secure)
{
- int port = secure ? secureHostPort : hostPort;
+ int configuredPort = secure ? secureHostPort : hostPort;
// The default for the ports is 0, which means to use Request.serverPort. That's mostly
// for development.
- if (port <= 0)
+ if (configuredPort <= 0 && secure == request.isSecure())
{
- port = request.getServerPort();
+ configuredPort = request.getServerPort();
}
int expectedPort = secure ? 443 : 80;
- if (port == expectedPort)
+ if (configuredPort == expectedPort || configuredPort <= 0)
{
return "";
}
- return ":" + port;
+ return ":" + configuredPort;
}
private String hostname()
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/30a66c95/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/BaseURLSourceImplTest.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/BaseURLSourceImplTest.java b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/BaseURLSourceImplTest.java
index 5dc4f89..31edf38 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/BaseURLSourceImplTest.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/BaseURLSourceImplTest.java
@@ -1,5 +1,3 @@
-// Copyright 2008, 2010, 2011, 2012 The Apache Software Foundation
-//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
@@ -36,6 +34,7 @@ public class BaseURLSourceImplTest extends InternalBaseTestCase
{
expect(request.getServerName()).andReturn("localhost").once();
expect(request.getServerPort()).andReturn(80).once();
+ expect(request.isSecure()).andReturn(false);
replay();
@@ -49,6 +48,7 @@ public class BaseURLSourceImplTest extends InternalBaseTestCase
public void contributed_hostname()
{
expect(request.getServerPort()).andReturn(80).once();
+ expect(request.isSecure()).andReturn(false);
replay();
@@ -63,6 +63,7 @@ public class BaseURLSourceImplTest extends InternalBaseTestCase
public void hostname_from_environment_variable()
{
expect(request.getServerPort()).andReturn(80).once();
+ expect(request.isSecure()).andReturn(false);
replay();
@@ -109,4 +110,20 @@ public class BaseURLSourceImplTest extends InternalBaseTestCase
verify();
}
+ @Test
+ public void secure_url_without_configured_hostports()
+ {
+ expect(request.isSecure()).andReturn(false).once();
+
+ replay();
+
+ BaseURLSource baseURLSource = new BaseURLSourceImpl(request, "localhost", 0, 0);
+
+ // In other words, in the absense of any other configuration, it assumes that you have SSL on port 443
+ // and there's no need for that in the URL, since that's what the browser is going to do.
+ assertEquals(baseURLSource.getBaseURL(true), "https://localhost");
+
+ verify();
+ }
+
}