2017-10-17 2 views
0

Je souhaite que toutes les demandes avec/secure path nécessitent un rôle ADMIN. Ce que j'est un contrôleur:Url sécurisée avec le rôle ADMIN Spring Security

@Controller("/secure") 
public class AdminController { 

    @RequestMapping("/allPosts") 
    public String allPosts(Model model){ 
     //some logic 
     return "admin/allPosts"; 
    } 
} 

Où allPosts est un HTML/thymeleaf page dans src/main/resources/templates/admin. Voici mon morceau config:

.antMatchers("/secure/**").hasRole("ADMIN") 

Quand j'accéder à localhost: 8080/sécurité/allPosts montre 404 comme prévu, mais je peux aussi accéder localhost8080/allPosts et cela est faux. Comment est-ce possible?

Répondre

2

@Controller("/secure") - c'est votre erreur. La valeur de l'annotation est en fait le nom du bean, pas le mappage de la requête. Et 404 n'est pas prévu - vous devriez en attendre 403. Essayez ce qui suit:

@Controller 
@RequestMapping("/secure") 
public class AdminController 
+0

Vous avez raison, maintenant je le vois. Merci! – jarosik