各类JWT库(java)的使用与评价

https://jwt.io/ 网站中收录有各类语言的JWT库实现(有关JWT详细介绍请访问 https://jwt.io/introduction/),

其中JAVA语言到目前(2018-06)有6个实现库,如下图:

jwt

按顺序依次是

Auth0实现 的 java-jwt

Brian Campbell实现的 jose4j

connect2id实现的 nimbus-jose-jwt

Les Haziewood实现的 jjwt

Inversoft实现的prime-jwt

Vertx实现的vertx-auth-jwt.

 

以下是各个库的使用测试

java-jwt

oauth0

完整测试链接  https://github.com/monkeyk/MyOIDC/blob/1.1.0/myoidc-server/src/test/java/myoidc/server/infrastructure/Auth0JwtTest.java

点评:

Auth0提供的JWT库简单实用, 依赖第三方(如JAVA运行环境)提供的证书信息(keypair);

有一问题是在 生成id_token与 校验(verify)id_token时都需要 公钥(public key)与密钥(private key), 个人感觉是一不足(实际上在校验时只需要public key即可)

 

jose4j

jose4j

完整测试链接: https://github.com/monkeyk/MyOIDC/blob/1.1.0/myoidc-server/src/test/java/myoidc/server/infrastructure/Jose4JTest.java

点评:

jose4j提供了完整的JWT实现, 可以不依赖第三方提供的证书信息(keypair, 库本身自带有RSA的实现),类定义与JWT协议规定匹配度高,易理解与上手

对称加密与非对称加密都有提供实现

 

nimbus-jose-jwt

nimbus

完整测试链接: https://github.com/monkeyk/MyOIDC/blob/1.1.0/myoidc-server/src/test/java/myoidc/server/infrastructure/NimbusJoseJwtTest.java

点评:

nimbus-jose-jwt库类定义清晰,简单易用,易理解 , 依赖第三方提供的证书信息(keypair), 对称算法 与非对称算法皆有实现.

 

jjwt

jjwt

完整测试链接: https://github.com/monkeyk/MyOIDC/blob/1.1.0/myoidc-server/src/test/java/myoidc/server/infrastructure/JJwtTest.java

点评:

jjwt小巧够用, 但对JWT的一些细节包装不够, 比如 Claims (只提供获取header,body)

 

prime-jwt

primejwt

完整测试链接: https://github.com/monkeyk/MyOIDC/blob/1.1.0/myoidc-server/src/test/java/myoidc/server/infrastructure/PrimeJwtTest.java

点评:

prime jwt库怎么说呢, 有些地方不符合JAVA语言规范, 支持对称算法(HMAC) 与非对称算法(RSA), 也算容易理解

 

vertx-auth-jwt

vertxjwt

完整测试链接: https://github.com/monkeyk/MyOIDC/blob/1.1.0/myoidc-server/src/test/java/myoidc/server/infrastructure/VertxAuthJwtTest.java

 点评:

Vertx Auth Jwt 库算是最不容易理解的一个库了.花了不少时间才弄通这一示例. 不容易上手. 并且生成与校验id_token 时都需要公钥与私钥,不足.

 

———————————————————

以下是在使用中的一些总结或注意点

1. 几乎所有库都要求JAVA版本1.7或更高版本, 1.6或以下的版本需要二次开发(或不支持)

2.从易用性, 扩展性, 完整性等来看, 使用首先推荐 jose4j, 其次是 Nimbus-jose-jwt.

3. JWT是实现OIDC的基石,掌握其使用对实现OIDC有很大帮助(同时对JAVA证书使用, PKI体系的掌握也有要求)

 

 

https://github.com/monkeyk/MyOIDC

遗世十二码, 刘

不要说穿。

发表于:2008年2月14日 16时42分30秒阅读(20)评论(5)本文链接:

不要说穿。

