Một yêu cầu bearer gửi đến có thể tới máy chủ tài nguyên trong khi việc xác minh JWT thất bại ở lần tải JWK ra ngoài. Cấu hình máy khách HTTP mà bộ giải mã đó sử dụng:

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

Dùng jwkSetUri và issuer thật của ứng dụng và cài bộ giải mã này vào cấu hình máy chủ tài nguyên thực tế. Ví dụ dùng proxy HTTP không xác thực với bộ giải mã Nimbus kiểu servlet. Với URL JWK công khai trên tuyến proxy công khai được phép, danh sách proxy HTTP cung cấp các giá trị host và port ứng viên.

Trình xác thực issuer trong ví dụ không thay thế các kiểm tra audience bắt buộc hay các kiểm tra khác của ứng dụng. Hãy giữ chúng khi thay thế bộ giải mã được cấu hình tự động; việc đổi tuyến tải khóa không xác định ứng dụng phải chấp nhận những token nào.

Bộ giải mã reactive dùng giao diện khác. Các máy khách phát hiện issuer hoặc lấy token khác cũng giữ cấu hình truyền tải riêng của chúng.

Các khóa đã lưu trong bộ nhớ đệm có thể khiến việc xác minh thành công mà không cần tải mới. Giữ URL của khóa thất bại và giai đoạn làm mới hoặc khởi tạo khi đánh giá tuyến.

Bài viết liên quan