shiro

SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例

倖福魔咒の 提交于 2020-01-30 17:54:11
SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录 (?) [+] 1.前言 本文主要介绍使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例。 使用技术:SpringBoot、mybatis、shiro、thymeleaf、pagehelper、Mapper插件、druid、dataTables、ztree、jQuery 开发工具:intellij idea 数据库:mysql、redis 基本上是基于使用SpringSecurity的demo上修改而成,地址 http://blog.csdn.net/poorcoder_/article/details/70231779 2.表结构 还是是用标准的5张表来展现权限。如下图: 分别为用户表,角色表,资源表,用户角色表,角色资源表。在这个demo中使用了mybatis-generator自动生成代码。运行mybatis-generator:generate -e 根据数据库中的表,生成 相应的model,mapper单表的增删改查。不过如果是导入本项目的就别运行这个命令了。新增表的话,也要修改mybatis-generator-config.xml中的tableName,指定表名再运行。 3.maven配置 <?xml version=

教你 Shiro 整合 SpringBoot,避开各种坑(山东数漫江湖)

时间秒杀一切 提交于 2020-01-30 17:47:07
依赖包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> 数据库表 一切从简,用户 user 表,以及角色 role 表 Shiro 相关类 Shiro 配置类 @Configuration public class ShiroConfig { @Bean public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); // 必须设置 SecurityManager shiroFilterFactoryBean.setSecurityManager(securityManager); // setLoginUrl 如果不设置值,默认会自动寻找Web工程根目录下的"/login.jsp"页面 或 "/login" 映射 shiroFilterFactoryBean.setLoginUrl("/notLogin"); // 设置无权限时跳转的

Shiro——认证

ε祈祈猫儿з 提交于 2020-01-30 17:33:19
引入shiro依赖 <!-- shiro --> <dependency> <!-- shiro-core Required in all environments. --> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <!-- Enables support for web-based applications. --> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>${shiro.version}</version> </dependency> <dependency> <!-- Enables AspectJ support for Shiro AOP and Annotations. --> <groupId>org.apache.shiro</groupId> <artifactId>shiro-aspectj</artifactId> <version>${shiro.version}</version> </dependency>

springboot集成shiro实现验证码校验

守給你的承諾、 提交于 2020-01-30 17:18:14
github:https://github.com/peterowang/shiro/ 这里实现验证码校验的思路是自己添加一个Filter继承 FormAuthenticationFilter ,FormAuthenticationFilter负责表单验证,shiro会先在FormAuthenticationFilter子类去校验验证码,然后再去做身份验证。 生成验证码这里使用Google的Kaptcha框架。 1.添加依赖 <!--google的验证码框架--><dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>2.3</version></dependency> 2.拓展 UsernamePasswordToken ,将验证码包含进去: 在com.example.demo.config.Shiro包下添加以下类: package com.example.demo.config.shiro;import org.apache.shiro.authc.UsernamePasswordToken;/** * 对UsernamePasswordToken进行二次封装,将验证码加入 * Created by BFD-593 on 2017/8

【Shiro】Apache Shiro架构之集成web

随声附和 提交于 2020-01-30 16:42:44
Shiro系列文章: 【Shiro】Apache Shiro架构之身份认证(Authentication) 【Shiro】Apache Shiro架构之权限认证(Authorization) 【Shiro】Apache Shiro架构之自定义realm 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)   前面两节内容介绍了Shiro中是如何进行身份和权限的认证,但是只是单纯的进行Shiro的验证,简单一点的话,用的是.ini配置文件,也举了个使用jdbc realm的例子,这篇博文主要来总结一下Shiro是如何集成web的,即如何用在web工程中。 写在前面:本文没有使用web框架,比如springmvc或者struts2,用的是原始的servlet,使用的是.ini配置文件,旨在简单粗暴,说明问题。后面会写一些和框架整合的博文。 本文部分参考Apache Shiro的官方文档,文档地址: http://shiro.apache.org/web.html 新建一个基于maven的web工程,整个工程结构目录如下:    下面来总结一下Shiro集成web的步骤。 1. 配置 1.1 web.xml配置    Shiro如果想要集成到web中,首先需要在web.xml中配置Shiro的监听器和过滤器,如下: 1 <!-- 添加shiro支持 --> 2

shiro之 shiro整合ssm

旧城冷巷雨未停 提交于 2020-01-30 16:41:21
1. 整合ssm并且实现用户登录和菜单权限。 2. 将shiro整合到ssm中   a).添加shiro相关jar包   b).在web.xml种添加shiro的配置 <!-- 配置shirofilter 通过代理来配置,对象由spring容器来创建的,但是交由servlet容器来管理 --> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <!-- 表示bean的生命周期有servlet来管理 --> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> <init-param> <!--表示在spring容器中bean的id,如果不配置该属性,那么默认和该filter的name一致--> <param-name>targetBeanName</param-name> <param-value>shiroFilter</param-value> </init-param> </filter> <filter

使用Shiro实现认证和授权(基于SpringBoot)

三世轮回 提交于 2020-01-29 22:55:42
Apache Shiro是一个功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观,全面的身份验证,授权,加密和会话管理解决方案。下面是在SpringBoot中使用Shiro进行认证和授权的例子,代码如下: pom.xml 导入SpringBoot和Shiro依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.2</version> </dependency> </dependencies> 也可以直接导入Apache Shiro提供的starter: <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> </dependency> Shiro配置类 package com.cf.shiro1

shiro退出登陆清空缓存实现

落花浮王杯 提交于 2020-01-29 18:51:10
  上一篇介绍了使用springmvc集成shiro登陆过程(http://www.cnblogs.com/nosqlcoco/p/5579081.html),通过FormAuthenticationFilter过滤器获取到用户输入的账号密码。   shiro是一个被广泛使用的安全层框架,通过xml配置方式与spring无缝对接,用户的登陆/退出/权限控制/Cookie等管理系统基础功能交给shiro来管理。   一般,在JavaWEB管理平台系统时,用户退出系统之前没需要清除用户数据和关闭连接,防止垃圾数据堆积,shiro提供了LogoutFilter过滤器,我们可以继承LogoutFilter,重写preHandle方法,实现清除缓存功能。   spring-shiro.xml: <!-- 安全认证过滤器 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/b/login" /> <property name="successUrl" value="/b" />

Shiro缓存管理(十四)

牧云@^-^@ 提交于 2020-01-27 01:27:08
步骤 1 :添加依赖ehcache与shiro的 jar 包: <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.6.8</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.2.2</version> </dependency> 2 :在 spring-shiro.xml 文件中配置 ehcache 一些相关配置 <!-- 缓存管理器开始 --> <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <property name="cacheManager" ref="ehCacheManager"/> </bean> <bean id="ehCacheManager" class ="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name=

ssm整合shiro

风流意气都作罢 提交于 2020-01-27 01:15:44
1.shiro基础 简介 ​ Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 主要功能 三个核心组件:Subject, SecurityManager 和 Realms. Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。 Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。 SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。 Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。 从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节