环境
> java -version
openjdk version "11.0.19" 2023-04-18
OpenJDK Runtime Environment GraalVM CE 22.3.2 (build 11.0.19+7-jvmci-22.3-b18)
OpenJDK 64-Bit Server VM GraalVM CE 22.3.2 (build 11.0.19+7-jvmci-22.3-b18, mixed mode, sharing)
> mvn --version
Apache Maven 3.9.3 (21122926829f1ead511c958d89bd2f672198ae9f)
> quarkus -version
3.2.2.Final
POM依赖
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-jwt</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-jwt-build</artifactId>
</dependency>
密钥
生成密钥
# 建立涉密资源目录
cd src/main/resources
mkdir security
cd security
# 生成密钥
openssl genrsa -out rsaPrivateKey.pem 2048
openssl rsa -pubout -in rsaPrivateKey.pem -out publicKey.pem
openssl pkcs8 -topk8 -nocrypt -inform pem -in rsaPrivateKey.pem -outform pem -out privateKey.pem
配置
application.properties
# key
smallrye.jwt.sign.key.location=security/privateKey.pem
smallrye.jwt.encrypt.key.location=security/publicKey.pem
quarkus.native.resources.includes=${smallrye.jwt.encrypt.key.location}
mp.jwt.verify.publickey.location=${smallrye.jwt.encrypt.key.location}