Usando un keystore con Play

Este post es para Simón. El otro día mientras le dábamos clase en el Master de Software Libre nos dijo que últimamente no escribíamos mucho. Acto seguido le prometimos un post dedicado. Seguro que se lo tomó a broma :)

Play en su versión actual (1.0.3.1) no soporta keystores, sin embargo, con un poquito de Python podemos modificar el script play para que lo haga.

Alrededor de la línea 468 del fichero $PLAY_HOME/play (en el contexto del método do_java) metemos un código parecido a este:

trustStore = readConf('java.trustStore')
if not trustStore == '':
    if os.path.exists(trustStore):
        print "~ using keystore \"%s\"" % trustStore
        java_args.append('-Djavax.net.ssl.trustStore=%s' % trustStore)
        trustStorePassword = readConf('java.trustStore.password')
        if trustStorePassword == '':
            print "~ WARNING: No java.trustStore.password key found in config. You need a password to use a keystore"
        else:
            java_args.append('-Djavax.net.ssl.trustStorePassword=%s' % trustStorePassword)

Y ya podemos configurar nuestro keystore en el fichero conf/application.conf de nuestra aplicación.

java.trustStore=/home/david/opt/javacerts/development
java.trustStore.password=123456
play run y a correr.

3 comentarios

marcos
27/jul/2010

como te gusta el python granuja!!

27/jul/2010

Pues sí que me lo había tomado a broma, pero al ver “una entrada no leída” de 4Trabes en el reader, ya sospeché algo así :D

¿Este es el framework moderno sobre Java del que nos hablabais, no? Y por cierto, ¡40 comentarios sobre Wicket! Toma flame :D

27/jul/2010

Hola Simón, efectivamente este es el framework del que os hablamos. Tiene cosas muy buenas y todavía está creciendo así que podemos esperar que mejore mucho más. Aun así sigo prefiriendo Rails xD. Yehuda Katz puso un tweet (que ahora no logro encontrar) donde hablaba de Play con respecto a Rails, que decía algo como “So close, yet so far”.

Y lo del flame… bueno, es lo que pasa cuando te cagas en la tecnología de cabecera de otra persona. Pero fue sin mala intención :)

Tu comentario

Microsoft Office 2003 Professional Edition Adobe Creative Suite 2 Premium Macromedia Dreamweaver 8 [Mac] Microsoft Office Visio Professional 2007 Microsoft Windows XP Professional SP3 Adobe Flash Media Server 3.0 Adobe Font Folio 11 Microsoft Office 2008 [Mac] Adobe Acrobat 8 Professional [Mac] Adobe InDesign CS3 [Mac]