1)shiro是一个常用的安全框架,包括以下几个模块:认证、授权、session管理、rememberme、加密、websurport等。
(2)它里面包括三个重要概念:subject(所有的登录或者申请授权者)、SecurityManager(调用验证逻辑和管理subject)、Realm(账号和密码所在地,类似datasource,一般要用户自己实现AuthorizingRealm)
(3)在配置上,web.xml中设置一个过滤器委托代理DelegatingFilterProxy,必须对应到一个springbean的过滤器ShiroFilterFactoryBean上面,此工厂类关键的属性有:loginurl【登录的页面路径】, nopermmisionurl【没权限跳转的路径】, unauthorizedUrl【认证失败跳转的路径】,filterChainDefinitions【过滤链,对应anon, user和authc】
(4)继承了AuthorizingRealm之后,要重写其中的认证和授权方法,认证方法有subject.login触发,授权方法有以下三种方式触发:shiro标签,例如shiro:hasPermission、shrio:hasRoles等;shrio注解@RequiresRoles、@RequiresPermissions等;java代码,例如subject.hasRole、subject.isPermitted等
网友评论