做了一个基于nacos,seata的微服务项目,现在想把服务拆分开来,遇到了一个问题,鉴权框架使用的SpringSecurity,我想在gateway中的过滤器直接处理鉴权的问题,但是gateway框架没有SpringContextHolder,我无法把认证信息塞进去,就算塞进去了,其他微服务没有用SpringSecurity框架也拿不到认证信息
2条回答 默认 最新
- kevin180123 2023-07-19 16:36关注
使用全局过滤器:Gateway框架可以使用全局过滤器来处理请求,这样可以在请求经过Gateway之前进行一些自定义的处理,包括鉴权。你可以创建一个实现了
GlobalFilter
接口的全局过滤器,并加上@Component
注解使其成为Spring管理的Bean。在过滤器中,你可以通过调用ServerWebExchange
对象的方法来获取请求头或请求参数中的认证信息,并进行相应的鉴权处理; 使用自定义注解:另一种方式是使用自定义注解。你可以创建一个自定义注解,例如@AuthorizationRequired
,用于标识需要进行鉴权的接口或方法。然后,编写一个Aspect切面,在切面中获取请求中的认证信息,并进行鉴权处理。Aspect切面可以通过@Around
注解来拦截被@AuthorizationRequired
注解标识的方法,然后在切面中进行相应的鉴权逻辑,如检查token、验证权限等。解决 无用评论 打赏 举报
悬赏问题
- ¥50 VS2019,xamarin框架串口调试报错Java.Lang.SecurityException: Exception of type
- ¥20 QT如何判断QLineF线鼠标划过事件
- ¥15 关于#phpstorm#的问题:phpstorm编辑工具 光标选中了就会自动复制到粘贴板上 这样我之前复制的内容就失效了
- ¥15 pychram安装jupyter插件
- ¥60 悬赏破解越狱iphone4s中360保险箱密码遗忘
- ¥20 ARKts悬浮窗和快捷方式问题
- ¥15 linux中nginx服务器提示not found on accelerator,如何解决?(语言-php|操作系统-linux)
- ¥15 comparecluster没有办法kegg
- ¥15 远程访问linux主机超时
- ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例