Solicitud de intercepción y verificación de autorización en playframework

Estoy usandoplay framework 2.4.2 con Java y quiero validar que un usuario haya iniciado sesión interceptando todas las solicitudes y verificando si se establece un valor de sesión. Entonces he extendido elDefaultHttpRequestHandler y anulado elcreateAction Método para interceptar todas las solicitudes. Sin embargo, no he encontrado una buena manera de validar la sesión.

Opción 1 - Fallar

Cuando intento obtener el valor de la sesión, obtengo una excepción de tiempo de ejecución:There is no HTTP Context available from here

A continuación se muestra la clase con la que estoy trabajando:

public class RequestHandler extends DefaultHttpRequestHandler {
    @Override
    public Action createAction(Http.Request request, Method method) {
        session("loggedIn"); // Throws runtime Exception: no HTTP Context
    }
}
Opción 2 - Feo

Como la sesión es técnicamente una cookie, puedo recuperar el valor del encabezado con un código como el siguiente:

for(String cookie : request.headers().get("Cookie")){
    System.out.println("cookie: "+cookie);
}

Pero luego tengo que analizar la cadena de cookies que se parece a la siguiente línea para obtener el valor logIn. Muy sucio para mi gusto.

_ga=GA1.1.1508004144.1421266376; ki_r=; ki_t=1438789543788%378129908%3B1438789543788%3B1%3B1; PLAY_SESSION=0570411c3eb55ad230681539ddcfaa4220583fd-loggedIn=1
Opción 3: demasiado fácil para olvidar la anotación

Noto que algunos sitios web documentan un enfoque diferente y en su lugar crean un
composición de acción y agregue la anotación adecuada a cada clase o método de controlador.

El problema con este enfoque es que requiere que el desarrollador recuerde agregar la anotación. Preferiría revertir esto para bloquear cada ruta por defecto y luego agregar una anotación a las rutas que no necesitan la validación.

Un par de sitios que documentan la composición de acciones:

http://alexgaribay.com/2014/06/16/authentication-in-play-framework-using-java/https://www.playframework.com/documentation/2.2.1/JavaGuide4Pregunta

¿Hay alguna forma de validar globalmente si un usuario debe tener acceso a una página y cómo puedo acceder a la variable de sesión?

* Tenga en cuenta que no estoy interesado en utilizar un complemento de terceros para la autenticación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta