添加JWT工具包
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.10.5</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-impl</artifactId> <version>0.10.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-jackson</artifactId> <version>0.10.5</version> <scope>runtime</scope> </dependency>
代码
public
class
JwtTest
{
// 公钥
public
static
String publicKey
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIIDmzCCAoOgAwIBAgIEHnAgtDANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJDQTEQMA4GA1UE\n"
+
"CBMHT250YXJpbzEUMBIGA1UEBxMLTWlzc2lzc2F1Z2ExJjAkBgNVBAoTHU5ldHdvcmsgTmV3IFRl\n"
+
"Y2hub2xvZ2llcyBJbmMuMQwwCgYDVQQLEwNERVYxETAPBgNVBAMTCFN0ZXZlIEh1MB4XDTE2MDkw\n"
+
"MTE2MTYxNVoXDTI2MDcxMTE2MTYxNVowfjELMAkGA1UEBhMCQ0ExEDAOBgNVBAgTB09udGFyaW8x\n"
+
"FDASBgNVBAcTC01pc3Npc3NhdWdhMSYwJAYDVQQKEx1OZXR3b3JrIE5ldyBUZWNobm9sb2dpZXMg\n"
+
"SW5jLjEMMAoGA1UECxMDREVWMREwDwYDVQQDEwhTdGV2ZSBIdTCCASIwDQYJKoZIhvcNAQEBBQAD\n"
+
"ggEPADCCAQoCggEBALrlxMtDb60DogElf4TBz504tRheZimAE0dJL/Yby4nacJdqvc5l4z+WWpDf\n"
+
"rI9krQ2Yi9yvhwAP+PrR6gWcIqWP4cpNE7XIAUDgr4CtyI7CptT/lpjtbkz4DGCMmaeDn0jqHqJt\n"
+
"SeSZGfwVu5zAGm8n4sHatjnnxBI/iWzkTII3V4xv0WeK37szNTEd+ly2ag7n2IV5zNnYmqZTeMQm\n"
+
"J2ENS+IwAG3ENtiVtrVTx/2bGtqutJjtdxsN58/cUG/guRyMT6OPI8Yi3ZzevdvRbxadyhEl/Kaw\n"
+
"6vJcdxmJI3tp4lx+p6sAxOWa7aapJe4JxutAQqzv0GKdVjoHKQ1wB60CAwEAAaMhMB8wHQYDVR0O\n"
+
"BBYEFIPF9SBd06RWU1eDL73CKfy01lavMA0GCSqGSIb3DQEBCwUAA4IBAQAoaKZGOak3Upz/ordF\n"
+
"slZoJuZlCu7jnKQEjYwHf3DNxcd1WmgFPtMcna6pW0VUxPIfidEA6VCMsGoK1RvshB0SjrRdCht6\n"
+
"5qPXs9kV3NW0WvMiwDSYZZ9HgaZ9efTe5E9Fzc7ltKrE43L6k8NJcaEEWEdpdjFbrAqH4I+j/Vro\n"
+
"K3OhIo062fXjas5ipL4gF+3ECImjWzirQP8UiAfM0/36x7rtAu3btH/qI9hSyx39LBPPE5AsDJZ4\n"
+
"dSMwNTW1gqmBAZIj+zQ/RD5dyWfPwON7Q+t96YbK6WBuYo0xy+I+PjcUgrWYWP3N24hlq8ZBIei+\n"
+
"BudoEVJlIlmS0aRCuP8n\n"
+
"-----END CERTIFICATE-----"
;
public
static
String jwt_token
=
"eyJraWQiOiIxMDAiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJ1cm46Y29tOm5ldHdvcmtudDpvYXV0aDI6djEiLCJhdWQiOiJ1cm46Y29tLm5ldHdvcmtudCIsImV4cCI6MTU2MjU2NjYxMywianRpIjoiSzZrcDJQMnN2RDhVbVNOTmdqT3ZXdyIsImlhdCI6MTU2MjU2NjAxMywibmJmIjoxNTYyNTY1ODkzLCJ2ZXJzaW9uIjoiMS4wIiwidXNlcl9pZCI6ImNoZW5taW5nIiwidXNlcl90eXBlIjpudWxsLCJjbGllbnRfaWQiOiI3NTk5OTYyOC1mNjcxLTQ4NzQtOWEyZi0xNDliM2IxZDA2YzIiLCJzY29wZSI6WyJhY3QuciIsImFjdC53Il19.c-PFcbiFvNl02wNNOgGn9uvEAQv3_EwTPVhmNM14IcokcdufYHUUVsPrbIfU-9gd4DlTuKUEWc4ry3PEggIZBs2gVKjN4Fvbs7WdRBBRWZhNxfMiiXT9z-4OxDs5GhOA06JFi4eul1jy-JPOtN2KSKlDrp09xQyFtVNQRCbgF7Klp_XDRbw9Pmjtm0OHTvtMd4dDsgsbwhEcYG6jHgEfhPHbgWTWGndzazW_4Z2kLIi-CukwT0_UCt3MUsy_lMlKbxSs-VUyV47NGqfE7PoEalIaY_iG4dNze8OtPwtY4YAIn3P3Qv3YvZnlrCzocE-REDAG916hT-kAZWBe7wMs_w"
;
public
static
void
main
(
String
[
] args
)
throws
Exception
{
PublicKey publicKey
=
CertificateFactory
.
getInstance
(
"X.509"
)
.
generateCertificate
(
new
ByteArrayInputStream
(
JwtTest
.publicKey
.
getBytes
(
)
)
)
.
getPublicKey
(
)
;
Claims claims
=
null
;
try
{
claims
=
Jwts
.
parser
(
)
.
setSigningKey
(publicKey
)
.
parseClaimsJws
(jwt_token
)
.
getBody
(
)
;
}
catch
(
ExpiredJwtException e
)
{
System
.out
.
println
(e
.
getMessage
(
)
)
;
}
catch
(
Exception e
)
{
System
.out
.
println
(e
.
getMessage
(
)
)
;
}
System
.out
.
println
(claims
.
get
(
"user_id"
)
)
;
}
}