Sada JWT s používateľským rozhraním Spring Boot a Swagger
1. Úvod
V tomto krátkom tutoriáli sa dozvieme, ako nakonfigurovať používateľské rozhranie Swagger tak, aby pri volaní nášho rozhrania API obsahovalo JSON Web Token (JWT).
2. Maven závislosti
V tomto príklade budeme používať springfox-boot-starter, ktorý obsahuje všetky potrebné závislosti, aby sme mohli začať pracovať so Swagger a Swagger UI. Pridajme to k nášmu pom.xml spis:
org.springframework.boot spring-boot-starter-web io.springfox springfox-boot-starter 3.0.0
3. Konfigurácia Swagger
Najprv si musíme definovať svoje ApiKey zahrnúť JWT ako autorizačnú hlavičku:
private ApiKey apiKey () {return new ApiKey ("JWT", "Authorization", "header"); }
Ďalej nakonfigurujme JWT SecurityContext s globálnym AuthorizationScope:
private SecurityContext securityContext () {návrat SecurityContext.builder (). securityReferences (defaultAuth ()). build (); } súkromný zoznam defaultAuth () {AuthorizationScope authorizationScope = nový AuthorizationScope ("global", "accessEverything"); AuthorizationScope [] authorizedScopes = nový AuthorizationScope [1]; authorizedScopes [0] = authorizedScope; return Arrays.asList (new SecurityReference ("JWT", authorizedScopes)); }
Potom nakonfigurujeme naše API Docket bean zahrnúť informácie o API, kontexty zabezpečenia a schémy zabezpečenia:
@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 (); }
private ApiInfo apiInfo () {return new ApiInfo ("My REST API", "Some custom description of API.", "1.0", "Terms of service", new Contact ("Sallo Szrajbman", "www.baeldung.com") , „[chránené e-mailom]“), „Licencia API“, „URL licencie API“, Collections.emptyList ()); }
4. Ovládač REST
V našom ClientsRestController, napíšme jednoduchý getClients koncový bod na vrátenie zoznamu klientov:
@RestController (value = "/ clients") @Api (tags = "Clients") verejná trieda ClientsRestController {@ApiOperation (value = "Táto metóda sa používa na získanie klientov.") @GetMapping public List getClients () {return Arrays .asList ("Prvý klient", "Druhý klient"); }}
5. Swagger UI
Teraz, keď spustíme našu aplikáciu, môžeme získať prístup k používateľskému rozhraniu Swagger na adrese // localhost: 8080 / swagger-ui / URL.
Tu je pohľad na používateľské rozhranie Swagger s Povoliť tlačidlo:
Keď klikneme na ikonu Povoliť tlačidlo, používateľské rozhranie Swagger požiada o JWT.
Musíme iba zadať náš token a kliknúť na Povoliťa od tej doby budú všetky požiadavky odoslané nášmu API automaticky obsahovať token v hlavičkách HTTP:
6. Žiadosť o API s JWT
Pri odosielaní žiadosti do nášho rozhrania API vidíme, že je tu hlavička „Autorizácia“ s našou hodnotou tokenu:
7. Záver
V tomto článku sme videli, ako používateľské rozhranie Swagger poskytuje vlastné konfigurácie na nastavenie JWT, čo môže byť užitočné pri riešení našej autorizácie aplikácie. Po autorizácii v používateľskom rozhraní Swagger budú všetky žiadosti automaticky obsahovať naše JWT.
Zdrojový kód v tomto článku je k dispozícii na GitHub.