You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2011/05/10 08:39:01 UTC
svn commit: r1101337 - in
/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp:
DefaultHttpGetProcessor.java NHttpConfiguration.java
Author: supun
Date: Tue May 10 06:39:01 2011
New Revision: 1101337
URL: http://svn.apache.org/viewvc?rev=1101337&view=rev
Log:
adding a feature to block the service listing
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/DefaultHttpGetProcessor.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/DefaultHttpGetProcessor.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/DefaultHttpGetProcessor.java?rev=1101337&r1=1101336&r2=1101337&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/DefaultHttpGetProcessor.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/DefaultHttpGetProcessor.java Tue May 10 06:39:01 2011
@@ -111,7 +111,10 @@ public class DefaultHttpGetProcessor imp
msgContext.setTo(new EndpointReference(uri));
}
- if (uri.equals("/favicon.ico")) {
+ if (isServiceListBlocked(uri)) {
+ response.setStatusCode(HttpStatus.SC_FORBIDDEN);
+ serverHandler.commitResponseHideExceptions(conn, response);
+ } else if (uri.equals("/favicon.ico")) {
response.setStatusCode(HttpStatus.SC_MOVED_PERMANENTLY);
response.addHeader(LOCATION, "http://ws.apache.org/favicon.ico");
serverHandler.commitResponseHideExceptions(conn, response);
@@ -150,6 +153,20 @@ public class DefaultHttpGetProcessor imp
}
/**
+ * Is the incoming URI is requesting service list and http.block_service_list=true in
+ * nhttp.properties
+ * @param incomingURI incoming URI
+ * @return whether to proceed with incomingURI
+
+ */
+ protected boolean isServiceListBlocked(String incomingURI) {
+ String isBlocked = NHttpConfiguration.getInstance().isServiceListBlocked();
+
+ return (("/services").equals(incomingURI) || ("/services" + "/").equals(incomingURI)) &&
+ Boolean.parseBoolean(isBlocked);
+ }
+
+ /**
* Returns the service name.
*
* @param request HttpRequest
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java?rev=1101337&r1=1101336&r2=1101337&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java Tue May 10 06:39:01 2011
@@ -63,6 +63,11 @@ public final class NHttpConfiguration {
private Properties props;
List<String> methods;
+ /** Comma separated list of blocked uris*/
+ public static final String BLOCK_SERVICE_LIST = "http.block_service_list";
+ /** Default value for BLOCK_SERVICE_LIST*/
+ public static final String BLOCK_SERVICE_LIST_DEFAULT = "false";
+
private NHttpConfiguration() {
try {
props = MiscellaneousUtil.loadProperties("nhttp.properties");
@@ -134,6 +139,10 @@ public final class NHttpConfiguration {
return getBooleanValue(NhttpConstants.COUNT_CONNECTIONS, false);
}
+ public String isServiceListBlocked() {
+ return getStringValue(BLOCK_SERVICE_LIST, BLOCK_SERVICE_LIST_DEFAULT);
+ }
+
/**
* Get properties that tune nhttp transport. Preference to system properties
* @param name name of the system/config property