jwt+shiro使用时JwtShiroBridge使用的问题

发布于 2022-01-06 19:32:30 字数 259 浏览 825 评论 8

1、Jwt + shiro 如何去构建鉴权 ?

JwtShiroBridge目前提供了 subject的构建,相当于解决了认证问题。但是鉴权的部分并不包括。我能想到的思路是,在认证服务中构建jwt后,会将权限/角色保存在 token中,需要做 subject.login 去解决授权,但是总感觉这样实现好傻。。每次请求都这么重,是否有其他实现思路 ?

2、如果我使用 jwt + shiro 的话,我并不想让服务器 去构建 session,是否可以控制一下下。 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

流心雨 2022-01-07 20:18:40

https://github.com/louislivi/fastdep 引入一个依赖即可快速实现。

断爱 2022-01-07 20:13:02

存在缓存里面的话有个问题没法解决,就是如果是两个服务,其中服务A提供认证,服务A把权限存在缓存里面;服务B怎么在页面里用shiro的权限控制进行控制相关信息。 我没想到怎么弄

剑心龙吟 2022-01-07 20:07:57

使用jwt的话就没有 session 了,所以jwt中是需要存储授权信息的,各个服务只需要做鉴权就可以了,现在的问题是jwt 配合 shiro 怎么更优雅的解决这个鉴权。

筱武穆 2022-01-07 19:02:55

回复
我的想法是A为认证服务的话,用户访问B的时候转跳到A进行认证,认证成功后,附带参数转调回B,在B服务再重新login操作使shiro能知道该用户的权限,然后就可以使用jboot文档里提到的那些模板用法了

倚栏听风 2022-01-07 18:37:32

jwt中仅包含必要的数据,比如jwt中仅包含userid,权限/角色再根据userid获得,或者放到缓存中,其它更多session数据都可以这样放入缓存,没必要把所有东西都放到jwt token中。

沦落红尘 2022-01-07 18:35:59

调用login这个方法行得通,做过测试。就是感觉有点重,想寻找另一种思路。

牵你的手,一向走下去 2022-01-07 17:21:07

回复
@理工男海哥 : jboot亲测可行,完全无状态,不创建session,附上demo https://gitee.com/rlaxuc/jboot-admin/tree/master/jboot-b2c

墨洒年华 2022-01-07 16:10:13

通过 JwtShiroBridge 的 buildSubject 构建subject的时候,调用 subject的login方法,再把subject返回。

调用login方法的时候需要传AuthenticationToken,自己写一个JwtAuthenticationToken继承AuthenticationToken,JwtAuthenticationToken里面有jwt信息。

调用subject的login方法,会触发你自定义realm的doGetAuthenticationInfo方法,并把JwtAuthenticationToken数据传进来,在doGetAuthenticationInfo方法里返回合理的AuthenticationInfo,理论上就没问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文