Állítsa be a JWT-t rugós csomagtartóval és Swagger kezelőfelülettel

1. Bemutatkozás

Ebben a rövid bemutatóban megnézzük, hogyan konfigurálhatja a Swagger kezelőfelületet egy JSON Web Token (JWT) beépítésére, amikor meghívja az API-t.

2. Maven-függőségek

Ebben a példában a springfox-boot-starter programot fogjuk használni, amely magában foglalja az összes szükséges függőséget a Swagger és a Swagger felhasználói felület használatához. Tegyük hozzá a sajátunkhoz pom.xml fájl:

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

3. Swagger konfiguráció

Először meg kell határoznunk a sajátunkat ApiKey a JWT engedélyezési fejlécként való felvétele:

privát ApiKey apiKey () {return new ApiKey ("JWT", "Engedélyezés", "fejléc"); }

Ezután állítsuk be a JWT-t SecurityContext globálissal AuthorizationScope:

privát SecurityContext securityContext () {return SecurityContext.builder (). securityReferences (alapértelmezettAuth ()). build (); } private List defaultAuth () {AuthorizationScope authorityScope = új AuthorizationScope ("globális", "accessEverything"); AuthorizationScope [] authorizationScopes = új AuthorizationScope [1]; authorityScopes [0] = authorizationScope; return Arrays.asList (új SecurityReference ("JWT", authorityScopes)); }

Ezután konfiguráljuk az API-t Jegyzék Az API-információk, a biztonsági kontextusok és a biztonsági sémák beillesztése:

@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 (); } 
privát ApiInfo apiInfo () {return new ApiInfo ("My REST API", "Az API néhány egyedi leírása.", "1.0", "Szolgáltatási feltételek", új névjegy ("Sallo Szrajbman", "www.baeldung.com") , "[email protected]"), "API licenc", "API licenc URL", Collections.emptyList ()); }

4. REST vezérlő

Miénkben ClientsRestController, írjunk egy egyszerűt getClients végpont az ügyfelek listájának visszaadásához:

@RestController (value = "/ clients") @Api (tags = "Clients") public class ClientsRestController {@ApiOperation (value = "Ezt a módszert használják az ügyfelek megszerzésére.") @GetMapping public List getClients () {return Arrays .asList ("Első kliens", "Második kliens"); }}

5. Swagger felhasználói felület

Most, amikor elindítjuk az alkalmazásunkat, elérhetjük a Swagger felhasználói felületet a // localhost: 8080 / swagger-ui / URL.

Íme egy pillantás a Swagger felhasználói felületre Engedélyezze gomb:

Amikor rákattintunk a Engedélyezze gombra, a Swagger UI kérni fogja a JWT-t.

Csak be kell írnunk a tokenünket és kattintson a gombra Engedélyezze, és ettől kezdve az API-nkhoz intézett összes kérelem automatikusan tartalmazza a tokent a HTTP fejlécekben:

6. API kérés a JWT-vel

Amikor a kérést elküldjük az API-nknak, láthatjuk, hogy van egy „Engedélyezés” fejléc a token értékünkkel:

7. Következtetés

Ebben a cikkben azt láttuk, hogy a Swagger felhasználói felület miként nyújt egyéni konfigurációkat a JWT beállításához, amelyek hasznosak lehetnek az alkalmazásengedélyezéssel kapcsolatban. A Swagger felhasználói felületen történő engedélyezést követően az összes kérelem automatikusan tartalmazza a JWT-t.

A cikk forráskódja a GitHubon érhető el.