Apache Shiro是一个强大的,易用的Java安全框架。它被用作于认证,授权,加密,session管理。依赖于Shiro简单易懂的API,就可以快速的构建包括手机,大型web和商业应用。今天小编就带大家入门shiro,你会发现shiro并没有你想的那么难。
1、添加依赖,这里只展示shiro的,Spring的依赖及配置如果不懂得可以加QQ群:105249460,问群主
2、再web.xml中添加shiro的过滤器,很重要,注意点<filter-name>节点,再shiro的配置文件中必须要有此filter-name的bean存在,否则会出错。
3、shiro配置文件,这里命名为applicationContext-shiro.xml,详细内容看注释基本就可以懂了
注意:1) 为了使登录走我们自定义的过滤器登录的URL拦截必须是authc,因为我们的FormFilter集成的FormAuthenticationFilter,否则是就需要在Controller写登录的代码。
2) 再次强调bean的ID为shiroFilter必须要和web.xml中保持一致,不明白为什么的可以看下源码
4、realm实现,一般我们继承AuthorizingRealm类实现其中的doGetAuthenticationInfo(认证登录用户)和doGetAuthorizationInfo(设置登录用户的角色和权限)两个方法即可
(1)doGetAuthenticationInfo方法
(2)doGetAuthenticationInfo方法
(3)setSession方法
5、实现表单的filter让shiro为我们执行登录操作,我能只需添加验证码即可,需要继承FormAuthenticationFilter,需要我们注意的也就下面这几个方法,其中在onAccessDenied中我们添加验证码的操作,setFailureAttribute中我们可以在request对象中设置失败的消息,在preHandle拦截登录的请求,防止二次登录。
6、接下来我们需要一个LoginController,里面的方法很简单