2.shiro认证流程与入门实例

合集下载

Shiro授权认证原理和流程

Shiro授权认证原理和流程

Shiro授权认证原理和流程先来张图:这是⼀张shiro的功能图:Authentication:⾝份认证/登录,验证⽤户是否拥有相应的⾝份Authorization:授权/权限验证,验证某个已认证的⽤户是否拥有某个权限,包括验证⽤户是否拥有某个⾓⾊,或拥有某个操作权限Session Management:会话管理,shiro拥有⾃⼰的session(不需要web环境下就能使⽤)Cryptography:加密Web Support: web⽀持,针对web应⽤提供⼀些功能Caching:缓存Concurrency: shiro⽀持多线程应⽤的并发验证,即在⼀个线程中开启另⼀个线程,能把权限⾃动传播过去Testing:测试⽀持Run As:允许⼀个⽤户假装成为另⼀个⽤户(如果允许)的省份进⾏访问Remember Me:记住⽤户⾝份再来⼀张图:Subject:与应⽤交互的⽤户,Subject在shiro中是⼀个接⼝,定义了很多认证授权的⽅法,外部程序通过Subject进⾏认证授权,⽽Subject通过SecurityManager进⾏认证授权注意: Subject只是⼀个门⾯,SecurityManager才是实际的执⾏者SecurityManager:安全管理器,所有与安全有关的操作都会与SecurityManager交互,且管理着所有的Subject,是shiro的核⼼,负责与shiro其他组件进⾏交互,如通过Authenticator进⾏认证,通过Authorizer进⾏授权,通过SessionManager进⾏会话管理等补充: SecurityManager是⼀个接⼝,继承了Authenticator,Authorizer,SessionManager三个接⼝Realm: Shiro从Realm获取安全数据(如⽤户,⾓⾊,权限);也就是说SecurityManager要验证⽤户⾝份或操作权限,需要从Realm获取相应数据来判断(⽤户是否能登录,是否拥有什么权限等)注意: realm也是由SecurityManager控制再来⼀张图:Subject:与应⽤交互的⽤户SecurityManager:相当于SpringMVC中的DispatcherServlet,所有具体的交互都由SecurityManager控制;它管理着所有的Subject,且负责进⾏认证,授权,会话和缓存的管理Authenticator:认证器,对⽤户⾝份进⾏验证;Authenticator是⼀个接⼝,shiro提供ModularRealmAuthenticator实现类,也可以⾃定义Authorizer:授权器,决定⽤户是否有权限进⾏某种操作,控制着⽤户能访问应⽤中的哪些功能Realm:安全实体数据源,可以有1个或多个SessionManager:管理session的⽣命周期(可以实现单点登录)CacheManager:缓存管理器Cryptography:密码管理模块认证流程1. 创建token令牌,token中有⽤户提交的认证信息即帐号和密码2. 执⾏Subject.login(token),Subject实例通常是DelegatingSubject类(或⼦类)的实例对象;在认证开始时,通过SecurityManager实例来调⽤securityManager.login(token)⽅法3. SecurityManager接受到token(令牌)信息后委托Authenticator实例进⾏认证;Authenticator通过实现类ModularRealmAuthenticator来调⽤anthenticator.authenticate(token)⽅法;ModularRealmAuthenticator在认证过程中会对⼀个或多个Realm实例进⾏适配(可插拔)4. 如果配置了多个Realm,ModularRealmAuthenticator会根据配置的AuthenticationStrategy(认证策略)来进⾏多Realm的认证过程;在Realm被调⽤后,AuthenticationStrategy将对每⼀个Realm的结果做出响应注意:如果只有⼀个Realm,Realm将直接调⽤⽽⽆需再配置认证策略5. 判断每⼀个Realm是否都⽀持提交的token,如果⽀持,Realm调⽤getAuthenticationInfo(token),该⽅法就是实际的认证处理,我们通过覆盖Realm的doGetAuthenticationInfo⽅法来编写我们⾃定义的认证处理6. shiro中有三种认证策略的具体实现:AtleastOneSuccessfulStrategy:只要有⼀个realm验证成功,则成功FirstSuccessfulStrategy:第⼀个realm验证成功,则成功,后续realm将被忽略AllSuccessfulStrategy:所有realm成功,验证才成功补充:认证失败后抛出的⼀些异常:UnknownAccountException 帐号不存在IncorrectCredentialsException 密码错误DisabledAccountException 帐号被禁⽤LockedAccountException 帐号被锁定ExcessiveAttemptsException 登录失败次数过多ExpiredCredentialsException 凭证过期⾃定义Realmshiro⾃带的Realm接⼝,CachingRealm负责缓存处理,AuthenticationRealm负责认证,AuthorizingRealm负责授权等,但是通常情况下,正确的⽤户信息都是从数据库中取出,所以需要⾃定义realm,通常⾃定义的realm继承AuthorizingRealm,认证是重写doGetAuthenticationInfo(AuthenticationToken token)⽅法,授权是重写doGetAuthorizationInfo(PrincipalCollection principals)⽅法授权流程1. 调⽤授权验证⽅法(Subject.isPermitted()或Subject.hasRole()等)2. Subject实例通常是DelegatingSubject类(或⼦类)的实例对象;在认证开始时,通过SecurityManager实例来调⽤securityManager.isPermitted(string)⽅法/security.hasRole(string)⽅法3. SecurityManager委托Authorizer的实例(默认是ModularRealmAuthorizer类的实例,同样⽀持多个realm)调⽤相应的授权⽅法4. 每⼀个Realm将检查是否实现了相同的Authorizer接⼝,然后调⽤Realm⾃⼰的相应的授权验证⽅法5. 使⽤多个Realm时,不同于认证策略处理⽅式,授权处理过程中:当调⽤Realm出现异常时,⽴即抛出,结束授权验证只要⼀个Realm验证成功,则认为授权成功,⽴即返回,结束验证。

