Ένα εισερχόμενο αίτημα bearer μπορεί να φτάσει στον διακομιστή πόρων ενώ η επαλήθευση JWT αποτυγχάνει σε μια εξερχόμενη λήψη JWK. Διαμορφώστε τον πελάτη HTTP που χρησιμοποιεί αυτός ο αποκωδικοποιητής:

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));

Χρησιμοποιήστε τα πραγματικά jwkSetUri και issuer της εφαρμογής και εγκαταστήστε αυτόν τον αποκωδικοποιητή στην πραγματική διαμόρφωση του διακομιστή πόρων. Το παράδειγμα χρησιμοποιεί μη πιστοποιημένο proxy HTTP με τον αποκωδικοποιητή Nimbus σε στυλ servlet. Για δημόσιο URL JWK σε επιτρεπόμενη διαδρομή δημόσιου proxy, η λίστα proxy HTTP παρέχει υποψήφιες τιμές κεντρικού υπολογιστή και θύρας.

Ο επικυρωτής issuer στο παράδειγμα δεν αντικαθιστά τους απαιτούμενους ελέγχους audience ή άλλους ελέγχους της εφαρμογής. Διατηρήστε τους κατά την αντικατάσταση ενός αυτόματα διαμορφωμένου αποκωδικοποιητή· η αλλαγή της διαδρομής λήψης κλειδιού δεν καθορίζει ποια token πρέπει να δέχεται η εφαρμογή.

Ένας αντιδραστικός αποκωδικοποιητής χρησιμοποιεί άλλη διεπαφή. Άλλοι πελάτες ανακάλυψης issuer ή απόκτησης token διατηρούν επίσης τη δική τους διαμόρφωση μεταφοράς.

Τα αποθηκευμένα στην προσωρινή μνήμη κλειδιά μπορούν να κάνουν την επαλήθευση να πετύχει χωρίς νέα λήψη. Διατηρήστε το URL του κλειδιού που απέτυχε και το στάδιο ανανέωσης ή αρχικοποίησης κατά την αξιολόγηση της διαδρομής.

Σχετικά άρθρα