You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2017/03/02 10:17:15 UTC
svn commit: r1785098 - in /ofbiz/branches/release13.07/framework:
common/src/org/ofbiz/common/email/NotificationServices.java
webapp/src/org/ofbiz/webapp/control/RequestHandler.java
webapp/src/org/ofbiz/webapp/ftl/OfbizUrlTransform.java
Author: jleroux
Date: Thu Mar 2 10:17:15 2017
New Revision: 1785098
URL: http://svn.apache.org/viewvc?rev=1785098&view=rev
Log:
Fixed: "Login and logout process in demos shows a certificate issue"
(OFBIZ-9206)
After my conclusions at OFBIZ-9240 I decided to reapply the changes
Here, unlike in trunk and stable, I kept getDefaultServerRootUrl()
and did no changes in url.properties.
URL properties will be, for instance,
used to specify the ports used in demos (28443/28080)
The idea is to use the port initially passed by a successful login request as
it's done since WebSiteProperties class exists. I also don't add twice the
portOffset when it's build from the request, and only then.
Keep it as is when it's build from a WebSite GenericValue.
We then trust the user and don't rely on the request.
Thanks: Pierre Smits for report
Modified:
ofbiz/branches/release13.07/framework/common/src/org/ofbiz/common/email/NotificationServices.java
ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/ftl/OfbizUrlTransform.java
Modified: ofbiz/branches/release13.07/framework/common/src/org/ofbiz/common/email/NotificationServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/common/src/org/ofbiz/common/email/NotificationServices.java?rev=1785098&r1=1785097&r2=1785098&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/common/src/org/ofbiz/common/email/NotificationServices.java (original)
+++ ofbiz/branches/release13.07/framework/common/src/org/ofbiz/common/email/NotificationServices.java Thu Mar 2 10:17:15 2017
@@ -27,8 +27,6 @@ import java.net.UnknownHostException;
import java.util.Locale;
import java.util.Map;
-import javolution.util.FastMap;
-
import org.ofbiz.base.container.ClassLoaderContainer;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilGenerics;
@@ -48,6 +46,7 @@ import org.ofbiz.service.ModelService;
import org.ofbiz.service.ServiceUtil;
import freemarker.template.TemplateException;
+import javolution.util.FastMap;
/**
* Provides generic services related to preparing and
@@ -267,6 +266,7 @@ public class NotificationServices {
String httpPort = null;
String httpServer = null;
Boolean enableHttps = null;
+ Boolean dontAdd = false;
try {
// using just the IP address of localhost if we don't have a defined server
@@ -296,7 +296,10 @@ public class NotificationServices {
// fill in any missing properties with fields from the global file
if (UtilValidate.isEmpty(httpsPort)) {
- httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", "443", delegator);
+ httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", delegator);
+ if ("8443" != httpsPort) {
+ dontAdd = true; // Here we can't initialise the port from a request, so we assume it's set in properties or DB, we don't add the portOffset anyway
+ }
}
if (UtilValidate.isEmpty(httpsServer)) {
httpsServer = EntityUtilProperties.getPropertyValue("url.properties", "force.https.host", localServer, delegator);
@@ -315,9 +318,13 @@ public class NotificationServices {
Integer httpPortValue = Integer.valueOf(httpPort);
httpPortValue += ClassLoaderContainer.portOffset;
httpPort = httpPortValue.toString();
- Integer httpsPortValue = Integer.valueOf(httpsPort);
- httpsPortValue += ClassLoaderContainer.portOffset;
- httpsPort = httpsPortValue.toString();
+ if (!dontAdd) {
+ Integer httpsPortValue = Integer.valueOf(httpsPort);
+ if (!httpsPort.isEmpty()) {
+ httpsPortValue += ClassLoaderContainer.portOffset;
+ }
+ httpsPort = httpsPortValue.toString();
+ }
}
// prepare the (non-secure) URL
Modified: ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=1785098&r1=1785097&r2=1785098&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java (original)
+++ ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java Thu Mar 2 10:17:15 2017
@@ -34,8 +34,6 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import javolution.util.FastMap;
-
import org.ofbiz.base.container.ClassLoaderContainer;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.SSLUtil;
@@ -61,6 +59,8 @@ import org.ofbiz.webapp.view.ViewHandler
import org.ofbiz.webapp.website.WebSiteWorker;
import org.owasp.esapi.errors.EncodingException;
+import javolution.util.FastMap;
+
/**
* RequestHandler - Request Processor Object
*/
@@ -942,7 +942,12 @@ public class RequestHandler {
public static String getDefaultServerRootUrl(HttpServletRequest request, boolean secure) {
Delegator delegator = (Delegator) request.getAttribute("delegator");
- String httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", "443", delegator);
+ Boolean dontAdd = false;
+ String httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", delegator);
+ if (httpsPort.isEmpty() ) {
+ httpsPort = String.valueOf(request.getServerPort());
+ dontAdd = true; // We take the port from the request, don't add the portOffset
+ }
String httpsServer = EntityUtilProperties.getPropertyValue("url.properties", "force.https.host", delegator);
String httpPort = EntityUtilProperties.getPropertyValue("url.properties", "port.http", "80", delegator);
String httpServer = EntityUtilProperties.getPropertyValue("url.properties", "force.http.host", delegator);
@@ -952,9 +957,13 @@ public class RequestHandler {
Integer httpPortValue = Integer.valueOf(httpPort);
httpPortValue += ClassLoaderContainer.portOffset;
httpPort = httpPortValue.toString();
- Integer httpsPortValue = Integer.valueOf(httpsPort);
- httpsPortValue += ClassLoaderContainer.portOffset;
- httpsPort = httpsPortValue.toString();
+ if (!dontAdd) {
+ Integer httpsPortValue = Integer.valueOf(httpsPort);
+ if (!httpsPort.isEmpty()) {
+ httpsPortValue += ClassLoaderContainer.portOffset;
+ }
+ httpsPort = httpsPortValue.toString();
+ }
}
StringBuilder newURL = new StringBuilder();
@@ -1064,6 +1073,7 @@ public class RequestHandler {
String httpPort = null;
String httpServer = null;
Boolean enableHttps = null;
+ Boolean dontAdd = false;
// load the properties from the website entity
GenericValue webSite;
@@ -1084,7 +1094,11 @@ public class RequestHandler {
// fill in any missing properties with fields from the global file
if (UtilValidate.isEmpty(httpsPort)) {
- httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", "443", delegator);
+ httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", delegator);
+ if (httpsPort.isEmpty() ) {
+ httpsPort = String.valueOf(request.getServerPort());
+ dontAdd = true; // We take the port from the request, don't add the portOffset
+ }
}
if (UtilValidate.isEmpty(httpsServer)) {
httpsServer = EntityUtilProperties.getPropertyValue("url.properties", "force.https.host", delegator);
@@ -1103,9 +1117,13 @@ public class RequestHandler {
Integer httpPortValue = Integer.valueOf(httpPort);
httpPortValue += ClassLoaderContainer.portOffset;
httpPort = httpPortValue.toString();
- Integer httpsPortValue = Integer.valueOf(httpsPort);
- httpsPortValue += ClassLoaderContainer.portOffset;
- httpsPort = httpsPortValue.toString();
+ if (!dontAdd) {
+ Integer httpsPortValue = Integer.valueOf(httpsPort);
+ if (!httpsPort.isEmpty()) {
+ httpsPortValue += ClassLoaderContainer.portOffset;
+ }
+ httpsPort = httpsPortValue.toString();
+ }
}
// create the path the the control servlet
Modified: ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/ftl/OfbizUrlTransform.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/ftl/OfbizUrlTransform.java?rev=1785098&r1=1785097&r2=1785098&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/ftl/OfbizUrlTransform.java (original)
+++ ofbiz/branches/release13.07/framework/webapp/src/org/ofbiz/webapp/ftl/OfbizUrlTransform.java Thu Mar 2 10:17:15 2017
@@ -104,6 +104,7 @@ public class OfbizUrlTransform implement
BeanModel res = (BeanModel) env.getVariable("response");
Object prefix = env.getVariable("urlPrefix");
if (UtilValidate.isNotEmpty(webSiteId)) {
+ Boolean dontAdd = false;
HttpServletRequest request = (HttpServletRequest) req.getWrappedObject();
Delegator delegator = (Delegator) request.getAttribute("delegator");
String httpsPort = null;
@@ -127,7 +128,11 @@ public class OfbizUrlTransform implement
}
// fill in any missing properties with fields from the global file
if (UtilValidate.isEmpty(httpsPort)) {
- httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", "443", delegator);
+ httpsPort = EntityUtilProperties.getPropertyValue("url.properties", "port.https", delegator);
+ if (httpsPort.isEmpty() ) {
+ httpsPort = String.valueOf(request.getServerPort());
+ dontAdd = true; // We take the port from the request, don't add the portOffset
+ }
}
if (UtilValidate.isEmpty(httpsServer)) {
httpsServer = EntityUtilProperties.getPropertyValue("url.properties", "force.https.host", delegator);
@@ -146,11 +151,14 @@ public class OfbizUrlTransform implement
Integer httpPortValue = Integer.valueOf(httpPort);
httpPortValue += ClassLoaderContainer.portOffset;
httpPort = httpPortValue.toString();
- Integer httpsPortValue = Integer.valueOf(httpsPort);
- httpsPortValue += ClassLoaderContainer.portOffset;
- httpsPort = httpsPortValue.toString();
+ if (!dontAdd) {
+ Integer httpsPortValue = Integer.valueOf(httpsPort);
+ if (!httpsPort.isEmpty()) {
+ httpsPortValue += ClassLoaderContainer.portOffset;
+ }
+ httpsPort = httpsPortValue.toString();
+ }
}
-
if (secure && enableHttps) {
String server = httpsServer;
if (UtilValidate.isEmpty(server)) {