Cette partie est réservée aux développeurs Java qui souhaiteraient connaître le fonctionnement interne de AmapJ (au niveau du code lui même)

AmapJ est écrit en Java, en s'appuyant sur le framework Vaadin

AmapJ s'appuie sur un moteur de servlet, comme par exemple Tomcat.

AmapJ peut s'utiliser sans ou avec une base de données externe. Dans le cas "sans base de données externe", une base de données est créée en interne avec HSQLDB.

La gestion des transactions (début de transaction, fin de transaction avec COMMIT ou ROLLBACK) est réalisée grâce à AspectJ

Le fonctionnement est le suivant:

L'utilisation de AspectJ est indispensable pour le bon fonctionnement de AmapJ !

La gestion des logs est réalisée avec log4j2

Plus de détails sur log4J2

Pour des raisons de sécurité, les mots de passe sont stockés sous la forme d'un hash dans la base de données, avec l'emploi d'un salt (sel).

Les mots de passe ne peuvent pas être retrouvés, par qui que ce soit. Les mots de passe ne sont pas décryptables.

Cet article explique bien la problèmatique générale : https://en.wikipedia.org/wiki/Rainbow_table

Plus concrétement, AmapJ utilise la méthode suivante à la création du mot de passe

Pour la vérification du mot de passe , AmapJ utilise la méthode suivante

L'algorithme PBKDF2 avec SHA-1 comme algorithme de hash est irreversible , à partir du hash (l'empreinte) on ne peut pas retrouver le mot de passe.