文章详情页
java - 分布式系统中如何进行权限校验比较好?
浏览:168日期:2023-10-21 08:07:19
问题描述
如题,在项目中,单独有个系统作为权限系统,现在的做法是每次请求业务系统,都会在业务系统的拦截其中,把请求的URL传过去权限系统,来做校验,校验发起请求的用户是否有该权限。
或者也可以从权限系统那里获取该用户的所有权限到业务系统中做校验
无论哪种做法,感觉中间都可以篡改,不感觉很不安全
想问一下在分布式系统中如果进行权限校验比较好,谢谢前辈
问题解答
回答1:楼主的问题与权限无关,纯粹是接口调用的安全性。一般做法有:
内容明文传输,但加上校验码,校验码由双方约定的一个密钥生成,篡改者无法生成正确的校验码。
使用约定密钥加密解密整个传输内容。
回答2:登录后请求权限系统,将返回的权限菜单等信息放入缓存(自己用Map实现或Nosql,建议Nosql集群。要注意菜单有更新,则先清空用户的redis数据,再将最新的信息同步到redis,redis没信息就从数据库中取),再返回Java Web Token(包括时间戳、标识等)。
项目安全点就用Https,Spring-Security(访问接口权限、防CSRF),每个接口都要验签,token加时间戳等。
回答3:你这个有点像OAuth2.0解决的问题
标签:
java
上一条:java - spring-data Jpa 不需要执行save 语句,Set字段就可以自动执行保存的方法?求解下一条:java - SpringAOP如何获得执行方法的class上的注解信息
相关文章:
1. javascript - html 中select如何修改样式,鼠标悬浮时改变option样式,有没有插件啊2. javascript - weex和node,js到底是怎样一个关系呢?3. javascript - 父级设置了相对定位。子元素设置了绝对定位。子元素中包含了浮动的table,这个时候高度不能自适应。4. javascript - vue异步数据打印问题5. Span标签6. dockerfile - 为什么docker容器启动不了?7. javascript - 表单ajax提交后跳转,手机按返回又进入这个表单页了!!8. docker start -a dockername 老是卡住,什么情况?9. golang - 用IDE看docker源码时的小问题10. apache - 想把之前写的单机版 windows 软件改成网络版,让每个用户可以注册并登录。类似 qq 的登陆,怎么架设服务器呢?
排行榜
