Indstil JWT med Spring Boot og Swagger UI

1. Introduktion

I denne korte vejledning skal vi se, hvordan vi konfigurerer Swagger UI til at inkludere et JSON Web Token (JWT), når det kalder vores API.

2. Maven-afhængigheder

I dette eksempel bruger vi springfox-boot-starter, som indeholder alle de nødvendige afhængigheder for at begynde at arbejde med Swagger og Swagger UI. Lad os tilføje det til vores pom.xml fil:

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

3. Swagger-konfiguration

Først skal vi definere vores ApiKey at inkludere JWT som en autorisationsoverskrift:

private ApiKey apiKey () {returner nye ApiKey ("JWT", "Authorization", "header"); }

Lad os derefter konfigurere JWT Sikkerhedskontekst med et globalt AuthorizationScope:

privat SecurityContext securityContext () {return SecurityContext.builder (). securityReferences (defaultAuth ()). build (); } privat liste defaultAuth () {AuthorizationScope autorisationScope = ny AuthorizationScope ("global", "accessEverything"); AuthorizationScope [] authorisationScopes = ny AuthorizationScope [1]; authorisation Scope [0] = autorisationsscope; returnere Arrays.asList (ny SecurityReference ("JWT", autorisationsskoper)); }

Og så konfigurerer vi vores API Docket bønne til at omfatte API-info, sikkerhedskontekster og sikkerhedsordninger:

@Bean offentlig Docket-api () {returner ny Docket (DocumentationType.SWAGGER_2) .apiInfo (apiInfo ()) .securityContexts (Arrays.asList (securityContext ())) .securitySchemes (Arrays.asList (apiKey ())) .select () ) .apis (RequestHandlerSelectors.any ()). stier (PathSelectors.any ()) .build (); } 
privat ApiInfo apiInfo () {returner ny ApiInfo ("Min REST API", "Nogle brugerdefinerede beskrivelser af API.", "1.0", "Servicevilkår", ny kontakt ("Sallo Szrajbman", "www.baeldung.com") , "[email protected]"), "License of API", "API licens URL", Collections.emptyList ()); }

4. REST-controller

I vores ClientsRestController, lad os skrive en simpel getClients slutpunkt for at returnere en liste over klienter:

@RestController (value = "/ clients") @Api (tags = "Clients") public class ClientsRestController {@ApiOperation (value = "Denne metode bruges til at hente klienterne.") @GetMapping public List getClients () {return Arrays .asList ("Første klient", "Anden klient"); }}

5. Swagger UI

Nu, når vi starter vores applikation, kan vi få adgang til Swagger UI på // localhost: 8080 / swagger-ui / URL.

Her er et kig på Swagger UI med Bemyndige knap:

Når vi klikker på Bemyndige knap, vil Swagger UI bede om JWT.

Vi skal bare indtaste vores token og klikke på Bemyndige, og fra da af vil alle anmodninger til vores API automatisk indeholde tokenet i HTTP-overskrifterne:

6. API-anmodning med JWT

Når vi sender anmodningen til vores API, kan vi se, at der er en "Authorization" -overskrift med vores tokenværdi:

7. Konklusion

I denne artikel så vi, hvordan Swagger UI leverer brugerdefinerede konfigurationer til opsætning af JWT, hvilket kan være nyttigt, når vi behandler vores ansøgningstilladelse. Efter godkendelse i Swagger UI inkluderer alle anmodninger automatisk vores JWT.

Kildekoden i denne artikel er tilgængelig på GitHub.


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