• 1.0-SNAPSHOT

s3auth.com High-Level Architecture

The system consists of three Maven modules:

  • s3auth-hosts is responsible for 1) data persistence, 2) downloading of S3 data objects on demand, and 3) authorization of users through .htpasswd encryption mechanism;
  • s3auth-rest is a web front-end that manipulates with user accounts and supplementary HTML pages (at http://www.s3auth.com).
  • s3auth-relay is an HTTP web server that 1) consumes HTTP requests, 2) authenticates users, and 3) responds to them using the data retrieved from s3auth-hosts (at http://relay.s3auth.com).

This UML class/package diagram explains how these modules depend on each other:

UML package diagram

s3auth-hosts exposes a number of interfaces and just one class DynamoHosts, which implements Hosts interface. As the name explains, we persist user data in Amazon DynamoDB.

UML class diagram of s3auth-hosts

s3auth-rest is a collection of JAX-RS resources, JAXB-annotated entities, XSL pages, Groovy end-to-end tests - all managed by Jetty web server, enhanced with ReXSL framework. The only class it uses is DynamoHosts, which it instantiates inside a servlet listener.

s3auth-relay is a custom multi-threaded web server, runnable as a JAR from a command line. Again, it uses DynamoHosts to get access to our persistence layer.

UML class diagram of s3auth-relay