JSTL Quick Reference

10 février 2007

Pour vous faciliter la recherche de ce genre de document ...

jstl-quick-reference.pdf

SSL et les certificats x509v3

17 novembre 2006
SSL utilise un algorithme de chiffrement asymétrique. Cet article tente d'éclaircir la relation existante entre SSL, les certificats et les autorités de certification.  la suite ...

Développez un Ticker de flux RSS avec JSTL

14 août 2006

La librairie standard xml de JSTL nous permet très rapidement de créer un ticker de flux rss. En voici la démonstration.

<c:import var='rss2' url='[votre url de flux rss2]' />
<x:parse var='news' xml='${rss2}' />

<table id='ticker'>
  <x:forEach select='$news//item' var='item' />
    <tr><td>
      <x:out select='title' escapeXml='false' />
    </td></tr>
  </x:forEach>
</table>

téléchargez le projet au format eclipse 3.2 (?)

Les quatre formes de l'authentification

13 août 2006

Un serveur web prend en charge 4 types d'authentification : BASIC, FORM, DIGEST et CLIENT-CERT. En image, voici quatre applications vous en montrant le fonctionnement.

L'authentification consiste à reconnaître un système ou une personne en fonction d'un secret qu'il détient. Bien sûr, de son côté le serveur maintient une base données dans laquelle il garde les secrets de tout le monde, qu'il pourra comparer aux informations fournies par le client.

L'authentification basique. Le navigateur ouvre une fenêtre pour vous demander la saisie de vos informations. Le nom et le mot de passe sont envoyés en clair sur la connexion. Si vous n'utilisez pas https, ces informations peuvent être exploitées par l'homme du milieu. Cette authentification est la plus répandue et également la moins fiable.

tester BasicAuthentication
téléchargez l'application BasicAuthentication ( ? ).

L'authentification formulaire. Même chose que la basique, mais ici c'est un formulaire qui remplit le rôle de la saisie. Vous pouvez donc l'inclure dans une page html.

tester FormAuthentication

téléchargez l'application FormAuthentication ( ? ).

L'authentification digeste. Le mot de passe n'est pas envoyé sur la connexion. A la place le serveur envoie un challenge (chiffre aléatoire) que le client crypte avec son mot de passe et renvoie au serveur. Le serveur connaissant le mot de passe tente de faire la même opération, si les deux réponses concordent, le client est authentifié. Cette authentification est plus sûre que la basique, mais moins bien supportée par les navigateurs.

tester DigestAuthentication
téléchargez l'application DigestAuthentication ( ? ).

L'authentification par certificat. Cette authentification est la plus sûre des quatres. Elle s'appuie sur le protocol ssl v3 (https). Dans cette version du protocol, le serveur envoie son certificat pour s'authentifier auprès du client, ainsi qu'un texte chiffré avec sa clé privée. Le client, s'il fait confiance au certificat, peut prouver que le texte à bien été crypté par le serveur avec la clé privée correspondante à la clé publique du certificat. Le client fait de même. Si le serveur reconnait le certificat, la connexion est établie. Le serveur récupère le certificat et le compare à sa base de données (realm). L'authentification est complète.

tester ClientCertAuthentication
téléchargez l'application ClientCertAuthentication ( ? ).

Le résultat de la concurrence d'accès ou se méfier du multi-threading

13 août 2006

Il faut le répéter, les servlets sont par essence 'multi-thread'. Une seule instance de chaque servlet est créée par le conteneur web.

Lors de la phase de développement, les problèmes ne se voient pas forcément. Par contre, au moment de déployer l'application, surgissent des comportements inexpliqués : Alors voilà, pour illustrer la concurrence d'accès plutôt que d'en parler, j'ai décidé de vous le montrer.

Cette application, apparemment assez simple, se contente d'afficher deux fois le même compteur, puis incrémente le compteur.

Lorsque vous faites pointer plusieurs navigateurs sur l'application, vous assistez à la désynchronisation du compteur ; celà prouve qu'entre deux affichages, un autre thread a modifié l'état de celui-ci.

tester l'application.

télécharger le projet de l'application (Eclipse 3.1 + WebTools 1.0M8 en téléchargement sur ce site).