shiro原理及其运行流程介绍

shiro原理及其运行流程介绍

shiro原理及其运⾏流程介绍shiro原理及其运⾏流程介绍认证执⾏流程1、通过ini配置⽂件创建securityManager2、调⽤subject.login⽅法主体提交认证,提交的token3、securityManager进⾏认证,securityManager最终由ModularRealmAuthenticator进⾏认证。

4、ModularRealmAuthenticator调⽤IniRealm(给realm传⼊token) 去ini配置⽂件中查询⽤户信息5、IniRealm根据输⼊的token(UsernamePasswordToken)从 shiro.ini查询⽤户信息,根据账号查询⽤户信息(账号和密码)如果查询到⽤户信息,就给ModularRealmAuthenticator返回⽤户信息(账号和密码)如果查询不到,就给ModularRealmAuthenticator返回null6、ModularRealmAuthenticator接收IniRealm返回Authentication认证信息如果返回的认证信息是null,ModularRealmAuthenticator抛出异常(org.apache.shiro.authc.UnknownAccountException)如果返回的认证信息不是null(说明inirealm找到了⽤户),对IniRealm返回⽤户密码(在ini⽂件中存在)和 token中的密码进⾏对⽐,如果不⼀致抛出异常(org.apache.shiro.authc.IncorrectCredentialsException)授权流程1、对subject进⾏授权,调⽤⽅法isPermitted("permission串")2、SecurityManager执⾏授权,通过ModularRealmAuthorizer执⾏授权3、ModularRealmAuthorizer执⾏realm(⾃定义的Realm)从数据库查询权限数据 调⽤realm的授权⽅法:doGetAuthorizationInfo4、realm从数据库查询权限数据,返回ModularRealmAuthorizer5、ModularRealmAuthorizer调⽤PermissionResolver进⾏权限串⽐对6、如果⽐对后,isPermitted中"permission串"在realm查询到权限数据中,说明⽤户访问permission串有权限,否则没有权限,抛出异常。

shiro验证权限的流程

shiro验证权限的流程

shiro验证权限的流程以shiro验证权限的流程为标题,下面将详细介绍shiro验证权限的流程。

一、什么是shiro验证权限shiro是一个强大且易于使用的Java安全框架,用于身份验证、授权和加密。

它提供了一个可插拔的架构,使开发者可以轻松地集成shiro到他们的应用程序中,并通过简单的配置来实现身份验证和授权功能。

1. 配置shiro安全管理器:首先,我们需要配置一个shiro安全管理器。

安全管理器是shiro的核心组件,负责协调整个身份验证和授权过程。

我们可以通过编写一个shiro配置文件来配置安全管理器,指定所需的身份验证和授权策略。

2. 编写自定义realm:realm是shiro与应用程序进行交互的接口,负责从应用程序中获取用户的身份信息和权限信息。

我们需要编写一个自定义的realm,实现shiro的Realm接口,并重写其中的方法,以便从数据库或其他存储中获取用户的身份和权限信息。

3. 进行身份验证:一旦配置好安全管理器和自定义realm,我们就可以使用shiro进行身份验证了。

首先,用户提交用户名和密码进行登录,shiro会调用自定义realm中的方法,根据用户名从数据库中获取用户的密码,并与用户输入的密码进行比较。

如果密码匹配成功,说明用户身份验证通过;否则,验证失败。

4. 进行授权验证:身份验证通过后,shiro会根据配置的授权策略,判断用户是否具有访问某个资源的权限。

shiro提供了多种授权策略,如基于角色的授权、基于权限的授权等。

我们可以通过在自定义realm中返回用户的角色和权限信息来进行授权验证。

5. 实现权限控制:一旦用户被授权访问某个资源,我们还可以在代码中进行权限控制,以确保用户只能访问他们被授权的资源。

shiro 提供了一些注解和标签,如@RequiresRoles、@RequiresPermissions等,可以方便地在代码中进行权限控制。

6. 处理无权限访问:如果用户没有被授权访问某个资源,我们可以通过配置shiro的未授权页面,将用户重定向到一个友好的页面,或返回相应的错误信息。

shiro 登录原理-定义说明解析

shiro 登录原理-定义说明解析

shiro 登录原理-概述说明以及解释1.引言1.1 概述Shiro是一个强大而灵活的Java安全框架,用于处理身份认证、授权、密码加密等安全相关的任务。

它提供了一个简单而直观的编程界面,使开发人员能够轻松地集成安全性到他们的应用程序中。

在当今互联网的时代,随着用户数量和敏感信息的增加,保护用户信息和确保系统的安全性变得尤为重要。

实施有效的身份验证和授权机制是确保系统安全的关键环节之一。

Shiro框架作为一种解决方案,致力于为Java应用程序提供可靠的安全性支持。

Shiro的设计理念是简单易用,同时又具备高度的灵活性和可扩展性。

无论是基本的用户名/密码认证,还是复杂的多因素认证,Shiro都能满足各种安全需求。

它支持多种认证机制,如表单登录、基本认证、证书认证等,同时还可以集成第三方身份提供者,如LDAP、Active Directory等。

在完成身份认证之后,Shiro还提供了授权机制,可以根据不同用户的权限对资源进行访问控制。

本文将重点介绍Shiro的登录认证过程和相关原理。

首先,我们会对Shiro框架本身进行简要的介绍,了解其主要特点和功能。

接着,我们将详细解析Shiro的登录认证流程,包括用户身份验证和授权过程。

最后,我们将总结Shiro登录原理的重要性,并展望其在应用和发展方面的前景。

通过本文的阅读,读者将会了解到Shiro框架在身份认证和授权方面的核心机制,以及如何在实际项目中应用Shiro来保护系统的安全性。

同时,读者也能够对Shiro的未来发展进行展望,进一步认识到其在安全领域中的重要性和潜力。

文章结构部分的内容如下:1.2 文章结构本文将分为三个主要部分,分别是引言、正文和结论。

引言部分将首先概述本文将要探讨的主题——shiro 登录原理,并介绍文章的结构和目的。

通过对引言的阅读,读者将对本文的内容有一个整体的了解。

正文部分将详细介绍shiro框架的基本概念和原理、shiro登录认证过程以及shiro登录原理解析。

shiro的使用的步骤

shiro的使用的步骤

shiro的使用的步骤Shiro是一个开源的Java安全框架,用于简化应用程序的身份验证、授权、加密等安全操作。

它提供了一套易于使用的API和一系列可配置的组件,以帮助开发者快速实现安全功能。

