Apache Shiro 笔记

2020-04-11  本文已影响0人  超音速6

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包括

默认会话管理器

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容器

上一篇 下一篇

猜你喜欢

热点阅读