Package org.owasp.webscarab.plugin.identity

Source Code of org.owasp.webscarab.plugin.identity.CookieTokenParser

package org.owasp.webscarab.plugin.identity;

import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import org.owasp.webscarab.model.Cookie;
import org.owasp.webscarab.model.NamedValue;
import org.owasp.webscarab.model.Request;
import org.owasp.webscarab.model.Response;

public class CookieTokenParser implements TokenParser {

  private String[] requestHeaders = new String[] { "Cookie", "Cookie2" },
      responseHeaders = new String[] { "Set-Cookie", "Set-Cookie2" };

  @Override
  public List<NamedValue> getTokens(Request request) {
    List<NamedValue> tokens = new LinkedList<NamedValue>();
    for (String headerName : requestHeaders) {
      String[] headers = request.getHeaders(headerName);
      if (headers == null)
        continue;
      for (String header : headers) {
        NamedValue[] cookies = NamedValue.splitNamedValues(header,
            ";\\s*", "=");
        if (cookies != null)
          for (NamedValue cookie : cookies)
            tokens.add(cookie);
      }
    }
    return tokens.size() == 0 ? null : tokens;
  }

  @Override
  public List<NamedValue> getTokens(Response response) {
    Date date = null;
   
    // date is not strictly required if all we are doing is getting the
    // cookie value
   
    // String dateHeader = response.getHeader("Date");
    // if (dateHeader != null)
    // try {
    // date = RFC2822.parseDate(response.getHeader("Date"));
    // } catch (ParseException e) {
    // }

    List<NamedValue> tokens = new LinkedList<NamedValue>();
    for (String headerName : responseHeaders) {
      String[] headers = response.getHeaders(headerName);
      if (headers == null)
        continue;
      for (String header : headers) {
        Cookie cookie = new Cookie(date, header);
        tokens.add(new NamedValue(cookie.getName(), cookie.getValue()));
      }
    }
    return tokens.size() == 0 ? null : tokens;
  }

}
TOP

Related Classes of org.owasp.webscarab.plugin.identity.CookieTokenParser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.