Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 8 · Exercice de TD

Qui suis-je ?

Sécuriser l'application · niveau 2

Énoncé

Ajouter une adresse GET /api/moi, accessible à toute personne identifiée, qui renvoie son identifiant et ses rôles. Écrire la règle et le test.

Corrigé


@RestController
public class MoiController {

    public record Moi(String identifiant, List<String> roles) {
    }

    @GetMapping("/api/moi")
    public Moi moi(Authentication authentification) {
        List<String> roles = authentification.getAuthorities().stream()
                .map(GrantedAuthority::getAuthority)
                .filter(droit -> droit.startsWith("ROLE_"))
                .toList();
        return new Moi(authentification.getName(), roles);
    }
}

La règle, placée avant celles du personnel :


                // exercice 8.4 : toute personne identifiée peut demander qui elle est
                .requestMatchers(HttpMethod.GET, "/api/moi").authenticated()

Le filtre sur ROLE_ écarte le « facteur » de la section 8.4. Avec curl :


$ curl -i -u admin:libraire-2026 http://localhost:8000/api/moi
HTTP/1.1 200
Content-Type: application/json
Content-Length: 46

{"identifiant":"admin","roles":["ROLE_ADMIN"]}

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →