美文网首页
Apache Shiro 笔记

Apache Shiro 笔记

作者: 超音速6 | 来源:发表于2020-04-11 23:58 被阅读0次

Apache Shiro 是一个功能强大且易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理。通过Shiro易于理解的API,您可以快速、轻松地保护任何应用程序——从最小的移动应用程序到最大的web和企业应用程序。

什么是Apache Shiro?

Apache Shiro是一个功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观而全面的身份验证、授权、加密和会话管理解决方案。

Apache Shiro能做什么?

SecurityManager

AuthenticationToken:该接口时Shiro的身份验证系统用来表示提交的主体和凭据的基本接口

Authenticator
ModularRealmAuthenticator:
AuthenticationInfo

AuthenticationStrategy

收集主题的主体和证书

//Example using most common scenario of username/password pair:
UsernamePasswordToken token = new UsernamePasswordToken(username, password);

//"Remember Me" built-in: 
token.setRememberMe(true);

提交主体和凭据

Subject currentUser = SecurityUtils.getSubject();
currentUser.login(token);

subject.isAuthenticated()

处理成功或失败

如果认证通过什么也不返回。
如果认证失败将会抛出异常。

try {
    currentUser.login(token);
} catch ( UnknownAccountException uae ) { ...
} catch ( IncorrectCredentialsException ice ) { ...
} catch ( LockedAccountException lae ) { ...
} catch ( ExcessiveAttemptsException eae ) { ...
} ... catch your own ...
} catch ( AuthenticationException ae ) {
    //unexpected error?
}

注销

currentUser.logout(); //removes all identifying information and invalidates their session too.

认证顺序

image.png
  1. 应用程序代码调用Subject.login方法,并传入AuthenticationToken表示最终用户的主体和凭据的构造示例。

AuthenticationStrategy3种具体的认证策略

  1. 一个认证成功,则认证成功
  2. 第一个认证成功,则认证成功
  3. 全部认证成功,则认证成功

Shiro有三个主要的概念

image.png

SecurityManager包括

  • Authentication:身份验证
  • Authorization:授权
  • Session Management:会话管理
  • Cache Management:缓存管理
  • Realm coordination:领域的协调
  • Event propagation:事件传播
  • “Remember Me” Services:“记住我”服务
  • Subject creation:主题创建
  • Logout and more.:注销等等。

默认会话管理器

DefaultSessionManager

会话监听器

默认过滤器

DefaultFilter

WEB环境默认会话管理器

ServletContainerSessionManager

Shiro本地会话管理器

DefaultWebSessionManager
默认使用SimpleCookie

设置
拆除
未经检验的成功
测试未加盐的错误密码
测试未加盐的多行
测试盐柱是否成功
测试base64编码的盐柱成功
测试盐栏密码错误
测试base64盐列密码错误
外部测试成功
测试外部错误的密码
测试的角色出现
测试角色不存在
测试允许存在
测试许可不存在

EnvironmentLoaderListener

初始化Shiro的WebEnvironment示例(其中包含Shiro需要操作的所有东西,包括SecurityManager)

IniWebEnvironment类期望读取和加载INI配置文件。默认情况下,这个类会自动在以下两个位置查找shiro.ini配置(按顺序):

获取WebEnvironment示例

WebUtils.getRequiredWebEnvironment(servletContext)


Web中Shiro默认的会话管理器是ServletContainerSessionManager,Shiro将所有会话管理职责委派给运行时的Servlet容器

相关文章

  • shiro1.1_介绍

    原文翻译 Apache Shiro 介绍 什么是Apache Shiro? Apache Shiro是一个强大并且...

  • Apache Shiro简介

    数据层准备好后,可以开始接入Apache Shiro框架: Apache Shiro简介 Apache Shiro...

  • Apache Shiro 是什么 & Shiro 框架介绍

    Apache Shiro 是什么 & Shiro 框架介绍 官方介绍 Apache Shiro™ is a pow...

  • SpringBoot整合Shiro

    SpringBoot整合Shiro Apache Shiro Apache Shiro是一个功能强大、灵活的...

  • Shiro简介

    http://shiro.apache.org/introduction.html Shiro简介 Apache ...

  • Apache Shiro笔记

    Apache Shiro是一个安全框架,对于身份验证还有权限管理比较简单(一点都不简单),尤其是在看了网上很多博客...

  • Apache Shiro 笔记

    Apache Shiro 是一个功能强大且易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理。通过S...

  • Shiro1-基础知识

    什么是Shiro Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的...

  • spring shiro配置

    Apache Shiro的官方文档 http://shiro.apache.org/web.htmlApache ...

  • Shiro简介

    1、什么是Shiro Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来...

网友评论

      本文标题:Apache Shiro 笔记

      本文链接:https://www.haomeiwen.com/subject/htsmmhtx.html