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.


$config[zx-auto] not found$config[zx-overlay] not found