diff --git a/spring-ws-security/src/main/java/org/springframework/ws/soap/security/wss4j2/Wss4jSecurityInterceptor.java b/spring-ws-security/src/main/java/org/springframework/ws/soap/security/wss4j2/Wss4jSecurityInterceptor.java index 3673de14..354fdeab 100644 --- a/spring-ws-security/src/main/java/org/springframework/ws/soap/security/wss4j2/Wss4jSecurityInterceptor.java +++ b/spring-ws-security/src/main/java/org/springframework/ws/soap/security/wss4j2/Wss4jSecurityInterceptor.java @@ -231,6 +231,26 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl this.securementActions = securementActions; } + /** + * Set a WSS4J option. + * @param key the id of the option as defined in {@link WSHandlerConstants} + * @param value the value of the option + * @since 4.1.0 + */ + public void setOption(String key, String value) { + this.handler.setOption(key, value); + } + + /** + * Set a WSS4J flag option. + * @param key the id of the option as defined in {@link WSHandlerConstants} + * @param value whether the option is enabled + * @since 4.1.0 + */ + public void setOption(String key, boolean value) { + this.handler.setOption(key, value); + } + /** * The actor name of the {@code wsse:Security} header. *

@@ -240,7 +260,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * standard values. */ public void setSecurementActor(String securementActor) { - this.handler.setOption(WSHandlerConstants.ACTOR, securementActor); + setOption(WSHandlerConstants.ACTOR, securementActor); } public void setSecurementEncryptionCrypto(Crypto securementEncryptionCrypto) { @@ -256,7 +276,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * only. */ public void setSecurementEncryptionKeyIdentifier(String securementEncryptionKeyIdentifier) { - this.handler.setOption(WSHandlerConstants.ENC_KEY_ID, securementEncryptionKeyIdentifier); + setOption(WSHandlerConstants.ENC_KEY_ID, securementEncryptionKeyIdentifier); } /** @@ -265,7 +285,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * {@link WSConstants#KEYTRANSPORT_RSAOAEP}. */ public void setSecurementEncryptionKeyTransportAlgorithm(String securementEncryptionKeyTransportAlgorithm) { - this.handler.setOption(WSHandlerConstants.ENC_KEY_TRANSPORT, securementEncryptionKeyTransportAlgorithm); + setOption(WSHandlerConstants.ENC_KEY_TRANSPORT, securementEncryptionKeyTransportAlgorithm); } /** @@ -282,7 +302,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * it is omitted. Example of a list:


 	 * <property name="securementEncryptionParts"
 	 *	 value="{Content}{http://example.org/paymentv2}CreditCard;
-	 *			   {Element}{}UserName" />
+	 *               {Element}{}UserName" />
 	 * 
The first entry of the list identifies the element {@code CreditCard} * in the namespace {@code http://example.org/paymentv2}, and will encrypt its * content. Be aware that the element name, the namespace identifier, and the @@ -304,7 +324,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * by default. */ public void setSecurementEncryptionParts(String securementEncryptionParts) { - this.handler.setOption(WSHandlerConstants.ENCRYPTION_PARTS, securementEncryptionParts); + setOption(WSHandlerConstants.ENCRYPTION_PARTS, securementEncryptionParts); } /** @@ -314,7 +334,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * all of these algorithms are required by the XML Encryption specification. */ public void setSecurementEncryptionSymAlgorithm(String securementEncryptionSymAlgorithm) { - this.handler.setOption(WSHandlerConstants.ENC_SYM_ALGO, securementEncryptionSymAlgorithm); + setOption(WSHandlerConstants.ENC_SYM_ALGO, securementEncryptionSymAlgorithm); } /** @@ -338,7 +358,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * a security risk, because the public key of that certificate is used only. */ public void setSecurementEncryptionUser(String securementEncryptionUser) { - this.handler.setOption(WSHandlerConstants.ENCRYPTION_USER, securementEncryptionUser); + setOption(WSHandlerConstants.ENCRYPTION_USER, securementEncryptionUser); } public void setSecurementPassword(String securementPassword) { @@ -354,7 +374,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * The default setting is PW_DIGEST. */ public void setSecurementPasswordType(String securementUsernameTokenPasswordType) { - this.handler.setOption(WSHandlerConstants.PASSWORD_TYPE, securementUsernameTokenPasswordType); + setOption(WSHandlerConstants.PASSWORD_TYPE, securementUsernameTokenPasswordType); } /** @@ -363,14 +383,14 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * @see WSConstants#DSA */ public void setSecurementSignatureAlgorithm(String securementSignatureAlgorithm) { - this.handler.setOption(WSHandlerConstants.SIG_ALGO, securementSignatureAlgorithm); + setOption(WSHandlerConstants.SIG_ALGO, securementSignatureAlgorithm); } /** * Defines which signature digest algorithm to use. */ public void setSecurementSignatureDigestAlgorithm(String digestAlgorithm) { - this.handler.setOption(WSHandlerConstants.SIG_DIGEST_ALGO, digestAlgorithm); + setOption(WSHandlerConstants.SIG_DIGEST_ALGO, digestAlgorithm); } public void setSecurementSignatureCrypto(Crypto securementSignatureCrypto) { @@ -384,7 +404,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * {@code IssuerSerial} and {@code DirectReference} are valid only. */ public void setSecurementSignatureKeyIdentifier(String securementSignatureKeyIdentifier) { - this.handler.setOption(WSHandlerConstants.SIG_KEY_ID, securementSignatureKeyIdentifier); + setOption(WSHandlerConstants.SIG_KEY_ID, securementSignatureKeyIdentifier); } /** @@ -414,7 +434,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * the SOAP namespace identifier can be empty ({@code {}}). */ public void setSecurementSignatureParts(String securementSignatureParts) { - this.handler.setOption(WSHandlerConstants.SIGNATURE_PARTS, securementSignatureParts); + setOption(WSHandlerConstants.SIGNATURE_PARTS, securementSignatureParts); } /** @@ -427,7 +447,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * specified by {@link #setSecurementUsername(String)}. */ public void setSecurementSignatureUser(String securementSignatureUser) { - this.handler.setOption(WSHandlerConstants.SIGNATURE_USER, securementSignatureUser); + setOption(WSHandlerConstants.SIGNATURE_USER, securementSignatureUser); } /** @@ -548,7 +568,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl */ public void setEnableSignatureConfirmation(boolean enableSignatureConfirmation) { - this.handler.setOption(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, enableSignatureConfirmation); + setOption(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, enableSignatureConfirmation); this.enableSignatureConfirmation = enableSignatureConfirmation; } @@ -556,7 +576,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * Sets if the generated timestamp header's precision is in milliseconds. */ public void setTimestampPrecisionInMilliseconds(boolean timestampPrecisionInMilliseconds) { - this.handler.setOption(WSHandlerConstants.TIMESTAMP_PRECISION, timestampPrecisionInMilliseconds); + setOption(WSHandlerConstants.TIMESTAMP_PRECISION, timestampPrecisionInMilliseconds); } /** @@ -571,7 +591,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * messages. Default is {@code true}. */ public void setSecurementMustUnderstand(boolean securementMustUnderstand) { - this.handler.setOption(WSHandlerConstants.MUST_UNDERSTAND, securementMustUnderstand); + setOption(WSHandlerConstants.MUST_UNDERSTAND, securementMustUnderstand); } /** @@ -579,7 +599,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * Default is {@code false}. */ public void setSecurementUsernameTokenNonce(boolean securementUsernameTokenNonce) { - this.handler.setOption(ConfigurationConstants.ADD_USERNAMETOKEN_NONCE, securementUsernameTokenNonce); + setOption(ConfigurationConstants.ADD_USERNAMETOKEN_NONCE, securementUsernameTokenNonce); } /** @@ -587,7 +607,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * Default is {@code false}. */ public void setSecurementUsernameTokenCreated(boolean securementUsernameTokenCreated) { - this.handler.setOption(ConfigurationConstants.ADD_USERNAMETOKEN_CREATED, securementUsernameTokenCreated); + setOption(ConfigurationConstants.ADD_USERNAMETOKEN_CREATED, securementUsernameTokenCreated); } /** @@ -616,7 +636,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl */ public void setBspCompliant(boolean bspCompliant) { - this.handler.setOption(WSHandlerConstants.IS_BSP_COMPLIANT, bspCompliant); + setOption(WSHandlerConstants.IS_BSP_COMPLIANT, bspCompliant); this.bspCompliant = bspCompliant; } @@ -627,7 +647,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl */ public void setAddInclusivePrefixes(boolean addInclusivePrefixes) { - this.handler.setOption(WSHandlerConstants.ADD_INCLUSIVE_PREFIXES, addInclusivePrefixes); + setOption(WSHandlerConstants.ADD_INCLUSIVE_PREFIXES, addInclusivePrefixes); this.addInclusivePrefixes = addInclusivePrefixes; } @@ -640,7 +660,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl * @see WSHandlerConstants#USE_SINGLE_CERTIFICATE */ public void setUseSingleCertificate(boolean useSingleCertificate) { - this.handler.setOption(WSHandlerConstants.USE_SINGLE_CERTIFICATE, useSingleCertificate); + setOption(WSHandlerConstants.USE_SINGLE_CERTIFICATE, useSingleCertificate); } /**