相對于ApacheShiro,SpringSecurity提供了更多的諸如LDAP、OAuth2.0、ACL、Kerberos、SAML、SSO、OpenID等諸多的安全認證、鑒權(quán)協(xié)議,可以按需引用。對認證/鑒權(quán)更加靈活,粒度更細。可以結(jié)合你自己的業(yè)務場景進行更加合理的定制化開發(fā)。在最新的SpringSecurity5.x中更是提供了響應式應用(reactiveapplication)提供了安全控制支持。從語言上來講,支持使用kotlin、groovy進行開發(fā)。SpringSecurity因為是利用了SpringIOC和AOP的特性而無法脫離Spring獨立存在。
而ApacheShiro可以獨立存在。但是JavaWeb領域Spring可以說是事實上的J2EE規(guī)范。使用Java技術(shù)棧很少能脫離Spring。也因為功能強大SpringSecurity被認為非常重,這是不對的。認真學習之后會發(fā)現(xiàn)其實也就是那么回事。兩種框架都是非常優(yōu)秀的安全框架,根據(jù)實際需要做技術(shù)選型。
如果你使用微服務建議使用SpringSeucurity,比較簡單的應用可以使用Shiro。SpringSeucurity學習起來也不難,我出了一個從零開始的SpringSecurity教程,目前廣受好評,你可以到我個人博客felord.cn去免費獲取。