try
{
EbMSMessage msg = (EbMSMessage)message.getPayload();
MessageHeader messageHeader = msg.getMessageHeader();
CollaborationProtocolAgreement cpa = ebMSDAO.getCPA(messageHeader.getCPAId());
Signature signature = (Signature)message.getProperty(Constants.EBMS_SIGNATURE);
PartyInfo partyInfo = CPAUtils.getPartyInfo(cpa,messageHeader.getFrom().getPartyId());
List<DeliveryChannel> deliveryChannels = CPAUtils.getDeliveryChannels(partyInfo,messageHeader.getFrom().getRole(),messageHeader.getService(),messageHeader.getAction());
if (CPAUtils.isSigned(deliveryChannels.get(0)))
{
if (signature == null)
{
message.setProperty(Constants.EBMS_ERROR,EbMSMessageUtils.createError("//Header/Signature",Constants.EbMSErrorCode.SECURITY_FAILURE.errorCode(),"No signature found."));
return false;
}
if (!signature.isValid())
{
message.setProperty(Constants.EBMS_ERROR,EbMSMessageUtils.createError("//Header/Signature",Constants.EbMSErrorCode.SECURITY_FAILURE.errorCode(),"Signature invalid."));
return false;
}
}