@Override @SuppressWarnings("unchecked") protected ProcessingContext initializeOutgoingProcessingContext( Packet packet, boolean isSCMessage) { ProcessingContextImpl ctx = null; if (optimized) { ctx = new JAXBFilterProcessingContext(packet.invocationProperties); ((JAXBFilterProcessingContext) ctx).setAddressingVersion(addVer); ((JAXBFilterProcessingContext) ctx).setSOAPVersion(soapVersion); } else { ctx = new ProcessingContextImpl(packet.invocationProperties); } // set timestamp timeout ctx.setTimestampTimeout(this.timestampTimeOut); ctx.setSecurityPolicyVersion(spVersion.namespaceUri); try { MessagePolicy policy = null; if (packet.getMessage().isFault()) { policy = getOutgoingFaultPolicy(packet); } else if (isRMMessage(packet)) { SecurityPolicyHolder holder = outProtocolPM.get("RM"); policy = holder.getMessagePolicy(); } else if (isSCCancel(packet)) { SecurityPolicyHolder holder = outProtocolPM.get("SC"); policy = holder.getMessagePolicy(); } else { policy = getOutgoingXWSSecurityPolicy(packet, isSCMessage); } if (debug && policy != null) { policy.dumpMessages(true); } // this might mislead if there is a bug in code above // but we are doing this check for cases such as no-fault-security-policy if (policy != null) { ctx.setSecurityPolicy(policy); } if (isTrustMessage(packet)) { ctx.isTrustMessage(true); } // set the policy, issued-token-map, and extraneous properties // ctx.setIssuedTokenContextMap(issuedTokenContextMap); if (isSCMessage) { ctx.setAlgorithmSuite(policy.getAlgorithmSuite()); } else { ctx.setAlgorithmSuite(getAlgoSuite(getBindingAlgorithmSuite(packet))); } ctx.setSecurityEnvironment(secEnv); ctx.isInboundMessage(false); if (serverCert != null) { ctx.getExtraneousProperties().put(XWSSConstants.SERVER_CERTIFICATE_PROPERTY, serverCert); } @SuppressWarnings("unchecked") Map<Object, Object> extProps = ctx.getExtraneousProperties(); extProps.put(WSITServerAuthContext.WSDLPORT, pipeConfig.getWSDLPort()); } catch (XWSSecurityException e) { log.log(Level.SEVERE, LogStringsMessages.WSITPVD_0006_PROBLEM_INIT_OUT_PROC_CONTEXT(), e); throw new RuntimeException( LogStringsMessages.WSITPVD_0006_PROBLEM_INIT_OUT_PROC_CONTEXT(), e); } return ctx; }