我们的服务依赖Micronauts内置的JWT功能进行授权,在测试时,我们只是保留了默认设置,但是随着我们准备上线,我们需要设置一个更适当的机密管理。我们正在Kubernetes环境中进行部署,因此我们决定将所有密钥存储为k8s Secrets。我一直在尝试(但失败)将Micronaut配置为使用这些秘密来签名和验证令牌。
要在令牌生成中启用JWT签名,您需要在您的应用中拥有一个类型为RSASignatureGeneratorConfiguration,ECSignatureGeneratorConfiguration,SecretSignatureConfiguration且具有名称生成器资格的bean。
我得出以下结论:
@Singleton
@Named("generator")
public class MinecraftSecretSignatureConfiguration extends SecretSignatureConfiguration {
@Inject
public MinecraftSecretSignatureConfiguration(KeyPairProvider keyPairProvider) {
super("generator");
//KeyPairProvider.readSecret reads the secret and returns it as a string starting with ------BEGIN PRIVATE KEY-------
setSecret(keyPairProvider.readSecret().blockingGet());
setBase64(false);
setJwsAlgorithm(JWSAlgorithm.HS256);
}
}
,但似乎未使用此配置,未对令牌进行签名,并且在此类中设置断点时,它们永远不会到达。我想念什么?