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 :

Mettre en place les roles


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Mettre en place les roles
    salut,

    j'utilise spring boot, restcontroller et spring security.

    j'arrive a me logger, déconnecter.
    j'ai tenté sans succès de mettre en place les rôles.

    dans ma classe userApp j'ai les roles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id")
    private Set<Role> roles = new HashSet<>();
    j'ai un user avec un role nommé 'standard'

    il arrive quand même a exécuter cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @PreAuthorize("hasRole('admin')")
    @RequestMapping(value = "/users", method = RequestMethod.POST)
    public Long createUser(@RequestBody @Valid final UserAppDto user) {
        return userService.save(user);
    }

    Le point d'entré de l'application

    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
     
        @EntityScan(basePackageClasses = {Application.class, Jsr310JpaConverters.class})
        @SpringBootApplication
        @EnableCaching
        @EnableScheduling
        public class Application implements SchedulingConfigurer{
     
            @Bean
            public WebSecurityConfigurerAdapter webSecurityConfigurerAdapter() {
                return new ApplicationSecurity();
            }
     
        }
     
        @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
        public class ApplicationSecurity extends WebSecurityConfigurerAdapter {
        ....
        }

  2. #2
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Bonjour.

    Tu dois d'abord activer Spring Security dans la configuration de ton application en rajoutant l'annotation @EnableWebSecurity, et ensuite activer les annotations pre-post (pour ton cas PreAuthorize) en rajoutant l'annotation @EnableGlobalMethodSecurity(prePostEnabled = true).
    " ... On naît, on vit, on meurt, mais exister est un honneur ... "

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    non fonctionnel car j'obtiens


    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Injection of autowired dependencies failed; nested exception is java.lang.IllegalStateException: @Order on WebSecurityConfigurers must be unique. Order of 2147483640 was already used, so it cannot be used on com.ApplicationSecurity();@4bcd3433 too.
    testét avec de multiple combinaison de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
     @EnableGlobalMethodSecurity(prePostEnabled = true)
    @EnableWebSecurity

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Bonjour à vous,

    Je constate que vous utilisez Spring Boot.

    Celui-ci utilise déjà l'annotation @EnableWebSecurity lorsque vous dépendez de spring-security. Et cette annotation ne doit être appelé qu'une seule fois.

    Pour votre erreur, cela dit clairement que ce numéro d'ordre est prit. Essayez @Order(1) ou @Order(2), etc.

    Bonne soirée

Discussions similaires

  1. [MySQL] Les solutions pour mettre en place un moteur de recherche
    Par nesswaw dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 09/09/2011, 16h09
  2. [PHPUnit] Mettre en place les tests sur une solution existante
    Par UNi[FR] dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/05/2011, 12h21
  3. Réponses: 4
    Dernier message: 18/05/2010, 09h43

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