Dekodning og validering af JWT-tokens
Lær, hvordan Resource Server automatisk dekoderer og validerer JWT-tokens udstedt af en Authorization Server.
Dekodning og validering af JWT-tokens er en gratis Spring Security 6 og JWT-godkendelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Spring Security 6 og JWT-godkendelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Security 6 og JWT-godkendelse-kurset indeholder 4 lektioner i alt.
Resource Server og JWT'er
Velkommen til denne lektion! Vi undersøger, hvordan en Spring Security OAuth2 Resource Server automatisk håndterer JSON Web Tokens (JWT'er).
Du lærer om de afkodnings- og valideringsprocesser, der beskytter dine API-slutpunkter.
Resource Servers rolle
En Resource Server er en applikation, der er vært for beskyttede ressourcer (f.eks. API-slutpunkter eller data), og som skal kontrollere, hvem der forsøger at få adgang til dem.
Den er afhængig af en Authorization Server, der udsteder tokens (f.eks. JWT'er), som giver adgang. Resource Server validerer derefter disse tokens.
Modtagelse af JWT'er i anmodninger
Når en klient vil tilgå en beskyttet ressource, sender den JWT'en i HTTP-anmodningens Authorization-header. Det gøres typisk ved hjælp af Bearer Token-ordningen.
- Bearer Token: En legitimationsoplysning, der giver adgang til enhver, som har den.
Resource Server udtrækker dette token til behandling.
Automatisk behandling af JWT
Når du konfigurerer en Spring Boot-applikation som en OAuth2 Resource Server, håndterer Spring Security automatisk en stor del af behandlingen af JWT'er for dig.
Den registrerer Bearer-tokenet i headeren og starter sin interne afkodnings- og valideringspipeline.
Afkodning af tokenet
Det første trin er at afkode JWT'en. En JWT består af tre dele: Header, Payload og Signature, som er adskilt af punktummer.
Afkodning betyder, at den base64-kodede Header og Payload fortolkes som læsbar JSON. Dette trin kontrollerer endnu ikke tokenets ægthed; det gør blot indholdet læsbart.
Valideringsprocessen
Efter afkodningen udfører Resource Server vigtige valideringskontroller for at sikre, at JWT'en er legitim og ikke er blevet manipuleret. Disse kontroller omfatter:
- Kontrol af signatur: Er tokenet ægte?
- Udløb (
exp): Er tokenet stadig gyldigt? - Ikke før (
nbf): Er tokenet aktivt endnu? - Udsteder (
iss): Blev det udstedt af den forventede Authorization Server? - Målgruppe (
aud): Er det beregnet til denne Resource Server?
Kontrol af signaturen
Kontrol af signaturen er det vigtigste trin. Den sikrer tokenets integritet og ægthed.
Resource Server bruger den offentlige nøgle, som Authorization Server leverer (eller en delt hemmelighed for symmetriske algoritmer), til at beregne signaturen igen og sammenligne den med den oprindelige. Hvis de ikke stemmer overens, afvises tokenet.
Grænsefladen `JwtDecoder`
Spring Security bruger grænsefladen JwtDecoder til at udføre afkodning og kontrol af signaturen for en JWT. Den modtager den rå JWT-streng og returnerer et Jwt-objekt, som indeholder de afkodede headere og claims.
Den mest almindelige implementering til JWS-tokens (JSON Web Signature) er NimbusJwtDecoder.
Konfiguration af Resource Server
For at aktivere denne automatiske afkodning og validering konfigurerer du din Spring Boot-applikation som en OAuth2 Resource Server. Typisk angiver du enten issuer-URI'en eller JWK Set-URI'en for din Authorization Server.
Spring Security henter derefter de offentlige nøgler, der er nødvendige for at kontrollere indkommende JWT'er.
@Configuration
@EnableWebSecurity
public class ResourceServerConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.anyRequest().authenticated()
)
.oauth2ResourceServer(oauth2 -> oauth2
.jwt(jwt -> jwt
.jwkSetUri("http://localhost:9000/.well-known/jwks.json") // Or issuerUri
)
);
return http.build();
}
}Fra JWT til Authentication-objekt
Når en JWT er afkodet og valideret korrekt, konverterer Spring Security dens claims til et Authentication-objekt, typisk et JwtAuthenticationToken.
Dette objekt gemmes derefter i Security Context, så brugerens principal (brugerens identitet) og tildelte authorities (tilladelser) er tilgængelige i hele applikationen.
Valideringskontroller af JWT
Lad os teste din forståelse af JWT-validering. En Spring Security OAuth2 Resource Server udfører flere vigtige kontroller for at sikre, at en JWT er gyldig og pålidelig.
Opsummering og næste trin
Du har lært, hvordan en Spring Security OAuth2 Resource Server automatisk afkoder og validerer JWT'er!
- Vi har gennemgået Resource Servers rolle i beskyttelsen af ressourcer.
- Vi har undersøgt, hvordan JWT'er modtages og behandles automatisk.
- Vi har forstået de vigtige trin: afkodning, kontrol af signatur og validering af claims (udløb, udsteder og målgruppe).
- Vi har set, hvordan Resource Server konfigureres til at bruge en Authorization Servers JWK Set-URI.
- Vi har lært, hvordan validerede JWT'er udfylder Security Context.
Derefter går vi mere i dybden med at håndhæve bestemte scopes og claims i indkommende JWT'er for at styre adgangen til forskellige dele af dit API.
Lær Java med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Dekodning og validering af JWT-tokens” gratis?
Ja — alle 3 lektioner i læringssporet Spring Security 6 og JWT-godkendelse, inklusive “Dekodning og validering af JWT-tokens”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Spring Security 6 og JWT-godkendelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Dekodning og validering af JWT-tokens”?
Lær, hvordan Resource Server automatisk dekoderer og validerer JWT-tokens udstedt af en Authorization Server. Du øver dig i Spring Security 6 og JWT-godkendelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Spring Security 6 og JWT-godkendelse?
Der kræves ingen tidligere erfaring. Spring Security 6 og JWT-godkendelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Dekodning og validering af JWT-tokens”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Spring Security 6 og JWT-godkendelse-lektion?
Ja. Alle Spring Security 6 og JWT-godkendelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opsætning af resource server
- Dekodning og validering af JWT-tokens
- Håndhævelse af scopes og claims
- Tilknytning af JWT-claims til Spring Authorities