`

Shiro简介与示例

阅读更多
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.
...
身份认证失败!
分享到:
评论

相关推荐

    Shiro+SpringMVC 示例

    Apache Shiro 和 SpringMVC 的整合示例是一个用于构建安全Web应用的常见实践。这个示例项目不依赖于任何数据库,所有的实现都是基于静态代码,这使得它成为一个快速理解和学习Shiro安全框架的理想起点。 Apache ...

    shiro权限框架示例

    在这个"shiro权限框架示例"中,我们可以深入学习Shiro的核心功能及其在实际项目中的应用。 1. **Shiro框架介绍** Apache Shiro 并非一个完整的安全框架,而是专注于应用程序的安全控制层,它不涉及网络协议或底层...

    shiro代码示例 web项目

    在这个"shiro代码示例 web项目"中,我们可以深入理解Shiro如何与Web应用程序相结合,实现用户身份验证、权限控制以及会话管理等核心功能。 首先,Shiro的认证过程是项目的核心部分。在Web应用中,当用户尝试登录时...

    shiro权限管理示例

    Shiro通过Subject对象来处理与用户的交互,Subject代表了当前“安全实体”,它可以是用户、服务、后台系统等。 在Shiro中,` Realm `是连接应用程序数据源(如数据库)的桥梁,负责处理认证和授权。你需要创建一个...

    跟我学shiro文档和示例源代码

    跟我学shiro文档和示例源代码 第一章 SHIRO 简介....................................................................................................................... 5 简介 ...............................

    Shiro的简单示例-注释完善-含SQL

    本示例将深入讲解 Shiro 的基本配置与使用,同时结合 SQL 数据库,实现用户身份验证与权限控制。 首先,我们了解 Shiro 的核心组件: 1. **Subject**:Shiro 的核心概念,代表当前操作的用户,可以是实际用户、...

    SpringMVC整合Shiro的完整示例代码下载

    在本文中,我们将深入探讨如何将SpringMVC与Apache Shiro框架整合,以实现一个安全的Web应用程序。这个示例代码提供了完整的实现过程,让你能够快速理解和应用到自己的项目中。 首先,SpringMVC是Spring框架的一个...

    SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录

    SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 ...

    Shiro权限管理示例(包括数据库结构)

    这个示例项目提供了一个完整的Shiro实现,特别强调了权限管理,并且结合了数据库来存储用户和角色信息。从提供的文件列表来看,我们有两个主要文件:`ssms.sql`,这很可能是SQL脚本,用于创建数据库结构,以及`SSMS`...

    shiro权限管理系统示例

    标签中提到的SSO,可能表示示例展示了如何使用Shiro与其他SSO服务配合使用。 4. **Spring Security比较**:虽然Shiro和Spring Security都是Java安全框架,但它们各有特点。Shiro更轻量级,易于理解和使用,适合小型...

    shiro学习示例

    在"shiro学习示例"中,我们可以深入理解Shiro的核心概念和实际应用。 1. **Shiro基本概念** - **认证**:确认用户身份的过程,即用户输入用户名和密码,系统通过验证来确认用户的身份。 - **授权**:确定用户是否...

    Shiro学习示例,以及与SpringMVC整合,标签注解等

    在这个"Shiro学习示例,以及与SpringMVC整合,标签注解等"项目中,我们可以深入理解Shiro的核心功能以及如何在实际开发中与SpringMVC集成。 首先,Shiro 提供了用户认证(Authentication)机制,允许应用验证用户...

    shiro+cas实现单点登录 示例代码,送源码分析url

    shiro+cas实现单点登录 示例代码,送源码分析url:http://note.youdao.com/noteshare?id=a83380ee8fc6913162042e865689844e&sub=CD905CCCE4134A159326DC2DFC1AF268

    SSH+shiro+tiles登录示例

    Shiro会自动与我们在配置文件中定义的认证机制进行交互,比如使用`AuthorizingRealm`进行数据库查询验证用户凭证。 如果登录成功,Shiro会创建并管理会话,将用户信息保存在会话中。我们可以通过`subject....

    springmvc,mybatis,shiro综合配置示例

    在IT行业中,SpringMVC、MyBatis和Shiro是三个非常重要的框架,它们分别用于构建Web应用程序的模型-视图-控制器结构、数据库操作和权限管理。下面将详细介绍这三个框架以及它们的综合配置。 SpringMVC是Spring框架...

    shiro代码示例2 web项目

    通过这个示例项目,我们可以全面理解 Shiro 在实际 Web 开发中的应用,包括用户认证、授权流程、会话管理、过滤器配置以及与 Spring 的整合。对于希望提升应用安全性的开发者来说,这是一个极好的学习资源。

    Apache Shiro 身份认证例子-源码

    1. **配置**:首先,你需要在应用的配置文件(如 `shiro.ini` 或 `Java 配置类`)中定义安全设置,包括用户的凭证匹配器(CredentialsMatcher)和 Realm,后者是 Shiro 与应用程序数据源交互的桥梁。 2. **Subject*...

    SS+Shiro示例程序

    在SS+Shiro示例中,Spring和SpringMVC负责处理应用程序的业务逻辑和视图展示,而Shiro则负责处理与安全性相关的事务。 首先,我们来了解一下**Spring**。Spring是一个开源的Java企业级应用框架,它提供了一种依赖...

    SSM框架搭建的一个简单的Shiro示例

    在"SSM框架搭建的一个简单的Shiro示例"中,我们主要关注的是授权功能的实现。通过Shiro,我们可以方便地控制用户对不同资源的访问权限,例如限制某些用户只能访问特定的页面或执行特定的操作。这使得我们的SSM应用...

    SpringBoot+Shiro学习之密码加密和登录失败次数限制示例

    本篇文章主要介绍了 SpringBoot 与 Shiro 的整合,实现密码加密和登录失败次数限制的示例。该示例中,使用 Shiro 框架来实现登录失败次数限制,并使用 SpringBoot 框架来实现密码加密。 密码加密是指在用户注册或...

Global site tag (gtag.js) - Google Analytics