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