package com.grendelscan.commons.http.cobra;
import java.net.URL;
import java.security.Policy;
import java.util.List;
import org.apache.http.HttpRequest;
import org.apache.http.cookie.Cookie;
/**
* This is used by HttpTransaction and should not be used by itself unless you really know what you are doing. It may go away in the future.
*
* @author David Byrne
*/
public class CobraUserAgent implements UserAgentContext
{
private final boolean enableScripting;
private final int transactionId;
public CobraUserAgent(final int transactionID, final boolean enableScripting)
{
transactionId = transactionID;
this.enableScripting = enableScripting;
}
@Override
public HttpRequest createHttpRequest(final int referingTransactionId)
{
HttpRequest request = new CobraHttpRequest(referingTransactionId, -1);
return request;
}
@Override
public String getAppCodeName()
{
return "Grendel-Scan";
}
@Override
public String getAppMinorVersion()
{
return "0";
}
@Override
public String getAppName()
{
return "Grendel-Scan";
}
@Override
public String getAppVersion()
{
return "1";
}
@Override
public String getBrowserLanguage()
{
return "English";
}
@Override
public String getCookie(final URL url)
{
List<Cookie> cookies = Scan.getInstance().getTransactionRecord().getTransaction(transactionId).getCookieJar().getMatchingCookies(url);
StringBuilder sb = new StringBuilder();
for (Cookie cookie : cookies)
{
sb.append(cookie.getName());
sb.append("=");
sb.append(cookie.getValue());
sb.append("; ");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
@Override
public String getPlatform()
{
return System.getProperty("os.name") + " " + System.getProperty("os.version");
}
@Override
public int getScriptingOptimizationLevel()
{
return 0;
}
@Override
public Policy getSecurityPolicy()
{
return Policy.getPolicy();
}
@Override
public String getUserAgent()
{
return Scan.getScanSettings().getUserAgentString();
}
@Override
public boolean isCookieEnabled()
{
return true;
}
@Override
public boolean isScriptingEnabled()
{
return enableScripting;
}
@Override
public void setCookie(final URL arg0, final String arg1)
{
}
}