ローカルで実行されている openid プロバイダー (openam) があります。自己署名証明書を使用しており、jwks の URL は @ https://localhost:8443/openam/oauth2/connect/ です。
ssl 証明書が自己署名されているため、oidc トークンがデコードされると、SSLHandshake 例外が発生します。カスタム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()) が機能しないのはなぜですか? 自己署名証明書を持つ Web サイトである jwks uri でデコーダーを動作させるにはどうすればよいですか?
私が考えている1つのオプションは、自己署名証明書をjdkのcacertsフォルダーに追加することです..