下面是使用Shiro的一般步骤:1. 引入Shiro依赖:首先,我们需要在项目中引入Shiro的依赖库。

可以通过Maven或手动下载并添加到项目中。

例如,在Maven 项目中,可以在POM文件中添加以下依赖:xml<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.8.0</version></dependency>2. 配置Shiro:在使用Shiro之前,我们需要配置Shiro的环境。

这包括配置安全策略、数据源、缓存等。

Shiro的配置可以通过properties文件、XML文件或编程方式进行。

- 配置文件方式:创建一个shiro.ini或shiro.xml文件,并配置相应的组件。

例如,定义一个基于用户名/密码的身份验证器:[main]myRealm = com.example.MyRealmsecurityManager.realms = myRealm[users]username=password- 编程方式:可以通过编写Java代码来配置Shiro的组件。

例如,以编程方式配置安全管理器:javaDefaultSecurityManager securityManager = new DefaultSecurityManager();securityManager.setRealm(new MyRealm());SecurityUtils.setSecurityManager(securityManager);3. 创建Realm:Realm是Shiro与应用程序数据交互的桥梁,用于身份验证、授权等操作。

shiro的使用流程

shiro的使用流程

shiro的使用流程1. 简介Shiro是一个强大且易于使用的Java安全框架,可以对应用程序进行身份验证、授权、加密等操作。

本文将介绍使用Shiro的流程。

2. 导入Shiro依赖在开始使用Shiro之前,首先需要导入Shiro的相关依赖。

可以通过在项目的构建文件中添加以下依赖来引入Shiro:dependencies { implementation ‘org.apache.shiro:shiro-core:1.7.1’ … } ```3. 配置Shiro配置Shiro是使用Shiro的第一步。

下面是配置Shiro的步骤:3.1 创建Shiro配置文件在项目中创建一个名为shiro.ini的文件,并保存在项目的资源目录中。

3.2 配置身份验证器在shiro.ini文件中,配置Shiro的身份验证器。

可以选择使用Shiro自带的身份验证器,也可以自定义身份验证器。

3.2.1 使用自带的身份验证器可以通过在shiro.ini文件中添加以下配置来使用Shiro自带的身份验证器:[main] authc.loginUrl = /login.html authc.successUrl = /index.htmlauthc.failureKeyAttribute = shiroLoginFailure ernameParam = username authc.passwordParam = password ```3.2.2 自定义身份验证器如果想自定义身份验证器,在项目中创建一个继承Authenticator的类,并实现其中的方法。

3.3 配置授权器在shiro.ini文件中,配置Shiro的授权器。

可以选择使用Shiro自带的授权器,也可以自定义授权器。

