В идеале я хотел бы сначала показать, как работает тип гранта авторизации «неявное грант», так как это кажется наиболее естественным прогрессом. Но, конечно, с последним стандартом OAuth2.1 он больше не поддерживается стандартом, и в результате ни по Spring Security, ни по уважительным причинам. < /P>
OK, так что «код авторизации» введите это. Все многочисленные обработки имеют смысл и улучшают протокол).
В моем предыдущем JWT-применении я настроил как jwtdecoder , так и jwtencoder как SO:
Код: Выделить всё
@Bean
JwtDecoder jwtDecoder() {
NimbusJwtDecoder jwtDecoder = NimbusJwtDecoder.withPublicKey(jwtConfigProperties.publicKey()).build();
return jwtDecoder;
}
@Bean
JwtEncoder jwtEncoder() {
JWK jwk = new RSAKey.Builder(jwtConfigProperties.publicKey()).privateKey(jwtConfigProperties.privateKey()).build();
JWKSource jwks = new ImmutableJWKSet(new JWKSet(jwk));
return new NimbusJwtEncoder(jwks);
}
< /code>
с < /p>
@ConfigurationProperties(prefix = "rsa")
public record RsaKeyProperties(RSAPublicKey publicKey, RSAPrivateKey privateKey) {
}
< /code>
и
application.properties записи < /p>
rsa.private-key= classpath:certs/privateKey.pem
rsa.public-key= classpath:certs/publicKey.pem
< /code>
Эти ключи присутствуют, как, конечно,: < /p>
@SpringBootApplication
@EnableConfigurationProperties(RsaKeyProperties.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
< /code>
Все работает нормально.
Теперь я хочу повторно использовать этот код в моем проекте OAuth2 для сервера авторизации (который нуждается в Jwtencoder) и сервере ресурсов (который нуждается в Jwtdecoder) .
Поскольку как сервер, так и сервер авторизации и сервер ресурсов будут использовать соответствующие клавиши в этом сценарии, OAuth2 get/oauth2/jwks
Я борюсь с этим, однако.
ни stackoverflow, ни интернет-поиск и, в частности, не AI (ни ассистент Intellij Idea, ни GitHub Copilot) не были помощи, поэтому я обращаюсь к StackOverflow за помощью. /> Я с радостью предоставляю всю конфигурацию для всех 3 сервера (Authorization-, Resource- и Client-Server). Это то, что Джош Лонг показал в своем видео (не то, что находится в сопроводительном проекте на Githup, очевидно, он усилил это. Я действительно должен был следовать видео 1: 1)
Подробнее здесь: https://stackoverflow.com/questions/794 ... static-key