Postavite JWT s korisničkim sučeljem Spring Boot i Swagger

1. Uvod

U ovom kratkom vodiču vidjet ćemo kako konfigurirati Swagger UI tako da uključuje JSON Web Token (JWT) kada poziva naš API.

2. Ovisnosti Mavena

U ovom ćemo primjeru koristiti springfox-boot-starter, koji uključuje sve potrebne ovisnosti za početak rada sa Swaggerom i Swagger korisničkim sučeljem. Dodajmo ga našem pom.xml datoteka:

 org.springframework.boot spring-boot-starter-web io.springfox springfox-boot-starter 3.0.0 

3. Konfiguracija swagera

Prvo, moramo definirati svoje ApiKey uključiti JWT kao zaglavlje autorizacije:

private ApiKey apiKey () {return new ApiKey ("JWT", "Autorizacija", "zaglavlje"); }

Dalje, konfigurirajmo JWT SecurityContext s globalnim AuthorizationScope:

private SecurityContext securityContext () {return SecurityContext.builder (). securityReferences (defaultAuth ()). build (); } privatni popis defaultAuth () {AuthorizationScope authScope = novi AuthorizationScope ("global", "accessEverything"); AuthorizationScope [] authScopes = novi AuthorizationScope [1]; authorisationScopes [0] = autorizacijaScope; vratiti Arrays.asList (nova SecurityReference ("JWT", authusscopes)); }

A zatim konfiguriramo naš API Etiketa bean za uključivanje API informacija, sigurnosnih konteksta i sigurnosnih shema:

@Bean public Docket api () {return new Docket (DocumentationType.SWAGGER_2) .apiInfo (apiInfo ()) .securityContexts (Arrays.asList (securityContext ())) .securitySchemes (Arrays.asList (apiKey ())) .select ( ) .apis (RequestHandlerSelectors.any ()) .paths (PathSelectors.any ()) .build (); } 
privatni ApiInfo apiInfo () {vratiti novi ApiInfo ("Moj REST API", "Neki prilagođeni opis API-ja.", "1.0", "Uvjeti pružanja usluge", novi kontakt ("Sallo Szrajbman", "www.baeldung.com") , "[e-pošta zaštićena]"), "Licenca za API", "URL za API licencu", Collections.emptyList ()); }

4. REST kontroler

U našem ClientsRestController, napišimo jednostavan getClients krajnja točka za povratak popisa klijenata:

@RestController (value = "/ clients") @Api (tags = "Clients") javna klasa ClientsRestController {@ApiOperation (value = "Ova metoda se koristi za dobivanje klijenata.") @GetMapping javni popis getClients () {return Arrays .asList ("Prvi klijent", "Drugi klijent"); }}

5. Swagger UI

Sada, kada pokrenemo našu aplikaciju, možemo pristupiti korisničkom sučelju Swagger na // localhost: 8080 / swagger-ui / URL.

Evo pogleda na Swagger UI sa Ovlastiti dugme:

Kada kliknemo na Ovlastiti gumb, Swagger UI zatražit će JWT.

Samo trebamo unijeti svoj token i kliknuti na Ovlastiti, a od tada će svi zahtjevi upućeni našem API-ju automatski sadržavati token u HTTP zaglavljima:

6. API zahtjev s JWT-om

Kada šaljemo zahtjev našem API-u, možemo vidjeti da postoji zaglavlje "Autorizacija" s našom vrijednošću tokena:

7. Zaključak

U ovom smo članku vidjeli kako Swagger UI pruža prilagođene konfiguracije za postavljanje JWT-a, što može biti korisno kada se radi o autorizaciji naše aplikacije. Nakon autorizacije u korisničkom sučelju Swagger, svi zahtjevi automatski će uključivati ​​naš JWT.

Izvorni kôd u ovom članku dostupan je na GitHubu.