3.3.1 使用自带的授权器可以通过在shiro.ini文件中添加以下配置来使用Shiro自带的授权器:[main] permissions = user:create, user:update ```3.3.2 自定义授权器如果想自定义授权器,在项目中创建一个继承Authorizer的类,并实现其中的方法。

shiro权限管理流程

shiro权限管理流程
Shiro是一款基于Java的安全权限框架,提供了身份认证、授权、会话管理等模块,下面是Shiro的权限管理流程:
1. 用户登录认证:用户打开应用程序,输入用户名和密码。

Shiro会验证输入的用户名和密码是否正确,并返回一个包含了用户信息和会话信息的Subject对象。

2. 身份授权:Subject对象封装了用户信息和会话信息,在用户使用应用程序时,Shiro会检查Subject对象是否有访问某一特定资源(如某个URL)的权限。

根据Subject 对象的基本信息和授权信息,Shiro会判断当前用户是否有访问该资源的权限。

如果权限验证通过,则可以继续访问此资源;如果验证不通过,则会拒绝访问此资源。

3. 授权信息管理:Shiro提供了一套灵活的授权管理机制,开发人员可以通过代码或注解的方式实现访问控制策略。

Shiro支持基于角色的访问控制和基于资源的访问控制,开发人员可以定义角色并赋予角色特定权限,同时也可以对资源进行管理,并对每个资源进行特定的访问控制。

4. 会话管理:Shiro会话管理器会自动处理会话的创建,更新和销毁等操作。

开发人员也可以通过代码的方式手动管理会话,例如可以在用户登录时向会话中添加登录时间和登录IP等信息,并在用户退出时删除对应的会话信息。

总的来说,Shiro的权限管理流程是比较简单和灵活的。

通过Shiro框架,开发人员可以迅速实现应用程序的身份验证、身份授权和会话管理等模块,提高应用程序的安全性和可靠性。

shiro认证流程

shiro认证流程Shiro认证流程。

Shiro是一个功能强大且易于使用的Java安全框架,它提供了对身份验证、授权、加密和会话管理等安全领域的全面支持。

在使用Shiro进行开发时,了解Shiro认证流程是非常重要的,本文将详细介绍Shiro认证流程的相关内容。

1. Subject登录。

在Shiro中,Subject是指正在与软件交互的当前用户。

当用户进行登录操作时,Shiro会创建一个Subject对象,并将用户的身份信息和凭证传递给Shiro进行认证。

在Subject登录的过程中,Shiro会首先验证用户的身份信息,然后再验证用户的凭证信息。

2. 身份验证。

身份验证是Shiro认证流程的第一步,它主要用于验证用户的身份信息。

在身份验证过程中,Shiro会根据用户提供的身份信息,比如用户名或者邮箱等,来查找用户的相关信息并进行匹配验证。

如果用户提供的身份信息是有效的,那么身份验证就会通过,否则将会失败。

3. 凭证验证。

凭证验证是Shiro认证流程的第二步,它主要用于验证用户的凭证信息,比如密码等。

在凭证验证过程中,Shiro会根据用户提供的凭证信息,比如密码,来与用户存储的凭证信息进行匹配验证。

如果用户提供的凭证信息是有效的,那么凭证验证就会通过,否则将会失败。

4. 认证通过。

当用户的身份信息和凭证信息都通过验证后,Shiro认证流程就会顺利通过,并且用户将被标记为已认证。

此时用户可以正常访问系统中受限资源,进行相关操作。

5. 认证失败。

如果用户的身份信息或者凭证信息未通过验证,Shiro认证流程将会失败,并且用户将无法正常访问系统中受限资源。

此时用户需要重新提供有效的身份信息和凭证信息进行认证,才能够再次访问系统。

总结。

通过本文的介绍,我们了解了Shiro认证流程的相关内容。

在实际开发中,开发人员需要根据具体的业务需求和安全要求,合理配置Shiro的认证流程,以确保系统的安全性和稳定性。

同时,开发人员还需要注意保护用户的身份信息和凭证信息,避免出现安全漏洞,保障用户数据的安全。

shiro例子

shiro例子Apache Shiro 是一个强大且易用的 Java 安全框架,提供了身份验证、授权、加密和会话管理功能。

下面是一个简单的 Shiro 示例,演示了如何使用Shiro 进行身份验证和授权。

1. 添加依赖首先,需要在项目中添加 Shiro 的依赖。

如果你使用 Maven,可以在 `` 文件中添加以下依赖:```xml<dependency><groupId></groupId><artifactId>shiro-core</artifactId><version></version></dependency>```2. 配置 Shiro创建一个 Shiro 的配置文件,例如 ``,并放置在项目的类路径下。

在该文件中,可以定义角色、权限和安全策略。

以下是一个简单的 `` 示例:```csharp[main]定义一个自定义的 SecurityManager,用于处理所有 Shiro 安全相关的操作= $myRealm定义自定义的 realm,用于身份验证和授权myRealm == classpath:path/to/[urls]定义哪些 URL 需要进行身份验证,哪些不需要进行身份验证,以及对应的角色或权限/secure/ = authc,roles[admin]/public/ = anon```3. 创建自定义Realm在 `` 文件中,我们使用了自定义的 `IniRealm`。

需要创建一个实现了`Realm` 接口的类,并重写 `getAuthorizationInfo()` 和`getAuthenticationInfo()` 方法。

以下是一个简单的自定义`Realm` 示例:```javaimport ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import org.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;import java.;public class MyRealm extends AuthenticatingRealm { ... }```。

shiro框架的认证和授权流程

shiro框架的认证和授权流程Shiro是一个轻量级Java安全框架,提供了认证、授权、加密和会话管理等功能,使用起来非常方便。

本文将详细介绍Shiro框架的认证和授权流程,以便读者更好地理解和应用Shiro框架。

一、Shiro框架的认证流程Shiro框架的认证流程可以分为以下几个步骤:1、收集用户身份和凭证:即获取用户输入的用户名和密码。

2、将用户身份和凭证封装成一个AuthenticationToken对象。

3、将AuthenticationToken对象提交给SecurityManager进行认证。

4、SecurityManager将认证请求委托给Authenticator进行具体的认证。

5、Authenticator根据AuthenticationToken,调用Realm从数据源中获取用户身份和凭证进行比对。

6、如果身份和凭证匹配成功,则认证成功,否则认证失败。

7、认证成功后,将用户的身份信息交给Shiro管理,用于后续的访问控制。

二、Shiro框架的授权流程Shiro框架的授权流程可以分为以下几个步骤:1、用户进行访问请求时,Shiro首先判断用户是否已经通过认证,如果没有通过认证则需要进行认证。

2、如果用户已经通过认证,则Shiro会通过Subject对象获取用户的角色和权限信息。

3、Shiro会根据用户的角色和权限信息,从数据库或者内存中获取对应的授权信息。

4、Shiro将授权信息与用户的访问请求进行比对,以决定用户是否有权限访问。

5、如果用户拥有访问权限,则Shiro允许用户进行访问,否则禁止用户进行访问。

总之,Shiro框架的认证和授权流程非常清晰和简单,而且支持多种数据源,如数据库、LDAP、Properties、INI等,可以满足不同的应用需求。

同时,Shiro框架还提供了其他一些有用的功能,如加密解密、会话管理、Remember Me等,具备较强的安全保障能力,是Java 应用开发中不可或缺的安全框架。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//2.获取SecurityManager
SecurityManagersecurityManager=factorurityManager
SecurityUtils.setSecurityManager(securityManager);
<version>4.12</version>
</dependency>
</dependencies>
</project>
项目结构及依赖如下:
4.添加shiro-helloworld.ini配置文件
shiro-helloworld.ini
[users]
bjsxt=111111
ps:ini文件默认使用操作系统的文本编辑器打开。可如下配置:
subject.login(token);
}catch(AuthenticationExceptione) {
//TODOAuto-generated catch block
e.printStackTrace();
}
//得到认证的结果
booleanisAuthenticated=subject.isAuthenticated();
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bjsxt</groupId>
importorg.junit.Test;
publicclassShiroTest {
/**
* 认证测试
*/
@Test
PublicvoidauthenticatorTest(){
//1.构建SecurityManager工厂
Factory<SecurityManager>factory=newIniSecurityManagerFactory("classpath:shiro-helloworld.ini");
importorg.apache.shiro.config.IniSecurityManagerFactory;
importorg.apache.shiro.mgt.SecurityManager;
importorg.apache.shiro.subject.Subject;
importorg.apache.shiro.util.Factory;
}
}
<artifactId>shiro-core</artifactId>
<version>1.3.2</version>
</dependency>
<!--junit依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
//4.得到主体
Subjectsubject= SecurityUtils.getSubject();
//创建token,模拟用户输入的用户名和密码
UsernamePasswordTokentoken=newUsernamePasswordToken("bjsxt","111111");
try{
//提交认证
<artifactId>shiro-01-helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!--shiro依赖 -->
<dependency>
<groupId>org.apache.shiro</groupId>
System.out.println("是否认证通过:"+isAuthenticated);
//退出
subject.logout();
//org.apache.shiro.authc.UnknownAccountException:未知账户异常
//org.apache.shiro.authc.IncorrectCredentialsException:、错误的凭证异常
1.shiro认证流程
2.创建maven项目shiro-01-helloworld
3.添加依赖
pom.xml
<projectxmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"
5.编写测试类
ShiroTest.java
packagecom.bjsxt;
importorg.apache.shiro.SecurityUtils;
importorg.apache.shiro.authc.AuthenticationException;
ernamePasswordToken;
相关文档
最新文档