dengzhizhi / j2ep Goto Github PK
View Code? Open in Web Editor NEWFork from the http://j2ep.sourceforge.net/ project. A java reverse proxy can be deployed on a J2EE server.
License: Apache License 2.0
Fork from the http://j2ep.sourceforge.net/ project. A java reverse proxy can be deployed on a J2EE server.
License: Apache License 2.0
can you release it to maven center repo?
add attribute
scheme="http" or "https" to the server node
single server configuration tested but not clustered (however should work). No unit test cases
--- src/main/java/net/sf/j2ep/model/Server.java Mon Jan 19 23:26:36 1970
+++ src/main/java/net/sf/j2ep/model/Server.java Mon Jan 19 23:26:36 1970
@@ -86,4 +86,10 @@
* @return The rule we are mapped to
*/
Rule getRule();
+
+ /**
+ * Returns the scheme to use when connecting to back-end servers
+ * @return
+ */
+ String getScheme();
}
--- src/main/java/net/sf/j2ep/servers/BaseServer.java Mon Jan 19 23:26:36 1970
+++ src/main/java/net/sf/j2ep/servers/BaseServer.java Mon Jan 19 23:26:36 1970
@@ -31,7 +31,13 @@
*/
public class BaseServer extends ServerContainerBase implements Server {
- /**
+
+ /**
+ * Stores the scheme for access to back-end servers
+ */
+ private String scheme;
+
+ /**
* Marks if this rule server will do any
* rewriting of links.
*/
@@ -148,4 +154,12 @@
*/
public void setConnectionExceptionRecieved(Exception e) {
}
+
+ public String getScheme() {
+ return scheme;
+ }
+
+ public void setScheme(String scheme) {
+ this.scheme = scheme;
+ }
}
--- src/main/java/net/sf/j2ep/servers/ClusterContainer.java Mon Jan 19 23:26:36 1970
+++ src/main/java/net/sf/j2ep/servers/ClusterContainer.java Mon Jan 19 23:26:36 1970
@@ -209,7 +209,12 @@
*/
protected class ClusteredServer implements Server {
- /**
+ /**
+ * Stores the scheme for back-end server access
+ */
+ private String scheme;
+
+ /**
* The domain name mapping
*/
private String domainName;
@@ -316,5 +321,13 @@
public String getServerId() {
return serverId;
}
+
+ public String getScheme() {
+ return scheme;
+ }
+
+ public void setScheme(String scheme) {
+ this.scheme = scheme;
+ }
}
}
--- src/main/java/net/sf/j2ep/ConfigParser.java Mon Jan 19 23:26:36 1970
+++ src/main/java/net/sf/j2ep/ConfigParser.java Mon Jan 19 23:26:36 1970
@@ -114,6 +114,7 @@
digester.addCallMethod("config/cluster-server/server", "addServer", 2);
digester.addCallParam("config/cluster-server/server", 0, "domainName");
digester.addCallParam("config/cluster-server/server", 1, "path");
+ digester.addCallParam("config/cluster-server/server", 1, "scheme");
// Create rule
digester.addObjectCreate("config/cluster-server/rule", null,
"className");
--- src/main/java/net/sf/j2ep/ProxyFilter.java Mon Jan 19 23:26:36 1970
+++ src/main/java/net/sf/j2ep/ProxyFilter.java Mon Jan 19 23:26:36 1970
@@ -20,7 +20,12 @@
import java.io.IOException;
import java.net.UnknownHostException;
-import javax.servlet.*;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -32,7 +37,12 @@
import net.sf.j2ep.model.ResponseHandler;
import net.sf.j2ep.model.Server;
-import org.apache.commons.httpclient.*;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.HttpMethodBase;
+import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.commons.logging.Log;
@@ -90,8 +100,9 @@
if (server == null) {
filterChain.doFilter(request, response);
} else {
+ String scheme = server.getScheme()==null?request.getScheme():server.getScheme();
String uri = server.getRule().process(getURI(httpRequest));
- String url = request.getScheme() + "://" + server.getDomainName() + server.getPath() + uri;
+ String url = scheme + "://" + server.getDomainName() + server.getPath() + uri;
log.debug("Connecting to " + url);
ResponseHandler responseHandler = null;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.