所以认证和授权只需要继承AuthorizingRealm就可以了。同时实现他的两个方法。
(1). 在doGetAuthenticationInfo方法返回值创建SimpleAuthenticationInfo对象时,
使用SimpleAuthenticationInfo(principal, credentials, credentialsSalt, realmName) 构造器。
(2). 使用ByteSource.Util.byte()来计算盐值
(3). 盐值需要唯一:一般使用随机字符串或者user_id
(4). 使用 new SimpleHash(hashAlgorithmName, credentials, salt, hashIterations); 来计算盐值加密后的密码值。
密码的比对: 通过AuthenticationRealm的credentialsMatcher属性来进行密码的比对
- 创建一个表单页面
- 把请求提交到 SpringMVC 的 Handler
- 获取用户名和密码.
- 实际上需要继承 org.apache.shiro.realm.AuthenticatingRealm 类
- 实现 doGetAuthenticationInfo(AuthenticationToken) 方法.