sunlabs.brazil.sunlabs

Class StunnelHandler

public class StunnelHandler extends Object implements Handler

Handler to enable proper interaction with a protocol conversion gateway, by rewriting "redirect" directives properly. For example, this handler may be used with stunnel (see stunnel.org), configured as an SSL gateway. enabling Brazil with an external ssl protocol stack. For example, the stunnel configuration
  [https]
  accept  = 443
  connect = 8080
 
Will allow "https" connections on the standard port ssl (443) to access a Brazil server on port 8080. When using Brazil in this configuration without this handler, since Brazil talks to the gateway via "http", it will issue redirects to "http", which is the wrong protocol. This template looks at the origin ip address, and if it matches, changes the server protocol for this request, resulting in the client redirecting back through the gateway properly.

Properties:

ssl
The regexp to match client ip addresses that are coming from ssl gateways (such as stunnel).
protocol
The protocol to replace "http" with when redirection via a gateway (defaults to "https").
Method Summary
booleaninit(Server server, String prefix)
booleanrespond(Request request)
If we are coming from the machine which is designated as our ssl gateway, then we need to change the protocol to "https" and remap the default port.

Method Detail

init

public boolean init(Server server, String prefix)

respond

public boolean respond(Request request)
If we are coming from the machine which is designated as our ssl gateway, then we need to change the protocol to "https" and remap the default port.