学习了解Shiro框架
有关Shiro安全框架
实现权限的几种方式
1)通过表来实现
2)shiro框架
3)Spring Security框架
shiro有哪些主要功能
1.授权
访问控制的过程,即确定谁有权访问
2.身份认证
有时被称为“登录”
3.会话管理
特定于用户的回话管理,甚至在非WEB或EJB应用程序
4.加密
保持数据安全使用加密算法,同时仍然容易使用
详情可以查看我们Shiro的官方文档
搭建Shiro环境
搭建一个普通的Maven项目
在你的pom.xml文件导入依赖
<dependencies>
<!-- shiro框架依赖 -->
<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>
功能实现一:身份验证
实现思路
在src.main.java创建com.shiro文件夹
在你的src.main.resources创建文件shiro.ini与log4j.properties文件
shiro.ini文件
[users]
admin=123456
lisi=123
wangwu=1234
log4j.properties
#设置全局的日志配置
log4j.rootLogger=ERROR, stdout
#设置自定义的日志级别
log4j.logger.com = debug
#控制输出位置和格式 (具体怎么设置不太清楚照搬)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
在你的shiro文件夹创建类ShiroDay01.java(看代码的注释,注意类的包)
package com.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; /**
* @Classname ShiroDemo1
* @Description TODO
* @Date 2019/10/18 9:35
* @Created by 我的有趣住在无趣里
*/
public class ShiroDay01{
public static void main(String[] args) {
//SecurutyManager--->Factory
Factory<SecurityManager> factory =null;
//读取shiro.ini配置文件的信息
factory = new IniSecurityManagerFactory("classpath:shiro.ini")
//ctrl+alt+V;快速生成变量及对应的数据类型
/*factory.getInstance();*/
SecurityManager securityManager = factory.getInstance();
//当前用户:Subject
SecurityUtils.setSecurityManager(securityManager);
//当前用户
Subject user = SecurityUtils.getSubject();
//通过UsernamePasswordToken来模拟Html/jsp传递过来的用户名和密码
//修改带的参数可以对数据库的进行验证
UsernamePasswordToken token = new UsernamePasswordToken("admin","123456");
try{
//通过shiro判断用户是否登录成功
user.login(token);
System.out.println("登录成功!");
}catch (AuthenticationException e){
System.out.println("登录失败!");
}
}
}
这就是我们的身份验证,后期待更新
学习了解Shiro框架的更多相关文章
- shiro框架的学习
1shiro框架是什么:是一个权限控制的框架2shiro框架有什么作用:权限管理,管理那些资源是否需要登录才能访问.控制某些资源需要那些权限才能访问3shiro框架怎样使用: 1在web.xml配置s ...
- shiro框架学习-5-自定义Realm
1. 自定义Realm基础 步骤: 创建一个类 ,继承AuthorizingRealm->AuthenticatingRealm->CachingRealm->Realm 重写授权方 ...
- JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作
1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...
- 《shiro框架》
20170929 shiro授权流程学习 shiro-filter执行流程 CacheManager(shiro缓存管理) JEESITE登录流程简单梳理 shiro与springMVC整合 shir ...
- Shiro框架 (原理分析与简单实现)
Shiro框架(原理分析与简单实现) 有兴趣的同学也可以阅读我之前分享的:Java权限管理(授权与认证)CRM权限管理 (PS : 这篇博客里面的实现方式没有使用框架,完全是手写的授权与认证,可以 ...
- shiro框架的组成和内部结构(下一篇为spring整合shiro)
1.shiro简介 Apache Shiro是Java的一个安全框架.功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案. 实际上,Shir ...
- shiro框架总结
一.概念 shiro是一个安全框架,主要可以帮助我们解决程序开发中认证和授权的问题.基于拦截器做的权限系统,权限控制的粒度有限,为了方便各种各样的常用的权限管理需求的实现,,我们有必要使用比较好的安全 ...
- Shiro权限验证代码记录,正确找到shiro框架在什么地方做了权限识别
权限验证方式的验证代码: org.apache.shiro.web.servlet.AdviceFilter这个类是所有shiro框架提供的默认权限验证实例类的父类 验证代码: public void ...
- Java并发包源码学习之AQS框架(四)AbstractQueuedSynchronizer源码分析
经过前面几篇文章的铺垫,今天我们终于要看看AQS的庐山真面目了,建议第一次看AbstractQueuedSynchronizer 类源码的朋友可以先看下我前面几篇文章: <Java并发包源码学习 ...
随机推荐
- JAVASE知识点总结(四)
第十七章:内部类和枚举 一.内部类 1.什么是内部类? 2.为什么要有内部类? 3.内部类的种类: 5.实例内部类 6.创建实例内部类 7.实例内部类注意点 8.访问变量原则: 4 9.静态内部类: ...
- pip换源
PIP 下载慢,给你Python3的pip换个源 一键换源 文章来源:企鹅号 - 从零开始学习python 要实现一键换源需要安装一个模块 pip install pqi PQI相关命令 PQI获取当 ...
- layer.open打开一个新的jsp页面,如何关闭并刷新父页面问题
layer.open打开一个新的jsp页面弹框,如何关闭呢? 在新的页面提交完毕之后,关闭并刷新父页面列表. layer.closeAll(); parent.layer.closeAll(); wi ...
- ES 32 - Elasticsearch 数据建模的探索与实践
目录 1 什么是数据建模? 2 如何对 ES 中的数据进行建模 2.1 字段类型的建模方案 2.2 检索.聚合及排序的建模方案 2.3 额外存储的建模方案 3 ES 数据建模实例演示 3.1 动态创建 ...
- 【Git初探】Git中fatal: Not a git repository (or any of the parent directories): .git错误的解决办法
今天用git bash更新项目时遇到了无论使用什么命令都会报fatal: Not a git repository (or any of the parent directories): .git的情 ...
- ELK 学习笔记之 elasticsearch 版本控制
版本控制: elasticsearch 版本控制: 内部版本控制 外部版本控制 内部版本控制: 内部版本会检查你提供的版本值和文档的版本值是否一致,如果不一致就报错,一致则可以更新. curl -XP ...
- java核心技术36讲笔记
Java-Basic 谈谈final. finally. finalize有什么不同? 典型回答: final可以用来修饰类.方法.变量,分别有不同的意义, final修饰的class代表不可以继承扩 ...
- JSON parse error: No suitable constructor found for type
错误信息: 2019-02-19 09:17:58,678 [http-nio-8080-exec-1] WARN org.springframework.web.servlet.mvc.suppor ...
- 从 JVM 视角看看 Java 守护线程
Java 多线程系列第 7 篇. 这篇我们来讲讲线程的另一个特性:守护线程 or 用户线程? 我们先来看看 Thread.setDaemon() 方法的注释,如下所示. Marks this thre ...
- 第二篇 python进阶
目录 第二篇 python进阶 一 数字类型内置方法 二 字符串类型内置方法 三 列表类型内置方法(list) 四 元组类型内置方法(tuple) 五 字典内置方法 六 集合类型内置方法(self) ...