1616import java .io .IOException ;
1717import java .util .ArrayList ;
1818import java .util .List ;
19- import java .util .Locale ;
2019import org .apache .log4j .Logger ;
2120import org .parosproxy .paros .core .scanner .AbstractAppParamPlugin ;
2221import org .parosproxy .paros .core .scanner .Category ;
2322import org .parosproxy .paros .core .scanner .NameValuePair ;
24- import org .parosproxy .paros .network .HttpHeaderField ;
2523import org .parosproxy .paros .network .HttpMessage ;
2624import org .parosproxy .paros .network .HttpRequestHeader ;
2725import org .zaproxy .zap .extension .jwt .attacks .ClientSideAttack ;
@@ -54,8 +52,6 @@ public class JWTActiveScanRule extends AbstractAppParamPlugin {
5452 private static final String SOLUTION = JWTI18n .getMessage ("jwt.scanner.soln" );
5553 private static final String REFERENCE = JWTI18n .getMessage ("jwt.scanner.refs" );
5654 private static final Logger LOGGER = Logger .getLogger (JWTActiveScanRule .class );
57- private static final String AUTHORIZATION_HEADER_KEY =
58- HttpRequestHeader .AUTHORIZATION .toLowerCase (Locale .ROOT );
5955 private int maxRequestCount ;
6056
6157 @ Override
@@ -80,26 +76,21 @@ public void init() {
8076 }
8177
8278 protected void scan (List <NameValuePair > nameValuePairs ) {
83- if (nameValuePairs .isEmpty ()
84- || nameValuePairs .get (0 ).getType () != NameValuePair .TYPE_HEADER ) {
85- super .scan (nameValuePairs );
86- } else {
79+ if (!nameValuePairs .isEmpty ()
80+ && nameValuePairs .get (0 ).getType () == NameValuePair .TYPE_HEADER ) {
8781 nameValuePairs = new ArrayList <>(nameValuePairs );
88- List <HttpHeaderField > headerFields = getBaseMsg ().getRequestHeader ().getHeaders ();
89- for (HttpHeaderField headerField : headerFields ) {
90- if (AUTHORIZATION_HEADER_KEY .equals (
91- headerField .getName ().toLowerCase (Locale .ROOT ))) {
92- nameValuePairs .add (
93- new NameValuePair (
94- NameValuePair .TYPE_HEADER ,
95- headerField .getName (),
96- headerField .getValue (),
97- nameValuePairs .size ()));
98- break ;
99- }
82+ String authorizationHeaderValue =
83+ getBaseMsg ().getRequestHeader ().getHeader (HttpRequestHeader .AUTHORIZATION );
84+ if (authorizationHeaderValue != null ) {
85+ nameValuePairs .add (
86+ new NameValuePair (
87+ NameValuePair .TYPE_HEADER ,
88+ HttpRequestHeader .AUTHORIZATION ,
89+ authorizationHeaderValue ,
90+ nameValuePairs .size ()));
10091 }
101- super .scan (nameValuePairs );
10292 }
93+ super .scan (nameValuePairs );
10394 }
10495
10596 @ Override
0 commit comments