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.