shiro学起来感觉是博大精深,自己学了几天,也只能是初步掌握了用法,但是感觉还是受益无穷。
重点是授权和认证。
认证的过程是只用原始密码和加盐方式,数据库存放的是加盐加密过的密码。(加盐的详解在我的另一篇文章中)
SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
activeUser, password,ByteSource.Util.bytes(salt), this.getName());
这个SimpleAuthenticationInfo方法中只有第二参数和第三个参数是认证通过需要的,第一个参数的作用不明显,可以传递给授权过程使用,第四个参数基本上没用,就是保存的时候的key,随便写即可。
授权过程,基本上就是
SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
//将上边查询到授权信息填充到simpleAuthorizationInfo对象中
simpleAuthorizationInfo.addStringPermissions(permissions);
SimpleAuthorizationInfo
这个方法的基本上就是使用addStringPermissions加权限,
simpleAuthorizationInfo.addRoles(roles);加角色,
权限和角色就是来自认证过程的一个参数的用户信息,根据数据库查找即可。
然后就是路径的匹配认证和匹配授权的编写。
使用过滤器链