Axis2: Rampart module is not checking the existence of signature value within wsse:security tag -----------------------------------------------------------------------------------------------
Key: AXIS2-4352 URL: https://issues.apache.org/jira/browse/AXIS2-4352 Project: Axis 2.0 (Axis2) Issue Type: Bug Environment: Linux 2.6.9-78.0.1.ELsmp Reporter: Peter Kim Rampart module works well if correct signature value exist or incorrect signature value exit, but still allows the message go through even without any signature value defined. What seems to be missing is checking for whether signature value exist after getting back wsResult vector from wss4j processing header api call (WSDoAllReceiver.java). I have added the following lines to check for the existence. ********** boolean isSigned = false; if (wsResult != null) { if ((doAction & WSConstants.SIGN) == WSConstants.SIGN) { log.info("WSDoAllReceiver: SOAP message MUST contain sinature values"); for (int i = 0; i < wsResult.size(); i++){ WSSecurityEngineResult secengine = (WSSecurityEngineResult) wsResult.elementAt(i); log.info("WSDoAllReceiver: Find sig value : "+ secengine.get(secengine.TAG_SIGNATURE_VALUE)); Object tempstr = secengine.get(secengine.TAG_SIGNATURE_VALUE); if (tempstr != null) { isSigned = true; break; } } log.info("WSDoAllReceiver: contains signature : "+isSigned); if (!isSigned) { throw new AxisFault( "WSDoAllReceiver: Incoming message does not contain signature"); } } ********** Please review and rectify if necessary. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.