JTouch : a SWING HTTP browser for debugging proxies and webservers

Quick links
download
screenshots
donate
support
  • Description

    JTouch is a Java HTTP browser working in both GUI or CLI mode. It demonstrates the provider pluggability of JSSE for Sun and IBM. Also, it gives a low level configuration of SSL cipher suites, enabling security checks of web servers. It's a good tool for debugging or automating complex page checking, refreshing proxy caches,..

  • Features

    general :

    1. HTTP keep-alive
    2. fully customizable requests with headers and body
    3. web server & proxy authentication in Basic & Digest
    4. full cookie support for netscape and v1
    5. low level time stamps logging, then we know where is the latency (network, web server, proxy)

    specific SSL features :

    1. SSL provider pluggability with SUN and IBM
    2. low level SSL configuration (SSL version and cipher suites)
    3. configurable truststore
    4. web server certificate can be saved to a file (in order to update a keystore later)
    5. SSL random can be downgraded to zero security for speeding up SSL handshakes
    6. check all cipher suites against a webserver in order to know its security compliance

  • RFC compliance

    I tried my best to be as compliant as possible with the following RFCs, though this was not possible to implement 100% of them yet :

    1. 2616 Hypertext Transfer Protocol -- HTTP/1.1
    2. 2617 HTTP Authentication: Basic and Digest Access Authentication
    3. 2109 HTTP State Management Mechanism
    4. 2396 Uniform Resource Identifiers (URI): Generic Syntax
    5. 822 STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
    6. Netscape : PERSISTENT CLIENT STATE HTTP COOKIES

  • Installing runtime

    In order to use JTouch, you need Java 1.5 (at least) and the following security enhancements :

    1. install the unrestricted security policy files (files available in the download file)
    2. install IBM JSSE provider (version 1) (instructions and file available in the download file)

  • Running in GUI

    Open a command and run 'java -jar JTouch.jar', this will open a window and you will see some interesting logs in the command window.

  • Running in CLI

    Open a command and run 'java -jar JTouch.jar --help' to see all the available parameters.

  • Examples
    1. simple request to a webserver

      java -jar JTouch.jar -hostname:sourceforge.net -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -o:System.out

    2. simple request via proxy

      java -jar JTouch.jar -hostname:sourceforge.net -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -proxyname:proxy -proxyport:8080 -o:System.out

    3. see the time stamps

      java -jar JTouch.jar -hostname:sourceforge.net -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -o:result.txt --netstamps --htmlstamps

    4. save the cookies for another request

      java -jar JTouch.jar -hostname:fr.yahoo.com -version:HTTP/1.1 -connect:http -port:80 -uri:/ -method:GET -o:result.txt -cookiestore:netscape

    5. view the cookies stored in file

      java -jar JTouch.jar -viewcookies_netscape:cookies_netscape

    6. specify an SSL cipher suite

      java -jar JTouch.jar -hostname:www.bred.fr -version:HTTP/1.1 -connect:https -port:443 -uri:/ -method:GET -o:result.txt -truststore:all -ciphers:SSL_RSA_WITH_RC4_128_SHA

  • Feedback

    You can get all feedback from the support forum


Copyright © 2009 by Eugène Adell (Version 1.01 - Last updated : 20090403)