The SmartWeb Project

29 ottobre 2006

Ancora lezioni di stile

Ho individuato un modello praticamente perfetto per gestire lo stile dei form in maniera molto flessibile ed anche molto stilosa.

Cominciamo con lo sfruttare completamente l'HTML che mette a disposizione tre tag che vengono utilizzati pochissimo ma che sono molto preziosi per la definizione dei form cioè <fieldset>, <label> e <legend>.

Il tag fieldset è utilissimo per raggruppare blocchi di campi fra di loro sia per individuare raggruppamenti differenti all'interno di uno stesso modulo, sia semplicemente per separare i campi di input dai pulsanti che rappresentano i comandi.

Il tag label invece identifica l'etichetta associata ad un campo di input ed è molto utile per specificare che un certo testo non è messo lì tanto per riempire la pagina. Questo tag specifica un attributo for grazie al quale si può identificare il tag per cui è etichetta così da realizzare una vera e propria associazione.

Infine il tag legend fornisce una descrizione generica che può essere associata ad un fieldset per definirne una descrizione.

Già nella loro definizione di base, rappresentata di seguito, rendono i form molto più leggibili.




Connection parameters

















Utilizzando i fogli di stile si possono creare dei form molto molto carini come ottimamente descritto in questo sito ed esemplificato in questa immagine.



A questo punto non rimane che aggiungere una descrizione del campo, magari attraverso un help a pop-up come descritto in questa pagina, ed eventualmente aggiungere una evidenziazione del campo attualmente in edit con una combinazione di stili e JavaScript come mostrato in questo link.

27 ottobre 2006

Proteggere una web-app

Volendo mettere sotto protezione HTTPS una web-app bisogna innanzitutto assicurarsi che JBoss sia in grado di lavorare in SSL andando a variare il file server/default/deploy/jbossweb-tomcat55.sar/server.xml.

In questo file bisogna de-commentare la parte relativa al connettore HTTPS assicurandosi che la porta utilizzata corrisponda a quella configurata nel connettore HTTP con il nome di redirectPort, in caso contrario non funzionerebbe il redirect automatico da HTTP ad HTTPS.

E' necessario inoltre configurare il nome del file contenente le chiavi pubbliche e private e la password per l'accesso al suddetto file.

Per generare il file delle chiavi si deve utilizzare il keytool incluso nella JDK della Sun:
keytool -genkey -keyalg RSA -keysize 1024    -keystore jboss.keystore -keypass jboss.pass    -dname "cn=www.domain.com, o=SmartLab, l=Rome, c=it"

E' importante che il Common Name (cn) del certificato corrisponda al nome con cui si accede al sito, il resto รจ del tutto variabile a piacere.

Spostate il file jboss.keystore dentro la cartella server/default/conf assicurandovi che il nome del file ed il valore della password corrispondano a quelli configurati nel connettore HTTPS rispettivamente con gli attributi keystoreFile e keystorePass.

A questo punto potete rendere completamente sicura una intera applicazione o anche solamente parte di essa utilizzando semplicemente il file web.xml, come nell'esempio seguente:

 <security-constraint>
   <web-resource-collection>
     <web-resource-name>all-files</web-resource-name>
     <url-pattern>/*</url-pattern>
     <http-method>GET</http-method>
     <http-method>POST</http-method>
   </web-resource-collection>
   <user-data-constraint>
     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
   </user-data-constraint>
 </security-constraint>


E' possibile controllare quali siano le risorse protette attraverso il tag url-pattern tenendo presente che possono essere presenti molteplici blocchi del tipo web-resource-collection.