8.11.15 下午 第80天上课

总结

shiro : 一个主流的权限管理框架 Apache
shiro :
    认证:Authenticator 认证器 
        主体:subject 登录者
        创建一个SimpleAuthenticationInfo对象 存放 用户名 数据库密码 盐 
    授权:
        一个是角色 role 
        一个是权限 permission 
        从数据库中取出用户对应的 角色权限信息 存放到
        SimpleAuthorizationInfo 对象中 
    加密原则
        使用md5加密方式进行对密码加密 加密不可逆 比对方式 将用户输入的密码加盐加密在和数据库中加密后的密码进行对比
    会话管理
        sessionManager
    缓存管理
        cacheManager

验证码:需要继承FormAuthenticationFilter重写方法中实现在 认证之前判断验证码是否正确
记住我:cookieManager 把用户名和密码存放在cookie中 下次登录判断cookie中是否存在,如果已经存在则直接发给后台进行登录

过滤器配置:
authc: 必须认证
anon: 匿名访问
user: 认证过
logout: 退出登录
jsp:shiro标签
<shiro:authenticated/>    登录之后
<shiro:notAuthenticated/>    不在登录状态时
<shiro:guest/>    用户在没有RememberMe时
<shiro:user/>    用户在RememberMe时
<shiro:hasAnyRoles name="abc,123"/ >    在有abc或者123角色时
<shiro:hasRole name="abc"/>    拥有角色abc
<shiro:lacksRole name="abc"/>    没有角色abc
<shiro:hasPermission name="abc"/>    拥有权限资源abc
<shiro:lacksPermission name="abc"/>    没有abc权限资源
<shiro:principal/>    显示用户身份名称
<shiro:principal property="username"/>   显示用户身份中的属性
controller 中的shiro注解
    @RequiresAuthentication
  表示当前Subject已经通过login 进行了身份验证;即Subject. isAuthenticated()返回true。
 
  @RequiresUser
  表示当前Subject已经身份验证或者通过记住我登录的。
 
  @RequiresGuest
  表示当前Subject没有身份验证或通过记住我登录过,即是游客身份。
 
  @RequiresRoles(value={“admin”, “user”}, logical= Logical.AND)
  @RequiresRoles(value={“admin”})
  @RequiresRoles({“admin“})
  表示当前Subject需要角色admin 和user。
 
  @RequiresPermissions (value={“user:a”, “user:b”}, logical= Logical.OR)
  表示当前Subject需要权限user:a或user:b。

猜你喜欢

转载自blog.csdn.net/qq_42770040/article/details/84103117