栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-09-30

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-09-30

2021SC@SDUSC

Shiro项目综述 什么是Shiro?

Apache Shiro(读作“sheeroh”,即日语“城”)是一个开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
Shiro的前身是JSecurity。
2004年,Les Hazlewood和Jeremy Haile创办了Jsecurity。当时他们找不到适用于应用程序级别的合适Java安全框架,同时又对JAAS非常失望。2004年到2008年期间,JSecurity托管在SourceForge上,贡献者包括Peter Ledbrook、Alan Ditzel和Tim Veil。
2008年,JSecurity项目贡献给了Apache软件基金会(ASF),并被接纳成为Apache Incubator项目,由导师管理,目标是成为一个顶级Apache项目。期间,Jsecurity曾短暂更名为Ki(读作“Key”),随后因商标问题被社群更名为“Shiro”。
随后项目持续在Apache Incubator中孵化,并增加了贡献者Kalle Korhonen。2010年7月,Shiro社区发布了1.0版,随后社区创建了其项目管理委员会,并选举Les Hazlewood为主席。2010年9月22日,Shrio成为Apache软件基金会的顶级项目(TLP)。

https://zh.wikipedia.org/wiki/Apache_Shiro

概述

Apache Shiro 是一个多功能的 Java 安全框架。
该框架是高度可定制的和模块化的,因为它提供了身份验证、授权、加密和会话管理。

安装说明
  1. 确保您安装了 JDK 1.8+ 和 Maven 3.0.3+。
  2. 从下载页面下载最新的“Source Code Distribution” 。
  3. 解压源码包:
$ unzip shiro-root-1.8.0-source-release.zip
  1. 进入quickstart目录:
$ cd shiro-root-1.8.0/samples/quickstart
Run the QuickStart:
$ mvn compile exec:java

这个目标只会打印出一些日志消息让你知道发生了什么,然后退出。在阅读本快速入门时,请随时查看samples/quickstart/src/main/java/Quickstart.java. 更改该文件并mvn compile exec:java根据需要经常运行上述命令。

使用说明

1. 依赖

Apache Shiro 有很多模块。但是,在此次源码分析中,我们主要对shiro-core版本进行分析,其他版本都是以shiro-core的基础上做出的延伸。

让我们将它添加到我们的pom.xml 中:


    org.apache.shiro
    shiro-core
    1.4.0

可以在 Maven Central上找到最新版本的 Apache Shiro 模块。

2. 配置安全管理器

安全管理器是 Apache Shiro框架的中心部分。一个应用程序通常只有一个安全管理器实例。
要配置框架,我们需要在资源文件夹中创建一个shiro.ini文件,内容如下:

[users]
user = password, admin
user2 = password2, editor
user3 = password3, author

[roles]
admin = *
editor = articles:*
author = articles:compose,articles:save

shiro.ini配置文件的[users]部分定义了SecurityManager识别的用户凭据。格式为:p rincipal(用户名)=密码,role1,role2,…
角色及其相关权限在[roles]部分中声明。该管理员角色被授予的权限和访问应用程序的每一个部分。这由通配符(*)表示。
在安全管理器用于配置SecurityUtils类。从SecurityUtils 中我们可以获取当前与系统交互的用户,并进行认证和授权操作。
让我们使用IniRealm从shiro.ini文件加载我们的用户和角色定义,然后使用它来配置DefaultSecurityManager对象:

IniRealm iniRealm = new IniRealm("classpath:shiro.ini");
SecurityManager securityManager = new DefaultSecurityManager(iniRealm);

SecurityUtils.setSecurityManager(securityManager);
Subject currentUser = SecurityUtils.getSubject();

现在,我们有一个安全管理器是敏感的用户凭据,并在定义的角色的shiro.ini文件,让我们继续以用户身份验证和授权。

组内分工


1. 唐子尧:shiro-core/org.apache.shiro.realm;
2. 米良:shiro-core/org.apache.shiro.mgt;
3. 郭东骞:shiro-core/org.apache.shiro.subject;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号