Skip to main content

Quarkus使用JWT作登录

· 1分钟阅读

环境

> 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}

参考