JWT转换器
前面的例子中,都是在授权服务配置类中配置了一个很简单的jwt转换器,如下:
可以看到我们只用setSigningKey方法配置了一个秘钥,这里使用的是简单的对称加密的方式来加密jwt内容,同时资源服务器中使用的也是同样的秘钥配置jwt转换器:
除了对称加密的方式,生产环境使用非常多的是更加安全的非对称加密的方式来加密jwt。
生成公私钥
公私钥对可以使用jdk的命令 keytool 来生成,首先来看一下这个命令下有哪些参数:
中文的参数说明很清晰,我们需要使用 -genkeypair 参数生成秘钥对。再来看一下 keytool -genkeypair 之下还有哪些参数:
这些都是设置密钥对的属性参数。下面我们来使用keytool命令生成JKS(Java KeyStore)文件,命令如下:
keytool -genkeypair -alias oauth2 -keyalg RSA -keypass oauth2 -keystore oauth2.jks -storepass oauth2
从参数说明可以看出,别名为 oauth2,秘钥算法为 RSA,秘钥口令为 oauth2,秘钥库(文件)名称为 oauth2.jks,秘钥库口令为oauth2。输入命令回车后,后面还有七个问题需要回答,分别是