2010-10-13 5 views
0

J'utilise un schéma de sécurité basé sur les attributs de session. Je sais que Spring a Acegi Security mais je n'ai pas beaucoup de temps pour étudier ce module. Je veux juste partager ceci pour solliciter des commentaires.Sécurité Spring MVC basée sur l'attribut de session

Le pseudocode est comme ceci.

  1. En cas de connexion réussie, je définis un attribut sur la session utilisateur. L'objet que je place en tant qu'attribut de session est un simple javabean avec une carte de privilèges.

    public class UserInfo { public Chaîne getRole() {}; public Map checkPrivilege() {}; // getters et setters }

  2. Les attributs de session contiennent également le rôle de l'utilisateur. (Il pourrait être un Utilisateur/Invité/Admin/Super Admin). Maintenant, il y a certains privilèges qui sont autorisés à l'utilisateur.

Pour mon JSP, je vérifie simplement la session de l'utilisateur pour son rôle et ses privilèges.

Mon code est rugueux comme celui-ci en utilisant JSTL

IF (User Info in Session is 'User' and has this privilege) 
    Add Button is shown 
Else 
    No Add Button is shown. 

Je ces questions:

  1. sont des attributs de session sécurisée qui ne considérés autre ne peut renifler ou pirater?
  2. La sécurité basée sur ce schéma est-elle considérée comme suffisamment sûre?

Répondre

1

Les attributs de session sont uniquement stockés côté serveur, donc oui ils sont sécurisés.

Il n'y a aucun problème à mettre ces identifiants de sécurité dans les attributs de session en termes de sécurité. Mais c'est la partie facile de la sécurité de l'application web! La partie la plus difficile est le reste de l'infrastructure de sécurité, ce que je crains que vous n'avez pas encore pensé.

Je vous recommande d'étudier Spring Security.

+0

Merci pour la réponse rapide. Je n'ai pas donné assez de pensées sur la sécurité sauf pour comprendre quelque chose comme assigner des rôles dans mon web.xml que je trouve un peu compliqué. Pouvez-vous me donner une idée de l'autre partie de l'infrastructure de sécurité que je devrais examiner? –

+0

Vous aurez besoin d'un cadre d'autorisation distinct qui s'intégrera à votre infrastructure d'authentification personnalisée. Vous trouverez cependant que Spring Security est essentiellement le framework que vous êtes en train d'écrire. Pourquoi le faire encore? –

+0

Honnêtement, je ne sais rien sur la sécurité. Merci pour cette excellente contribution. –

Questions connexes