У меня есть поставщик openid (openam), работающий локально. Я использую самозаверяющий сертификат, а URL-адрес jwks: @ https://localhost: 8443 / openam / oauth2 / connect /
Из-за того, что ssl-сертификат самоподписан, я получаю исключение SSLHandshake, когда токен oid c декодируется. я попытался использовать пользовательский шаблон отдыха, создав пользовательский JwtDecoder (как предложено в https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver -jwt-decoder-dsl )
@Bean
public JwtDecoder jwtDecoder() {
NimbusJwtDecoder.withJwkSetUri("https://localhost:8443/openam/oauth2/connect").restOperations(myCustomRestTemplateThatAllowsSelfSignedCerts()).build();
}
Но этот декодер, похоже, не используемый. OidcIdTokenDecoderFactory используется для создания декодера. Этот класс, похоже, не позволяет нам передавать пользовательский jwtDecoder ..
Почему oauthResourceServer (). Jwt (). Decoder (customDecoder ()) не работает? Как я могу заставить декодер работать с jwks uri, который является веб-сайтом с самозаверяющим сертификатом?
Один из вариантов, о котором я думаю, - это добавить самоподписанный сертификат в папку cacerts моего jdk. .