最近晚上帮小表弟看毕业设计的问题,里面用到了Shiro,也顺便了解了一下Shiro,不管是Filter还是Configuration,以及UserRealm和没有登录跳转和没有权限跳转和SpringSecurity的实现都有相似和异曲同工之处。
首先安全框架可以集成RBAC模型去做,然后根据code或者url去校验资源权限,或者基于这个资源有什么角色,这个人有什么角色用决策器去判断。
权限可以分为资源权限和数据权限,资源权限决定你能不能访问什么,数据权限决定你能访问的范围。功能上分为授权和验权。
权限里面很多名词如:jwt、bearer token、access_token、refresh_token、集中式验权、sidecar式验权、ant风格url过滤、编码解码、单点登录、跨域登录、OpenAuth2、拦截器、过滤器等,了解完这些名词及原理之后基本上对权限有个宏观的理解。当然安全框架也会提供一些跨站脚本攻击保护,基于框架也可以去做一些审计等。
传递登录信息的方式也很多可以将整个信息放到 security context holder 中,也可以通过Header、Attribute的方式传递,适合自己业务系统的方式才是最好的。
如果只是开发一个的基于RBAC模型的单体权限系统是很简单的,但是web应用、移动端、小程序、OpenAPI多端用一套校验登录和权限的系统,让业务系统很爽的使用也是有挑战的。
喷一样东西和了解一样东西本质及能优雅的落地是两回事,不做喷子,如果是你你怎么做?你能做的更好吗?别人做了能有什么好的建议?不要浪费自己的时间,坦诚沟通,躬身入局,以最终优雅落地为中心,让业务系统优雅的使用。