IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Restreindre l'accès à des champs dans une page [Security]


Sujet :

Spring Java

  1. #1
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut Restreindre l'accès à des champs dans une page
    Voici une question sans doute super facile pour les habitués de Spring Security.

    Je vais développer une web app qui gère différents profils d'utilisateurs.
    Certains profils ont plus de droits que d'autres.

    Je dois donc restreindre l'accès à certains champs pour certains profils.

    J'ai vu qu'on peut conditionner l'affichage de champs, d'un bloc etc dans une JSP avec le tag <authorize/>.

    Par contre, comment faire si je veux toujours les afficher mais juste les désactiver (read-only, non modifiable...) pour certains profils ?

    Et quelles sont les bonnes pratiques de conception/dévelopement à ce niveau là ?

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 60
    Points
    60
    Par défaut Voici je pense là réponse a votre question
    Bonjour voici la solution

    -- en haut de ta page Jsp et avec spring security

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
    <%@ page import="org.springframework.security.context.SecurityContextHolder" %>
    <%@ page import="org.springframework.security.userdetails.UserDetails" %>
    <%@ page import="org.springframework.security.GrantedAuthority" %>
     
    <%
     
    Object obj = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
     
    if (obj instanceof UserDetails) {
    	GrantedAuthority[] granted = ((UserDetails)obj).getAuthorities();
    	String authority = granted[0].getAuthority() ;
      String username = ((UserDetails)obj).getUsername();
      System.out.println("UserName : " + obj.toString());
      System.out.println("Authority : " +   authority);
      String role = authority.substring(5);
      session.setAttribute("role",role);
    } else {
      String username = obj.toString();
      System.out.println("UserName : " + username);
    }
     
    %>
    -- Ensuite si tu souhaites voir le role de la personne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="userRole">
    Role :  <%=session.getAttribute("role") %>
    </div>
    et ensuite si tu souhaites afficher tel ou tel partie en fonction du role
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <security:authorize ifAnyGranted="ROLE_ADMIN">
    <div class="mnuLien1">
    <a href="#">Guelette intranet</a>
    </div>
    <div class="mnuLien2">
    <a href="#">Rpertoires data</a>
    </div>
    <div class="mnuLien3">
    <a href="#">Statistique server</a>
    </div>
    <div class="mnuLien4">
    <a href="#">Disque Usb Mount</a>
    </div>
    </security:authorize>
     
    <security:authorize ifAnyGranted="ROLE_USER">
    <div class="mnuLien1">
    <a href="#">hard profile Gaetan Guelette</a>
    </div>
    <div class="mnuLien2">
    <a href="#">Activation du merroring Sql </a>
    </div>
    <div class="mnuLien3">
    <a href="#">Sauvegardes</a>
    </div>
    <div class="mnuLien4">
    <a href="#">planning</a>
    </div>
    </security:authorize>
    Bonne soirée.

  3. #3
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/09/2011, 18h55
  2. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39
  3. Existance de champ dans une page.
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/03/2005, 11h14
  4. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo