2010-09-13 18 views
0

Nous construisons une application Web GWT + Hibernate + Spring qui est déployée sur tomcat et postgres. En regardant http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ et http://www.owasp.org/index.php/Hashing_Java#Complete_Java_Sample, nous avons une table d'utilisateur et une table de rôle (4-5 rôles, pour commencer).Comment faites-vous Auth avec AuthenticationFilter et RequestContext?

Diverses couches de l'application doivent accéder aux informations de l'utilisateur actuellement connecté (comme loginId, locale, etc), donc je pense à ajouter un AuthenticationFilter qui authentifiera chaque requête Http et créera un ThreadLocal RequestContext qui tiendra divers attributs d'utilisateur.

Je pense également à avoir un AuthCache qui va stocker un ConcurrentHashMap de sessionIds et loginIds. AuthenticationFilter utilisera AuthCache pour l'authentification. Je comprends Spring Spring et Apache Shiro (http://incubator.apache.org/projects/shiro.html) sont probablement meilleurs moyens, mais j'ai très peu de temps pour que cela soit fait pour l'instant.

Je voulais juste savoir s'il existe de meilleures façons de le faire? Existe-t-il un code qui fonctionne bien, donc ma mise en œuvre n'a pas beaucoup de trous?

Répondre

0

Je voulais juste savoir s'il existe de meilleures façons de le faire? Existe-t-il un code qui fonctionne bien, donc ma mise en œuvre n'a pas beaucoup de trous?

Ce n'est probablement pas la réponse attendue mais, qu'en est-il de Spring Security? Spring Security nécessite des efforts, mais

  • ça marche juste
  • il est largement utilisé
  • il est très probablement plus sûr qu'un développement personnalisé

Et je ne suis pas convaincu qu'une coutume le développement prendra moins de temps que l'intégration de Spring Security. Au cas où vous voudriez reconsidérer cette option, voici un petit tutoriel. Ça vaut le coup de lire l'OMI.

+0

Merci Pascal - J'ai environ 6 heures pour le faire - donc, ne peut pas se permettre de faire du printemps de sécurité. – anjanb

+0

Cependant, j'invite vos commentaires sur ma conception proposée ci-dessus. Je vous remercie. – anjanb

+0

@anjab 6 heures sont en effet extrêmement courtes. Mettra à jour la réponse alors. –