1. Shiro简介
Shiro官方主页:
http://shiro.apache.org/download.html
2. Shiro实现HelloWorld
create maven project -->
create a simple project -->
GroupId: com.andrew.shiro
Artifact Id: Shiro01
Packaging: jar
Name: Shiro01
Description: Shiro01 Project
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.andrew.shiro</groupId>
<artifactId>Shiro01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Shiro01</name>
<description>Shiro01 Project</description>
<dependencies>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
</dependencies>
</project>
shrio.ini
[users]
andrew=123456
jack=123
log4j.properties
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n
# General Apache libraries
log4j.logger.org.apache=WARN
# Spring
log4j.logger.org.springframework=WARN
# Default Shiro logging
log4j.logger.org.apache.shiro=TRACE
# Disable verbose logging
log4j.logger.org.apache.shiro.util.ThreadContext=WARN
log4j.logger.org.apache.shiro.cache.ehcache.EhCache=WARN
HelloWorld.java
package com.andrew.shiro;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
public class HelleWorld {
public static void main(String[] args) {
// 读取配置文件,初始化SecurityManager工厂
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
// 获取securityManager实例
SecurityManager securityManager = factory.getInstance();
// 把securityManager实例绑定到SecurityUtils
SecurityUtils.setSecurityManager(securityManager);
// 得到当前执行的用户
Subject currentUser = SecurityUtils.getSubject();
// 创建token令牌,用户名/密码
UsernamePasswordToken token = new UsernamePasswordToken("andrew", "123456");
try {
// 身份认证
currentUser.login(token);
System.out.println("身份认证成功!");
} catch (AuthenticationException e) {
e.printStackTrace();
System.out.println("身份认证失败!");
}
// 退出
currentUser.logout();
}
}
运行结果:
身份认证成功!
修改为:
UsernamePasswordToken token = new UsernamePasswordToken("andrew", "123");
运行结果:
org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToken - andrew, rememberMe=false] did not match the expected credentials.
...
身份认证失败!
分享到:
相关推荐
Apache Shiro 和 SpringMVC 的整合示例是一个用于构建安全Web应用的常见实践。这个示例项目不依赖于任何数据库,所有的实现都是基于静态代码,这使得它成为一个快速理解和学习Shiro安全框架的理想起点。 Apache ...
在这个"shiro权限框架示例"中,我们可以深入学习Shiro的核心功能及其在实际项目中的应用。 1. **Shiro框架介绍** Apache Shiro 并非一个完整的安全框架,而是专注于应用程序的安全控制层,它不涉及网络协议或底层...
在这个"shiro代码示例 web项目"中,我们可以深入理解Shiro如何与Web应用程序相结合,实现用户身份验证、权限控制以及会话管理等核心功能。 首先,Shiro的认证过程是项目的核心部分。在Web应用中,当用户尝试登录时...
Shiro通过Subject对象来处理与用户的交互,Subject代表了当前“安全实体”,它可以是用户、服务、后台系统等。 在Shiro中,` Realm `是连接应用程序数据源(如数据库)的桥梁,负责处理认证和授权。你需要创建一个...
跟我学shiro文档和示例源代码 第一章 SHIRO 简介....................................................................................................................... 5 简介 ...............................
本示例将深入讲解 Shiro 的基本配置与使用,同时结合 SQL 数据库,实现用户身份验证与权限控制。 首先,我们了解 Shiro 的核心组件: 1. **Subject**:Shiro 的核心概念,代表当前操作的用户,可以是实际用户、...
在本文中,我们将深入探讨如何将SpringMVC与Apache Shiro框架整合,以实现一个安全的Web应用程序。这个示例代码提供了完整的实现过程,让你能够快速理解和应用到自己的项目中。 首先,SpringMVC是Spring框架的一个...
SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 ...
这个示例项目提供了一个完整的Shiro实现,特别强调了权限管理,并且结合了数据库来存储用户和角色信息。从提供的文件列表来看,我们有两个主要文件:`ssms.sql`,这很可能是SQL脚本,用于创建数据库结构,以及`SSMS`...
标签中提到的SSO,可能表示示例展示了如何使用Shiro与其他SSO服务配合使用。 4. **Spring Security比较**:虽然Shiro和Spring Security都是Java安全框架,但它们各有特点。Shiro更轻量级,易于理解和使用,适合小型...
在"shiro学习示例"中,我们可以深入理解Shiro的核心概念和实际应用。 1. **Shiro基本概念** - **认证**:确认用户身份的过程,即用户输入用户名和密码,系统通过验证来确认用户的身份。 - **授权**:确定用户是否...
在这个"Shiro学习示例,以及与SpringMVC整合,标签注解等"项目中,我们可以深入理解Shiro的核心功能以及如何在实际开发中与SpringMVC集成。 首先,Shiro 提供了用户认证(Authentication)机制,允许应用验证用户...
shiro+cas实现单点登录 示例代码,送源码分析url:http://note.youdao.com/noteshare?id=a83380ee8fc6913162042e865689844e&sub=CD905CCCE4134A159326DC2DFC1AF268
Shiro会自动与我们在配置文件中定义的认证机制进行交互,比如使用`AuthorizingRealm`进行数据库查询验证用户凭证。 如果登录成功,Shiro会创建并管理会话,将用户信息保存在会话中。我们可以通过`subject....
在IT行业中,SpringMVC、MyBatis和Shiro是三个非常重要的框架,它们分别用于构建Web应用程序的模型-视图-控制器结构、数据库操作和权限管理。下面将详细介绍这三个框架以及它们的综合配置。 SpringMVC是Spring框架...
通过这个示例项目,我们可以全面理解 Shiro 在实际 Web 开发中的应用,包括用户认证、授权流程、会话管理、过滤器配置以及与 Spring 的整合。对于希望提升应用安全性的开发者来说,这是一个极好的学习资源。
1. **配置**:首先,你需要在应用的配置文件(如 `shiro.ini` 或 `Java 配置类`)中定义安全设置,包括用户的凭证匹配器(CredentialsMatcher)和 Realm,后者是 Shiro 与应用程序数据源交互的桥梁。 2. **Subject*...
在SS+Shiro示例中,Spring和SpringMVC负责处理应用程序的业务逻辑和视图展示,而Shiro则负责处理与安全性相关的事务。 首先,我们来了解一下**Spring**。Spring是一个开源的Java企业级应用框架,它提供了一种依赖...
在"SSM框架搭建的一个简单的Shiro示例"中,我们主要关注的是授权功能的实现。通过Shiro,我们可以方便地控制用户对不同资源的访问权限,例如限制某些用户只能访问特定的页面或执行特定的操作。这使得我们的SSM应用...
本篇文章主要介绍了 SpringBoot 与 Shiro 的整合,实现密码加密和登录失败次数限制的示例。该示例中,使用 Shiro 框架来实现登录失败次数限制,并使用 SpringBoot 框架来实现密码加密。 密码加密是指在用户注册或...