itkb.INCLUDE_ALWAYS.equals(itType) ||
itkb.INCLUDE_ALWAYS_VER2.equals(itType) ||
itkb.INCLUDE_ALWAYS_TO_RECIPIENT_VER2.equals(itType)
);
if(context instanceof JAXBFilterProcessingContext){
JAXBFilterProcessingContext opContext = (JAXBFilterProcessingContext)context;
com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader secHeader =
opContext.getSecurityHeader();
com.sun.xml.ws.security.opt.api.SecurityHeaderElement issuedTokenElement = null;
GenericToken issuedToken = null;
if(opContext.getTrustContext() == null){
String itPolicyId = itkb.getUUID();
IssuedTokenContext ictx = opContext.getIssuedTokenContext(itPolicyId);
if (ictx != null) {
opContext.setTrustContext(ictx);
issuedToken = (GenericToken)ictx.getSecurityToken();
}
}
if(issuedToken != null){
issuedTokenElement = issuedToken.getElement();
if(issuedTokenElement == null){
Element element = (Element)issuedToken.getTokenValue();
issuedTokenElement = new GSHeaderElement(element);
issuedTokenElement.setId(issuedToken.getId());
}
}
if (issuedToken != null && includeToken) {
if(opContext.getSecurityHeader().getChildElement(issuedTokenElement.getId()) == null){
secHeader.add(issuedTokenElement);
}
}
if (null != itkb.getSTRID()) {
String itId = issuedToken.getId();
WSSElementFactory elementFactory = new WSSElementFactory(opContext.getSOAPVersion());
com.sun.xml.ws.security.opt.impl.reference.KeyIdentifier ref = elementFactory.createKeyIdentifier();
ref.setValue(itId);
String valueType = null;
if (issuedTokenElement != null){
String issuedTokenNS = issuedTokenElement.getNamespaceURI();
if (MessageConstants.SAML_v1_0_NS.equals(issuedTokenNS)){
valueType = MessageConstants.WSSE_SAML_KEY_IDENTIFIER_VALUE_TYPE;
}
if (MessageConstants.SAML_v2_0_NS.equals(issuedTokenNS)){
valueType = MessageConstants.WSSE_SAML_v2_0_KEY_IDENTIFIER_VALUE_TYPE;
}
}
ref.setValueType(valueType);
com.sun.xml.ws.security.opt.impl.keyinfo.SecurityTokenReference secTokRef = elementFactory.createSecurityTokenReference(ref);
String strId = itkb.getSTRID();
secTokRef.setId(strId);
Data data = new SSEData((SecurityElement)issuedTokenElement,false,opContext.getNamespaceContext());
opContext.getElementCache().put(strId,data);
secHeader.add(secTokRef);
}
}else{
SecurableSoapMessage secureMessage = context.getSecurableSoapMessage();