I'm using cxf version 3.1.7 to expose a SOAP service.
Due to an old client I must get rid of ONLY this BSP rule R4220 ("Any NONCE
MUST specify an EncodingType attribute").
UserNameTokenInterceptor:
protected UsernameTokenPrincipal parseTokenAndCreatePrincipal(Element
tokenElement, boolean bspCompliant)
throws WSSecurityException, Base64DecodingException {
BSPEnforcer bspEnforcer = new
org.apache.wss4j.common.bsp.BSPEnforcer(!bspCompliant);
org.apache.wss4j.dom.message.token.UsernameToken ut =
new
org.apache.wss4j.dom.message.token.UsernameToken(tokenElement, false,
bspEnforcer);
UsernameTokenInterceptorProvider:
public UsernameTokenInterceptorProvider(Bus bus) {
this((UsernameTokenInterceptor)
bus.getProperty("org.apache.cxf.ws.security.usernametoken.interceptor"));
}
Is setting "org.apache.cxf.ws.security.usernametoken.interceptor" bus' prop
to a custom UserNameTokenInterceptor class overriding
parseTokenAndCreatePrincipal the best I can do?
(So I can define a BSPEnforcer configured to my according to my needs)
I'm importing classpath:META-INF/cxf/cxf.xml in my Spring config. Is a
custom PostProcessor the best way to configure the Bus?
Thank you very much!
Best regards