Dolazni bearer zahtjev može stići do servera resursa dok verifikacija JWT-a ne uspije na odlaznom preuzimanju JWK-a. Konfigurirajte HTTP klijent koji taj dekoder koristi:

var factory = new org.springframework.http.client.SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example", 8080)));
var rest = new org.springframework.web.client.RestTemplate(factory);

var decoder = org.springframework.security.oauth2.jwt.NimbusJwtDecoder
    .withJwkSetUri(jwkSetUri)
    .restOperations(rest)
    .build();
decoder.setJwtValidator(
    org.springframework.security.oauth2.jwt.JwtValidators
        .createDefaultWithIssuer(issuer));

Koristite stvarne jwkSetUri i issuer aplikacije i instalirajte ovaj dekoder u stvarnu konfiguraciju servera resursa. Primjer koristi neautentificirani HTTP proxy s Nimbus dekoderom u servlet stilu. Za javni JWK URL na dozvoljenoj ruti javnog proxyja, lista HTTP proxyja nudi moguće vrijednosti hosta i porta.

Validator issuer u primjeru nije zamjena za obavezne provjere audience ili druge provjere aplikacije. Zadržite ih pri zamjeni automatski konfiguriranog dekodera; promjena rute preuzimanja ključa ne određuje koje tokene aplikacija treba prihvatiti.

Reaktivni dekoder koristi drugo sučelje. Drugi klijenti za otkrivanje issuer ili pribavljanje tokena također zadržavaju vlastitu transportnu konfiguraciju.

Keširani ključevi mogu omogućiti uspješnu verifikaciju bez novog preuzimanja. Zadržite URL neuspjelog ključa i fazu osvježavanja ili inicijalizacije pri procjeni rute.

Povezani članci