verificado sido servicio services por otra navegador los generarán este entidad consumir certificados certificado causarán bajo autofirmados autofirmado alertas advertencias java scala playframework netty

java - sido - ¡Hacer cumplir el SSL en el juego! Marco de referencia



ssl java web service (2)

Actualmente estoy usando Play! 1.2.2 y su nuevo framework de cliente Netty.

No he encontrado un método sencillo para hacer cumplir SSL, aunque puedo hacer que HTTP y HTTPS sirvan de forma asíncrona. ¿Alguien que haya trabajado con Play! ¿Tiene un método directo de hacer cumplir SSL? No estoy seguro si necesito crear redirecciones o si esto se puede resolver rápidamente en un archivo conf .


En el controlador puede verificar contra request.secure y hacer una redirección o devolver 403 / acceso denegado.

Puede forzar SSL para un controlador completo haciendo esto:

public static class ForceSSL extends Controller { @Before static void verifySSL() { if (request.secure == false) redirect("https://" + request.host + request.url); } }

... y anota otro controlador:

@With(ForceSSL.class) public class Foo extends Controller { .... }

Consulte también http://groups.google.com/group/play-framework/browse_thread/thread/7b9aa36be85d0f7b


Hay un par de maneras de hacer cumplir SSL.

En primer lugar, puede configurar todas sus acciones para usar el método .secure() , por ejemplo

<a href="@{Application.index.secure()}">index page</a>

Alternativamente, y probablemente la mejor manera, es hacerlo a través de un servidor HTTP frontend, como Apache, Nginx o Lighttpd.

La idea del servidor http frontend es que su aplicación se ejecuta en el puerto 9000, pero no es accesible desde la red externa. HTTP es responsable de todas las solicitudes entrantes, y está configurado para aceptar solo HTTPS. El servidor HTTP maneja el HTTPS, y la solicitud se reenvía a Play.

Esto deja que toda su aplicación Play funcione normalmente, y el SSL se descarga a otra aplicación.

Este mismo método puede aplicarse a un equilibrador de carga, en lugar de a un servidor HTTP, pero supongo que la mayoría de las personas optarán por la alternativa mucho más económica de un servidor HTTP, a menos que se ejecute en un entorno corporativo.