2222import java .util .ArrayList ;
2323import java .util .Collections ;
2424import java .util .List ;
25-
2625import javax .security .auth .callback .Callback ;
2726import javax .security .auth .callback .CallbackHandler ;
2827import javax .security .auth .callback .UnsupportedCallbackException ;
4443import org .apache .wss4j .dom .validate .Credential ;
4544import org .apache .wss4j .dom .validate .SignatureTrustValidator ;
4645import org .apache .wss4j .dom .validate .TimestampValidator ;
46+ import org .w3c .dom .Document ;
47+ import org .w3c .dom .Element ;
48+
4749import org .springframework .beans .factory .InitializingBean ;
4850import org .springframework .util .Assert ;
4951import org .springframework .util .CollectionUtils ;
5658import org .springframework .ws .soap .security .callback .CallbackHandlerChain ;
5759import org .springframework .ws .soap .security .callback .CleanupCallback ;
5860import org .springframework .ws .soap .security .wss4j2 .callback .UsernameTokenPrincipalCallback ;
59- import org .w3c .dom .Document ;
60- import org .w3c .dom .Element ;
6161
6262/**
6363 * A WS-Security endpoint interceptor based on Apache's WSS4J. This interceptor supports messages created by the {@link
@@ -135,7 +135,7 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl
135135
136136 private final Wss4jHandler handler = new Wss4jHandler ();
137137
138- private final WSSecurityEngine securityEngine = new WSSecurityEngine () ;
138+ private final WSSecurityEngine securityEngine ;
139139
140140 private boolean enableRevocation ;
141141
@@ -149,6 +149,21 @@ public class Wss4jSecurityInterceptor extends AbstractWsSecurityInterceptor impl
149149 // To maintain same behavior as default, this flag is set to true
150150 private boolean removeSecurityHeader = true ;
151151
152+ /**
153+ * Create a {@link WSSecurityEngine} by default.
154+ */
155+ public Wss4jSecurityInterceptor () {
156+ this .securityEngine = new WSSecurityEngine ();
157+ }
158+
159+ /**
160+ * Inject a customize {@link WSSecurityEngine}.
161+ * @param securityEngine
162+ */
163+ public Wss4jSecurityInterceptor (WSSecurityEngine securityEngine ) {
164+ this .securityEngine = securityEngine ;
165+ }
166+
152167 public void setSecurementActions (String securementActions ) {
153168 this .securementActions = securementActions ;
154169 }
0 commit comments