[mule-scm] [mule] [15949] branches/mule-3.x/core/src/main/java/org/mule: MULE-4561 Synchronous transports return request message rather than error when security exceptions occurs

View: New views
1 Messages — Rating Filter:   Alert me  

[mule-scm] [mule] [15949] branches/mule-3.x/core/src/main/java/org/mule: MULE-4561 Synchronous transports return request message rather than error when security exceptions occurs

by dfeist :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
[mule] [15949] branches/mule-3.x/core/src/main/java/org/mule: MULE-4561 Synchronous transports return request message rather than error when security exceptions occurs

Diff

Modified: branches/mule-3.x/core/src/main/java/org/mule/AbstractExceptionListener.java (15948 => 15949)

--- branches/mule-3.x/core/src/main/java/org/mule/AbstractExceptionListener.java	2009-11-03 14:21:32 UTC (rev 15948)
+++ branches/mule-3.x/core/src/main/java/org/mule/AbstractExceptionListener.java	2009-11-03 15:11:08 UTC (rev 15949)
@@ -21,7 +21,6 @@
 import org.mule.api.context.MuleContextAware;
 import org.mule.api.endpoint.EndpointURI;
 import org.mule.api.endpoint.ImmutableEndpoint;
-import org.mule.api.endpoint.InboundEndpoint;
 import org.mule.api.endpoint.InvalidEndpointTypeException;
 import org.mule.api.endpoint.OutboundEndpoint;
 import org.mule.api.lifecycle.Disposable;
@@ -30,7 +29,6 @@
 import org.mule.api.lifecycle.LifecycleException;
 import org.mule.api.routing.OutboundRouter;
 import org.mule.api.routing.RoutingException;
-import org.mule.api.security.SecurityException;
 import org.mule.api.service.Service;
 import org.mule.api.transaction.Transaction;
 import org.mule.api.transaction.TransactionException;
@@ -338,13 +336,13 @@
             catch (Exception e)
             {
                 logFatal(message, e);
-                closeStream(message, t);
+                closeStream(message);
             }
         }
         else
         {
             handleTransaction(t);
-            closeStream(message, t);
+            closeStream(message);
         }
     }
 
@@ -423,7 +421,7 @@
         return router;
     }
 
-    protected void closeStream(MuleMessage message, Throwable t)
+    protected void closeStream(MuleMessage message)
     {
         if (muleContext == null || muleContext.isDisposing() || muleContext.isDisposed())
         {
@@ -432,18 +430,6 @@
         if (message != null
             && muleContext.getRegistry().lookupObject(MuleProperties.OBJECT_MULE_STREAM_CLOSER_SERVICE) != null)
         {
-            // Workaround for MULE-4561
-            MuleEvent event = RequestContext.getEvent();
-            if (event != null && 
-                event.getEndpoint() != null && 
-                event.getEndpoint() instanceof InboundEndpoint && 
-                event.getEndpoint().isSynchronous() 
-                && t instanceof SecurityException)
-            {
-                // Don't close stream because it may be needed for response payload
-                return;
-            }
-            
             ((StreamCloserService) muleContext.getRegistry().lookupObject(
                     MuleProperties.OBJECT_MULE_STREAM_CLOSER_SERVICE)).closeStream(message.getPayload());
         }

Modified: branches/mule-3.x/core/src/main/java/org/mule/transport/AbstractMessageReceiver.java (15948 => 15949)

--- branches/mule-3.x/core/src/main/java/org/mule/transport/AbstractMessageReceiver.java	2009-11-03 14:21:32 UTC (rev 15948)
+++ branches/mule-3.x/core/src/main/java/org/mule/transport/AbstractMessageReceiver.java	2009-11-03 15:11:08 UTC (rev 15949)
@@ -337,6 +337,7 @@
                             SecurityNotification.SECURITY_AUTHENTICATION_FAILED));
                     handleException(e);
                     resultMessage = RequestContext.getEvent().getMessage();
+                    resultMessage.setPayload(e.getLocalizedMessage());
                 }
             }
             else

Modified: branches/mule-3.x/transports/cxf/src/test/java/org/mule/transport/cxf/HttpSecurityFilterFunctionalTestCase.java (15948 => 15949)

--- branches/mule-3.x/transports/cxf/src/test/java/org/mule/transport/cxf/HttpSecurityFilterFunctionalTestCase.java	2009-11-03 14:21:32 UTC (rev 15948)
+++ branches/mule-3.x/transports/cxf/src/test/java/org/mule/transport/cxf/HttpSecurityFilterFunctionalTestCase.java	2009-11-03 15:11:08 UTC (rev 15949)
@@ -60,7 +60,11 @@
         {
             int status = client.executeMethod(get);
             assertEquals(HttpConstants.SC_UNAUTHORIZED, status);
-            assertEquals("/services/Echo", get.getResponseBodyAsString());
+            assertEquals(
+                "Registered authentication is set to org.mule.module.acegi.filters.http.HttpBasicAuthenticationFilter "
+                                + "but there was no security context on the session. Authentication denied on "
+                                + "endpoint http://localhost:60443/services/Echo. Message payload is of type: "
+                                + "String", get.getResponseBodyAsString());
         }
         finally
         {
@@ -83,8 +87,11 @@
         {
             int status = client.executeMethod(post);
             assertEquals(HttpConstants.SC_UNAUTHORIZED, status);
-            // TODO MULE-4561 Why do we return request and not an error?
-            assertEquals(soapRequest, post.getResponseBodyAsString());
+            assertEquals(
+                "Registered authentication is set to org.mule.module.acegi.filters.http.HttpBasicAuthenticationFilter "
+                                + "but there was no security context on the session. Authentication denied on "
+                                + "endpoint http://localhost:60443/services/Echo. Message payload is of type: "
+                                + "ContentLengthInputStream",   post.getResponseBodyAsString());
         }
         finally
         {
@@ -207,7 +214,6 @@
         {
             int status = client.executeMethod(post);
             assertEquals(result, status);
-            // TODO MULE-4561 Why do we return request and not an error?
             assertNotNull(post.getResponseBodyAsString());
         }
         finally

Modified: branches/mule-3.x/transports/http/src/main/java/org/mule/transport/http/transformers/MuleMessageToHttpResponse.java (15948 => 15949)

--- branches/mule-3.x/transports/http/src/main/java/org/mule/transport/http/transformers/MuleMessageToHttpResponse.java	2009-11-03 14:21:32 UTC (rev 15948)
+++ branches/mule-3.x/transports/http/src/main/java/org/mule/transport/http/transformers/MuleMessageToHttpResponse.java	2009-11-03 15:11:08 UTC (rev 15949)
@@ -72,11 +72,6 @@
     public Object transform(MuleMessage msg, String outputEncoding) throws TransformerException
     {
         Object src = msg.getPayload();
-        // Send back the exception payload if one has been set
-        if (msg.getExceptionPayload() != null)
-        {
-            // src = context.getMessage().getExceptionPayload();
-        }
 
         // Note this transformer excepts Null as we must always return a result
         // from the Http


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email