Sett JWT med Spring Boot og Swagger UI

1. Introduksjon

I denne korte opplæringen skal vi se hvordan du konfigurerer Swagger UI for å inkludere et JSON Web Token (JWT) når det kaller API.

2. Maven-avhengigheter

I dette eksemplet bruker vi springfox-boot-starter, som inkluderer alle nødvendige avhengigheter for å begynne å jobbe med Swagger og Swagger UI. La oss legge det til vårt pom.xml fil:

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

3. Swagger-konfigurasjon

Først må vi definere vår ApiKey å inkludere JWT som autorisasjonshode:

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

Deretter la oss konfigurere JWT SecurityContext med en global AuthorizationScope:

private SecurityContext securityContext () {return SecurityContext.builder (). securityReferences (defaultAuth ()). build (); } privat liste defaultAuth () {AuthorizationScope autorisasjonScope = ny AuthorizationScope ("global", "accessEverything"); AuthorizationScope [] autorisasjonScopes = nytt AuthorizationScope [1]; autorisasjonSkop [0] = autorisasjonSkop; returnere Arrays.asList (ny SecurityReference ("JWT", autorisasjonScopes)); }

Og så konfigurerer vi API-en vår Docket bønne for å inkludere API-informasjon, sikkerhetskontekster og sikkerhetsskjemaer:

@Bean public Docket api () {return new Docket (DocumentationType.SWAGGER_2) .apiInfo (apiInfo ()) .securityContexts (Arrays.asList (securityContext ())) .securitySchemes (Arrays.asList (apiKey ())) .select (( ) .apis (RequestHandlerSelectors.any ()). stier (PathSelectors.any ()) .build (); } 
private ApiInfo apiInfo () {returner nye ApiInfo ("My REST API", "Noe tilpasset beskrivelse av API.", "1.0", "Servicevilkår", ny kontakt ("Sallo Szrajbman", "www.baeldung.com" , "[email protected]"), "License of API", "API License URL", Collections.emptyList ()); }

4. REST-kontroller

I vår ClientsRestController, la oss skrive en enkel getClients endepunkt for å returnere en liste over klienter:

@RestController (value = "/ clients") @Api (tags = "Clients") public class ClientsRestController {@ApiOperation (value = "Denne metoden brukes for å få klientene.") @GetMapping offentlig Liste getClients () {retur Arrays .asList ("First Client", "Second Client"); }}

5. Swagger UI

Nå, når vi starter søknaden vår, kan vi få tilgang til Swagger UI på // localhost: 8080 / swagger-ui / URL.

Her er en titt på Swagger UI med Autorisere knapp:

Når vi klikker på Autorisere -knappen, vil Swagger UI be om JWT.

Vi trenger bare å legge inn token og klikke på Autorisere, og fra da av vil alle forespørslene til API-et vårt automatisk inneholde token i HTTP-overskriftene:

6. API-forespørsel med JWT

Når du sender forespørselen til API-et vårt, kan vi se at det er en “Autorisasjon” -hode med tokenverdien vår:

7. Konklusjon

I denne artikkelen så vi hvordan Swagger UI tilbyr tilpassede konfigurasjoner for å konfigurere JWT, noe som kan være nyttig når vi behandler søknadsautorisasjonen vår. Etter godkjenning i Swagger UI vil alle forespørslene automatisk inkludere vår JWT.

Kildekoden i denne artikkelen er tilgjengelig på GitHub.


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