Spring Security 为啥是个垃圾框架?

Spring Security 为啥是个垃圾框架?

来源:JavaEdge(ID:Java-Edge)

免责声明~

任何文章不要过度深思!

万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案」

不要急着评判文章列出的观点,只需代入其中,适度审视一番自己即可,能「跳脱出来从外人的角度看看现在的自己处在什么样的阶段」才不为俗人

怎么想、怎么做,全在乎自己「不断实践中寻找适合自己的大道」


古时候写代码,权限这块写过一个库,基本就是一个泛型接口,里面有几个方法:

如验证输入的principal和credentials,返回token和authorities和roles,role就是一堆authorities集,也就说就是返回一堆authorities。然后每次请求会拿token找到authorities,然后再判断当前请求的资源(其实就是url)包不包括在authorities内。

这接口实现不复杂,也可很复杂自己实现,因为是接口,里面的方法参数都带了很多上下文,所以基本可以获取到所有有用的信息。当年用这接口几乎就没解决不了的权限问题。

后来用Spring,更简单了,就是aop一下controller,然后类似那种接口鉴权,不aop就用filter或者拦截器一样的。

再后来,发现spring security粗略研究下。好呀,什么AuthenticationManager,AuthenticationProvider,UserDetailsService,SecurityContextHolder,SecurityInterceptor眼花缭乱,无从下手。而且,不知道是我没注意还是眼瞎,这玩意儿似乎和web或者webflux强耦合。当时有个需求是session(其实就是token)放在Redis里,有个同事为实现这简单东西似乎要重写整个HttpSession类?

还有也是因为我们的权限配置是在另一个服务里,所以获取权限的时候要重写UserDetailsService?

不知道是我同事水平不够还是版本太老,反正看的我瑟瑟发抖。

有必要系统学习这东西吗?其实我看半天整个spring security实现的东西似乎和我自己的那种接口思想没什么区别。现在有新项目了,到底要不要系统学习spring security,是我理解太肤浅?

Spring Security就是个垃圾框架

这观点完全正确,因为他把所有扩展完全用接口概念去做,仅适合中小型项目。

对稍大项目,要求多端登录,设备标识等特殊需求实现起来异常复杂。一旦要变更,其给的接口根本无法满足企业需求。

shrio才是好框架,虽简单,但对经验丰富的程序员仅需2~3天就可实现所有spring security功能,且扩展性更强。

我为了学spring security花了一个月时间才掌握所有知识点,但概念太多,几个月后让我改登录,直接懵了。相信我,任何一个程序员面对spring security更新,加上隔几个月或半年之后,大部分人都懵逼,因为原有的接口不能用了。

而shrio则不同,接口实现几乎无变化,但是要求必须精通jwt和oauth协议。精通这两个协议,最多一周而且就算过几年,改登录需求,依然可以快速上手。

那些说spring security好的,大部分都是搞培训或装13,不要相信。

Sa-token也很香

之前粗略看spring security,没太看懂,sa-token跟着官方文档给项目里加了下,感觉真的简单,还能实现token自动续期的问题,太香!

后端专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!

文明发言,以交流技术职位内推行业探讨为主

广告人士勿入,切勿轻信私聊,防止被骗

Spring Security 为啥是个垃圾框架?

加我好友,拉你进群 

原文始发于微信公众号(Java笔记虾):Spring Security 为啥是个垃圾框架?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/166086.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!