Author: coheigea
Date: Wed Mar 26 16:39:30 2014
New Revision: 1581921
URL: http://svn.apache.org/r1581921
Log:
Configure whether to return a "safe" error message or not depending if we are
the initiator or not
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/WSSec.java
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/InboundWSSec.java
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/WSSecurityStreamReader.java
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/WSSec.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/WSSec.java?rev=1581921&r1=1581920&r2=1581921&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/WSSec.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/WSSec.java
Wed Mar 26 16:39:30 2014
@@ -83,12 +83,28 @@ public class WSSec {
* if the configuration is invalid
*/
public static InboundWSSec getInboundWSSec(WSSSecurityProperties
securityProperties) throws WSSecurityException {
+ return getInboundWSSec(securityProperties, false);
+ }
+
+ /**
+ * Creates and configures an inbound streaming security engine
+ *
+ * @param securityProperties The user-defined security configuration
+ * @param initiator Whether we are the message initiator or not
+ * @return A new InboundWSSec
+ * @throws WSSecurityException
+ * if the initialisation failed
+ * @throws org.apache.wss4j.stax.ext.WSSConfigurationException
+ * if the configuration is invalid
+ */
+ public static InboundWSSec getInboundWSSec(WSSSecurityProperties
securityProperties,
+ boolean initiator) throws WSSecurityException {
if (securityProperties == null) {
throw new
WSSConfigurationException(WSSConfigurationException.ErrorCode.FAILURE,
"missingSecurityProperties");
}
securityProperties =
validateAndApplyDefaultsToInboundSecurityProperties(securityProperties);
- return new InboundWSSec(securityProperties);
+ return new InboundWSSec(securityProperties, initiator);
}
/**
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/InboundWSSec.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/InboundWSSec.java?rev=1581921&r1=1581920&r2=1581921&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/InboundWSSec.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/InboundWSSec.java
Wed Mar 26 16:39:30 2014
@@ -70,9 +70,15 @@ public class InboundWSSec {
}
private final WSSSecurityProperties securityProperties;
+ private final boolean initiator;
public InboundWSSec(WSSSecurityProperties securityProperties) {
+ this(securityProperties, false);
+ }
+
+ public InboundWSSec(WSSSecurityProperties securityProperties, boolean
initiator) {
this.securityProperties = securityProperties;
+ this.initiator = initiator;
}
/**
@@ -253,6 +259,6 @@ public class InboundWSSec {
}
}
- return new WSSecurityStreamReader(inputProcessorChain,
securityProperties);
+ return new WSSecurityStreamReader(inputProcessorChain,
securityProperties, initiator);
}
}
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/WSSecurityStreamReader.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/WSSecurityStreamReader.java?rev=1581921&r1=1581920&r2=1581921&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/WSSecurityStreamReader.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/WSSecurityStreamReader.java
Wed Mar 26 16:39:30 2014
@@ -29,8 +29,12 @@ import javax.xml.stream.XMLStreamExcepti
public class WSSecurityStreamReader extends XMLSecurityStreamReader {
- public WSSecurityStreamReader(InputProcessorChain inputProcessorChain,
XMLSecurityProperties securityProperties) {
+ private final boolean initiator;
+
+ public WSSecurityStreamReader(InputProcessorChain inputProcessorChain,
+ XMLSecurityProperties securityProperties, boolean initiator) {
super(inputProcessorChain, securityProperties);
+ this.initiator = initiator;
}
@Override
@@ -41,10 +45,10 @@ public class WSSecurityStreamReader exte
Throwable cause = e.getCause();
if (cause instanceof WSSecurityException) {
// Allow a WSSPolicyException
- if (cause.getCause() instanceof WSSPolicyException) {
+ if (initiator || cause.getCause() instanceof
WSSPolicyException) {
throw e;
}
- // Map to a "safe" error message
+ // Map to a "safe" error message if we are not the initiator
String error =
((WSSecurityException)cause).getSafeExceptionMessage();
throw new XMLStreamException(
new
WSSecurityException(((WSSecurityException)cause).getErrorCode(),