今天情人节,说点开心的事情:
1:皇马干得好,劳尔联赛进了11个球,王子级的表现。
2:刘青云凭借《MY NAME IS FAME》勇夺金像奖影帝,实至名归。
3:收到几封麦的邮件,觉得这个地球确实小。
4:坚持看了《PRISON BREAK》,收获了些快乐,喜欢帅哥的冷静和T-BAG有时的无理头。
5:爸爸妈妈身体还好且渐渐对我放心起来,幸事!
6:来特区一年,生存成功,居然没有饿死,另一件幸事。
7:穿着妈妈织的毛衣,舍不得脱下来洗。
8:看到我哥的感情稳定,嫂子对我也不错,觉得开心。
9:以前的兄弟大多还把我当兄弟。
10:以前和我关系暧昧的女孩子大都和我不再暧昧。
11:彻底结束和交代了几段感情,顿觉轻松。
12:想明白一些情感方面的问题,能像阿飞一样带柄竹剑去决斗,是个进步。
13:有时候还会学下英语。
14:唱粤语歌曲的水平有些进展。
15:我表妹说她又长高长漂亮了,暗暗高兴。
16:有次喝了9两多白酒,未醉,两年来的最佳表现。
17:没有多少人知道我电话号码。
18:看了几次海,数银滩最宽,那里的大排挡也不错,虽然有点贵。
19:平时和兄弟们打下篮球斗下地主也有表现出色的时候。
20:有天竟然捡到个小灵通。
21:小灵通设有密码,我居然破译成功。
22:我有个好友做了件可以算做重生的事情。
23:和一个有好感的女孩子打了一个小时的乒乓,想起来就高兴。
24:把写好的小说烧掉了,不大后悔。
25:发现自己穿起西装的样子原来也煞有其事。
26:创造了一首歌,美其名曰《我们家有鬼跳墙》,小范围内传唱成功。
27:遇到成都的老同学,我称呼他:拳王;他叫我:球星。 皆大乐。
28:经常有人说我文采出众,整得我经常得假装谦虚。
29:广东台很耿直,经常转播比赛,还有个英文台,经常放些选美来看。
30:本山的春晚再次忽悠了我,东北人,厉害。
31:据说今年全国虽然结婚的多,离婚的也不少,心里平衡了。
32:到深圳总共瘦了8斤多,比以前要匀称点了。
33:偶尔我也打些三分决杀出来,于是就大吼一声:TRACY-McGRADY
34:到现在为止,没有收到祝我情人节快乐之类的短信或者电话。
35:今年8月份连续有7,8天过得比较矛盾和开心,因为。。。
36:过去了就过去了,爱一个人,爱着就好,其他的,勿理会更好。
37:离开龙华以后,发现自己更聪明了。
38:有段时间,薇薇和我一天要互发好多的短信。
39:有段时间,我以为我新年终于不是一个人过。
40:有人给我说我的一大缺点是念旧,我笑着说:何只念旧?
41:在公司上班的时候,能够对上司说:我TRACY做事就是这样,不该我扛的就不要来找我!
42:间或说些话来忽悠别人,大家就随着我云里雾里。
43:有天电脑的显示器没有反应了,自己把它修好。
44:现在我仍然会笑,并且有时候是真正的笑。
45:淘到了些好歌,如《他一个人》《浮夸》《阿牛》
46:06年错过一个叫林露的女孩子,现在没有那么遗憾了。
47:麦本赛季的最高分就是47分,对手是我极不喜欢的爵士。
48:明白一个道理:心要静才好。并且我的脏话没有以前多了。
49:很确定的一件事情是每年清明都有很多人去给张国荣送花。
50:算命的给我说以后有人要给我毁容,然后他接着说:刚才算错了。
51:前年五一的时候我去火车站接胡子,还差点和成都110毛上了,很兴奋的一件事情。
52:自85年以来,每年的5月2号都是我的生日,也是大卫-贝克汉姆的生日。
************
十二码是段残忍的距离,我们在那里永远看不到希望。
于是我依然会半夜突然醒来,依然。
一心想成为李寻欢似的人,现在才发现自己或许更像阿飞。

***********************************
欲将心事付瑶琴,知者少,弦断有谁听?

——后来,我怎舍得改变?

 

http://blog.renren.com/blog/223436424/278242383