1、shiro控制权限的两种思想:粗粒度url级别,细粒度方法级别
2、shiro执行流程简介
3、案例
3.1shiro控制用户登录实现,登录其实就是shiro中的认证。
(1)配置web.xml(shiro的filterFactory会去spring中找shiroFilter),配置spring分配置文件applicationContext-shiro.xml(shiroFilter,securityManager),在spring主配置文件中引入分配置文件。
(2)action中获取subject对象,创建认证token对象,调用subject.login(token),shiro底层会调用securityManger。
(3)编写Realm实现类,可以根据需要选择是实现Realm接口或继承某个实现类如AuthorizingRealm,实现某些方法如认证和授权的方法(登录只需要编写认证的代码,将授权空实现即可)
(4)调用业务层查询user,token中就可以获取到username,下面这句代码比较关键,shiro中的securityManger是查询出的用户密码直接比较的。当密码不一致就会抛出异常,所以在action中的subject.login代码处捕获异常即可,无异常就表示认证成功,登录成功,可以跳转主页;有异常就表示认证失败,可以直接让返回登录页面即可。
return new SimpleAuthenticationInfo(user, user.getPassword(), getName());
3.2授权功能实现待续。。。