跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 使用 Spring Security 后性能相差 2-4 倍?是我自己的问题吗?
未分類
9 1 月 2021

使用 Spring Security 后性能相差 2-4 倍?是我自己的问题吗?

使用 Spring Security 后性能相差 2-4 倍?是我自己的问题吗?

資深大佬 : VeryZero 1

测试环境: 硬件:MacbookPro 8 核 16G 软件:JMeter 1000 线程每秒,SpringBoot2.2.10

禁用 Spring Security,吞吐量约 20000 左右 启用 Spring Security,吞吐量下降为 5000 左右

Spring Security 里面的逻辑基本都删了,只留了下一些 antMatchers 和 mvcMatchers,大概看了下主要衰减应该就是因为这些 Matchers 。有衰减很正常,但是这衰减幅度很让我吃惊的。

在网上找了一圈,没找到有人谈论这个,难道是我环境有问题?

大佬有話說 (18)

  • 資深大佬 : hantsy

    一系列的 Filter 上了,肯定影响性能啊。

    不需要完全处理,直接跳过去啊。

  • 資深大佬 : hantsy

    不需要安全的,直接跳过去。

    https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.html#configure-org.springframework.security.config.annotation.web.builders.WebSecurity-

    https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/config/annotation/web/builders/WebSecurity.html

  • 資深大佬 : xbh1794970183564

    mbp 性能这么屌,吞吐能到 2w ?

  • 資深大佬 : KevinBlandy

    有些简单的权限,登录。。根本没必要用这个东西,Filter/Intercptor 就能解决。

  • 資深大佬 : qwerthhusn

    我感觉 Spring Security 太过于复杂了

    现在基本上都是做 API 开发,直接一个 Interceptor 拿到 Token 做一下认证鉴权,把用户 id 啥的写到 attribute 里面去,直接就去 Controller 跑代码了,清晰直观。

  • 主 資深大佬 : VeryZero

    @hantsy 他需要通过路径匹配决定是跳过还是进行权限校验。我感觉慢就慢在路径匹配这一步。具体是不是明天接着测

  • 主 資深大佬 : VeryZero

    @qwerthhusn 是的,太复杂了。用在好几个项目了,还是没完全玩转。如果这么大性能损耗确实存在,下个项目不想再用了。。

  • 資深大佬 : hantsy

    @VeryZero
    SpringSecurityConfigurger 中常见的两个方法:

    configure(WebScurirty) 决定哪些要通过 Spring Security Filter,这个决定哪个路径要不要用 Spring Filter 。一般这里都是过滤掉静态资源( css, js, swagger-ui 等)。

    configure(HttpSecurity) 才是安全配置,每个 Path 检测的目的不一样,导致的不同 Filter 应用上去。

  • 資深大佬 : hantsy

    @qwerthhusn 你这个玩法可以是可以。自己玩玩没问题的。

  • 資深大佬 : hantsy

    性能相差 2-4 倍?我觉得主要取决你的程序复杂度,如果以一个基本的 CRUD,包含数据库操作等等,应该不会那么大。在实际应用中单纯的测试一个纯 Web 层,什么都不做有什么意义?

  • 資深大佬 : alex8

    基于 Redis 自己写 AOP 做鉴权

  • 資深大佬 : beichenhpy

    这东西太重了,如果用不到 rbac 就不用了吧。。

  • 資深大佬 : tomsun28

    过滤链 ant 匹配问题 记得他和 shiro 都是过滤链一个一个对请求匹配的 可以考虑下 sureness https://github.com/tomsun28/sureness/blob/master/docs/design.md

  • 資深大佬 : xuanbg

    路径匹配不要傻乎乎地去遍历,没有路径变量的 url 可以用 hashmap,一下子就从 O(n)变成 O(1)

  • 資深大佬 : fpure

    Spring Security 太复杂太难用了,我自己写个过滤器拦截器简单多了,要实现 rbac 也简单。不理解为什么鉴权这么简单的业务大家却要使用这么复杂难用的框架

  • 資深大佬 : cs419

    security 的主要运行流程不是很难
    坑爹的地方在于 逼着大伙用 配置类去初始化它
    http.userdetailService(detailService) http.xxxConfigure http.xxx.disable 等等
    这些玩意用起来倒是简单, 想定制的复杂点,就绕的慌,啰嗦的不行

    风气就是从 spring boot 那时候搞坏的,xml 的配置方式,啰嗦但结构清晰
    到了 boot 的时代,自动化配置类,各种条件装配, 程序的装载是动态化了
    想看懂主要结构 头都大了

  • 資深大佬 : echo1937

    @cs419 #16 一样的配置,用 Java Config 绝对比 XML 简单有效

  • 資深大佬 : Veneris

    借问一下,做后端管理的权限有没有什么简洁轻量多框架,就是控制角色能看到,访问哪些页面和按钮

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具