Spring Security 和 Apache Shrio选哪个好

2024-12-20 14:04:21
推荐回答(1个)
回答1:

一、前言ApacheShiro与SpringSecurity一样是Java的一个安全框架。那为什么与Spring整合却用Shiro?不要问为什么,任性!开个玩笑:D其实我个人是认为SpringSecurity太过于笨重,要写太多的过滤器。我是个怕麻烦的人,Shiro的配置简单这就是我选择的理由,何况Spring官方自己都推荐使用Shiro。而Shiro权限控制与CAS单点登录的组合更是堪称Java安全中的***~( ̄_, ̄)……但本文只介绍它们三者的整合配置(说白了就是给自己留个学习笔记啦),若对此方面内容感兴趣的可以到网上搜索学习,在此推荐开涛大神的:《跟我学shiro》。再次强调,以下内容仅为个人学习笔记,不是篇教程。二、配置Shiro最主要的就是认证与授权,而CAS的重点在于单点登录,其实CAS与Shiro整合的话就是关于认证那块的整合。我们先来看web.xml中Shiro与CAS的配置:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950contextConfigLocationclasspath*:/cas-client-shiro.xmlshiroFilterorg.springframework.web.filter.DelegatingFilterProxytargetFilterLifecycletrueshiroFilter/*springmvcservlet配置……logoutFilterorg.springframework.web.filter.DelegatingFilterProxylogoutFilter/logoutCASSingleSignOutFilterorg.springframework.web.filter.DelegatingFilterProxytargetBeanNamesingleSignOutFilterCASSingleSignOutFilter/*………………其它配置省略………………在上面的配置中是否有留意到这货:DelegatingFilterProxy,它会自动的把filter请求交给相应名称的bean处理。例如在启动时,spring会有一个filter请求,这个请求转交给了shiroFilter这个bean去处理了。so^接下来我们就得去找找看shiroFilter在哪?此为上文加载的cas-client-shiro.xml配置:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667/login/=casFilter/logout=anon/**=authc………………………………………………………………………………………………以上内容众多省略,其实我想强调的是MyRealm。恩,我们要实现的认证、预授权操作都在此自定义的Realm中实现操作。MyRealm继承了CasRealm,CasRealm又继承了AuthorizingRealm。所以,MyRealm中具体写了授权实现逻辑,而认证则调用了CasRealm中的方法……三、结语为什么不好好的写一篇博文教程?首先,这方面的东西内容非常多,不是一两篇能说的清楚的。其次,自己也是刚开始学习,并未完全掌握。最后,本人特别懒,目前只是想给自己留个学习笔记而已。