Мне нужно использовать oauth-jwt
сервер безопасности.
Прямо сейчас у меня есть очень простое решение по сравнению с пользовательскими java классами и методами для загрузки конфигураций и построения требуемых KeyStoreKeyFactory
и KeyPair
, которые использовались вместе с jwt
:
Ниже я предоставляю самые интересные детали.
- Итак, моя конфигурация yml:
server:
port: 8090
ssl:
key-store: classpath:keystore.jks
key-store-password: store-password
key-alias: mytestkeyalias
key-password: key-password
Так что я думаю, что мой избыточный класс конфигурации Jwt
@ConfigurationProperties("server")
public class SecurityProperties {
private JwtProperties jwt;
public JwtProperties getJwt() {
return jwt;
}
public void setJwt(JwtProperties jwt) {
this.jwt = jwt;
}
@ConfigurationProperties("server.ssl")
public static class JwtProperties {
private Resource publicKey;
public Resource getPublicKey() {
return publicKey;
}
public void setPublicKey(Resource publicKey) {
this.publicKey = publicKey;
}
@Override
public String toString() {
try {
return IOUtils.toString(publicKey.getInputStream(), UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
return "empty";
}
}
}
и bean-компоненты, настроенные с использованием предыдущих данных из класса:
@Autovired
private SecurityProperties securityProperties;
@Bean
KeyPair keyPair() {
SecurityProperties.JwtProperties jwtProperties = securityProperties.getJwt();
return keyStoreKeyFactory().getKeyPair(jwtProperties.getKeyPairAlias(), jwtProperties.getKeyPairPassword().toCharArray());
}
@Bean
KeyStoreKeyFactory keyStoreKeyFactory() {
SecurityProperties.JwtProperties jwtProperties = securityProperties.getJwt();
return new KeyStoreKeyFactory(jwtProperties.getKeyStore(), jwtProperties.getKeyStorePassword().toCharArray());
}
Так что вопрос:
Было бы здорово иметь возможность ввести уже построенный java.security.KeyPair
.
Я надеюсь, что Spring предоставляет что-то очень похожее на мой wi sh, но я не обнаружил никаких готовых решений. Также было бы неплохо иметь дополнительный подход для его построения, уменьшающий java конфиги. Есть какие-то решения для этого?