Shiro快速入门之一

一、前言

Java有两个出名的安全框架,一个是Apache Shiro,另一个是Spring Security ,相对而言Shiro更简单、控制权限的粒度可粗可细,我们项目中使用的是Shiro。

二、概

Shiro最主要的功能是验证用户身份和用户访问权限控制,比如判断用户是否分配了一个角色,或判断用户是否有完成某个操作的权限等。它不会去维护用户与权限,这需要我们自己提供接口然后注入给Shiro。

1、三大核心组件

  • subject

            主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。

  • securityManager:

             安全管理器,主体进行认证和授权都是通过它进行。

  • realm

             领域,可以理解为DAO,通过它存取认证、授权相关数据。

2、四大核心功能

  • Authentication

             认证即登录,用于用户身份识别。

  • Authorization

             授权即访问控制,判断用户是否有权限去访问受保护的资源。

  • Cryptography

             通过加密算法保护数据安全。

  • Session Management

             会话管理,即用户访问你应用自身携带的数据,甚至可以在非Web程序上使用。

三、最简单例子

1、build.gradle

2、AuthenticationTest.java

Shiro快速入门之一_第1张图片

Shiro认证过程

1、调用subject.login(token)进行登录,其会委托给SessionManager,调用之前必须通过

SecurityUtils.setSecurityManager进行设置。

2、SecurityManager负责真正身份验证逻辑,它会委托给Authenticator进行身份验证。

3、Authenticator是真正的身份验证者。

DelegatingSubject.java

DefaultSecurityManager.java

AbstractAuthenticator.java

Shiro快速入门之一_第2张图片

你可能感兴趣的:(Java技术,java)