- Shiro使用
Shiro作为轻量级权限管理框架,现在使用shiro并不需要任何的配置文件,我们可以采用javabean的方式,如我们新建一个shiro的配置类需要在类上使用@Configuration注解。
1.首先我们得定义生命周期相关得bean LifecycleBeanPostProcessor
2.定义aop处理方法级得权限实现bean DefaultAdvisorAutoProxyCreator需要注意得是我们必须在什么周期相关得类加载完成才能开始给类实例化,因此我们需要添加@DependsOn(“lifecycleBeanPostProcessor”)注解来限定加载顺序,另外设置该类得属性ProxyTargetClass为true。
3.自定义登录表单拦截器FormAuthenticationFilter可以设置登录参数比如UsernameParam,PasswordParam,RememberMeParam,LoginUrl,SuccessUrl等参数,自定义表单拦截器继承FormAuthenticationFilter ,我们可以重写isAccessAllowed等方法来处理重复登录、同一浏览器新用户登录等问题
4.自定义密码匹配规则实现CredentialsMatcher接口,实现doCredentialsMatch方法
5.如果想使用redis作为session存储或者cache需要按照下面配置redis
6.我们可以定义SimpleCookie用来控制web端cookie存储方式
7.定义DefaultWebSessionManager使用刚刚配置的cookie和session处理类
8.自定义一个Realm继承AuthorizingRealm重写doGetAuthorizationInfo权限处理,AuthenticationInfo身份认证等方法。
9.定义shiro核心bean DefaultWebSecurityManager
10.设置过滤器bean ShiroFilterFactoryBean
2.shiro常见错误
org.apache.shiro.authc.pam.UnsupportedTokenException
org.apache.shiro.authc.UnknownAccountException
org.apache.shiro.authc.LockedAccountException
org.apache.shiro.authc.DisabledAccountException
org.apache.shiro.authc.ExcessiveAttemptsException
org.apache.shiro.authc.ConcurrentAccessException
org.apache.shiro.authc.AccountException
org.apache.shiro.authc.ExpiredCredentialsException
org.apache.shiro.authc.IncorrectCredentialsException
org.apache.shiro.authc.CredentialsException
org.apache.shiro.authc.AuthenticationException
org.apache.shiro.authz.HostUnauthorizedException
org.apache.shiro.authz.UnauthorizedException
org.apache.shiro.authz.UnauthenticatedException
org.apache.shiro.authz.AuthorizationException
org.apache.shiro.ShiroException