Author: samisa
Date: Tue Dec 21 14:12:30 2010
New Revision: 1051504

URL: http://svn.apache.org/viewvc?rev=1051504&view=rev
Log:
Fixed the problem of all security exceptions reported as wsse:InvalidSecurity - 
RAMPART-308

Modified:
    
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java

Modified: 
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java?rev=1051504&r1=1051503&r2=1051504&view=diff
==============================================================================
--- 
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
 (original)
+++ 
axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartReceiver.java
 Tue Dec 21 14:12:30 2010
@@ -159,16 +159,30 @@ public class RampartReceiver implements 
         
         msgContext.setProperty(RampartConstants.SEC_FAULT, Boolean.TRUE);    
         String soapVersionURI =  
msgContext.getEnvelope().getNamespace().getNamespaceURI();
-        QName invalidSecurity = new 
QName(WSConstants.INVALID_SECURITY.getNamespaceURI(),WSConstants.INVALID_SECURITY.getLocalPart(),"wsse");
+        QName faultCode = null;
+        /*
+         * Get the faultCode from the thrown WSSecurity exception, if there is 
one
+         */
+        if (e instanceof WSSecurityException)
+        {              
+               faultCode = ((WSSecurityException)e).getFaultCode(); 
+        }
+        /*
+         * Otherwise default to InvalidSecurity
+         */
+        if (faultCode == null)
+        {
+               faultCode = new 
QName(WSConstants.INVALID_SECURITY.getNamespaceURI(),WSConstants.INVALID_SECURITY.getLocalPart(),"wsse");
+        }
         
         if (soapVersionURI.equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI) 
) {
             
-            throw new AxisFault(invalidSecurity,e.getMessage(),e);
+            throw new AxisFault(faultCode,e.getMessage(),e);
                             
         } else if 
(soapVersionURI.equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
             
             List subfaultCodes = new ArrayList();
-            subfaultCodes.add(invalidSecurity);
+            subfaultCodes.add(faultCode);
             throw new 
AxisFault(Constants.FAULT_SOAP12_SENDER,subfaultCodes,e.getMessage(),e);
         
         }        


Reply via email to