shiro的小白学习

1. shiro是啥就不用说了吧

    Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理

     SecurityManager 是shiro的核心。它不同于java.lang.SecurityManager ---------SecurityUtils.getSubject() 可以理解为User

2. shiro可以做什么事情

     验证用户

     判断用户拥有的角色

     判断用用户可以访问的资源

     单点登陆

     Remember Me服务 Shiro官方当然建议你开启了,要不然费那么大力气干啥

3. shiro的四大部分

    Authentication:身份验证,简称“登录”。
    Authorization:授权,给用户分配角色或者权限资源
    Session Management:用户session管理器,可以让CS程序也使用session来控制权限
    Cryptography:把JDK中复杂的密码加密方式进行封装。

4. shiro的执行流程

   

5. shiro执行流程的解释说明  

  ApplicationCode(输入用户名,密码)
  --->
  Subject(拿到用户名,密码)
  --->
  进入Shiro SecurityManager
  --->
  执行Realms(登录和验证)
  如果有多个realms AuthenticationStrategy 将会协调这些 Realm

6.shiro中的组件

   SessionManager

    SessionDAO代表 SessionManager 执行 Session 持久化(CRUD)操作 

   CacheManager
  CacheManager 创建并管理其他 Shiro 组件使用的 Cache 实例生命周期
   Cryptography
  Shiro 的 crypto 包包含量易于使用和理解的cryptographicCiphers 就是加密
 Realms
  Realms 在 Shiro 和你的应用程序的安全数据之间担当“桥梁”或“连接器

   CredentialsMatcher

        密码凭证匹配器

7.常用的注解

    @RequiresAuthentication

    验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时

   @RequiresUser

     验证用户是否被记忆

    @RequiresGuest

      验证是否是一个guest的请求,与@ RequiresUser完全相反。换言之,RequiresUser == ! RequiresGuest 。此时subject.getPrincipal() 结果为null.

   @ RequiresRoles("aRoleName")用在方法上
      如果subject中有aRoleName角色才可以访问方法,如果没有这个权限则会抛出异常AuthorizationException

 @RequiresPermissions
  要求subject中必须含有这个权限才可以访问此方法,要不抛出异常AuthorizationException。

   暂时就记录这么多吧!

  

    

猜你喜欢

转载自www.cnblogs.com/sjzxxy/p/11688962.html