shiro

Spring Boot整合Shiro

两盒软妹~` 提交于 2020-01-08 02:35:28
概述 4A(认证Authentication、授权Authorization、账号Account、审计Audit)是现代任何IT系统中很基础但非常重要的部分,无论是传统管理信息系统还是互联网项目,出于保护业务数据和应用自身的安全,都会设计自己的登录和资源授权策略。最近项目中需要登录和权限相关的功能,项目为spring-boot工程,现在流行的权限验证框架有shiro和spring-security,shiro相对spring-security来说学习难度要低一点,也是比较成熟的产品,因此选择shiro作为项目的权限验证框架。 步骤 添加依赖 spring boot的版本为2.1.7.RELEASE。如果大量依赖spring的项目,可以用https://start.spring.io/ patchca是验证码部分 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7.RELEASE</version> </parent> shiro-spring是用的最新的版本。patchca是用于验证码。 <dependencies> <dependency> <groupId>org

Spring Boot 入门 Spring Boot 整合Shiro登录认证

我怕爱的太早我们不能终老 提交于 2020-01-07 13:07:31
Spring Boot 入门整合目录 SpringBoot 整合Shiro登录认证 shiro介绍 shiro的三大组件 Subject 即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。 SecurityManager 它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务 Realms Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。 Authentication 和 Authorization Authentication 认证,是验证用户身份的过程。Authenticator 认证器 Authorization 授权,是授权访问控制,用于对用户进行的操作进行认证授权,证明 该用户是否允许进行当前操作,如访问某个链接,某个资源文件等。Authrizer:授权器, 或者访问控制器 引入shiro依赖 < dependency > < groupId > org.apache.shiro </ groupId >

Shiro error redirection

折月煮酒 提交于 2020-01-07 03:53:09
问题 How can I make Shiro redirect errors in a Web app? I have configured my web.xml <error-page> <error-code>500</error-code> <location...</location> </error-page> <error-page> <error-code>404</error-code> <location>...</location> </error-page> And it works fine. But when Shiro is active and I raise a 500 error on purpose the page stays blank. 回答1: I think I got it... It was blank because the method onAccessDenied() was returning false wherever a problem happened. To fix it, one possible solution

SpringBoot整合Shiro 涉及跨域和@Cacheable缓存/@Transactional事务注解失效问题(五)

允我心安 提交于 2020-01-06 16:58:20
1. 跨域(多出现在前后端分离项目中)   (1) 跨域介绍可参考 : 跨域(CORS)   (2) SpringBoot中解决跨域方式有:     A. 使用@CrossOrigin注解;     B. 实现Filter类,重写doFilter方法 package com.ruhuanxingyun.config; import cn.hutool.core.util.StrUtil; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebFilter(filterName

Springboot整合Shiro安全框架

半世苍凉 提交于 2020-01-06 03:17:04
最近在学习Springboot,在这个过程中遇到了很多之前都没有技术知识,学习了一阵子,稍微总结一些。 ---- Shiro框架 shiro框架,是一个相对比较简便的安全框架,它可以干净利落地处理身份验证、授权、企业会话管理和加密。 在此引入网上众多资料,归总shiro大致框架如下: Subject: 主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者 Shiro SecurityManager: 管理所有Subject,SecurityManager 是 Shiro 架构的核心,配合内部安全组件共同组成安全伞. Realm: 用于进行权限信息的验证,我们自己实现。Realm 本质上是一个特定的安全 DAO:它封装与数据源连接的细节,得到Shiro 所需的相关的数据。在配置 Shiro 的时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization) 在主要开发上,我将Shiro的实际应用归结成两大块,其一是关于shiro的一些配置信息

spring整合shiro框架

橙三吉。 提交于 2020-01-06 03:16:49
上一篇文章已经对shiro框架做了一定的介绍,这篇文章讲述使用spring整合shiro框架,实现用户认证已经权限控制 1.搭建环境 这里不在赘述spring环境的搭建,可以简单的搭建一个ssm框架,整合后进行简单的测试 1.1 添加依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> <!--shiro核心包--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> 1.2 web.xml配置 在web.xml中添加如下过滤器,注意filter-name的值是shiroFilter <!-- Shiro Security filter filter-name这个名字的值将来还会在spring中用到--> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter

细说shiro之一:shiro简介

╄→гoц情女王★ 提交于 2020-01-05 09:00:50
官网: https://shiro.apache.org/ 一. Shiro是什么 Shiro是一个Java平台的开源权限框架,用于认证和访问授权。具体来说,满足对如下元素的支持: 用户,角色,权限(仅仅是操作权限,数据权限必须与业务需求紧密结合),资源(url)。 用户分配角色,角色定义权限。 访问授权时支持角色或者权限,并且支持多级的权限定义。 Q:对组的支持? A:shiro默认不支持对组设置权限。 Q:是否可以满足对组进行角色分配的需求? A:扩展Realm,可以支持对组进行分配角色,其实就是给该组下的所有用户分配权限。 Q:对数据权限的支持? 在业务系统中定义? A:shiro仅仅实现对操作权限的控制,用于在前端控制元素隐藏或者显示,以及对资源访问权限进行检查。数据权限与具体的业务需求紧密关联,shiro本身无法实现对数据权限的控制。 Q:动态权限分配? A:扩展org.apache.shiro.realm.Realm,支持动态权限分配。 Q:与Spring集成? A:可以支持与Spring集成,shiro还支持jsp标签。 二. 系统架构 在shiro架构中,有3个最主要的组件:Subject,SecurityManager,Realm。 Subject本质上就是当前访问用户的抽象描述。 SecurityManager是Shiro架构中最核心的组件

SasSHRM中基于shiro的认证授权:测试认证

流过昼夜 提交于 2020-01-04 11:19:34
package com.learn.common.controller; import com.learn.domain.system.response.ProfileResult; import io.jsonwebtoken.Claims; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.PrincipalCollection; import org.apache.shiro.subject.Subject; import org.springframework.web.bind.annotation.ModelAttribute; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class BaseController { protected HttpServletRequest request; protected HttpServletResponse response; protected String companyId; protected String companyName; protected Claims

shiro的内部体系结构

怎甘沉沦 提交于 2020-01-01 17:33:47
Shiro的内部结构 Subject :主体,可以看到主体可以是任何可以与应用交互的“用户”; SecurityManager :相当于SpringMVC中的DispatcherServlet或者Struts2中的FilterDispatcher;是Shiro的心脏;所有具体的交互都通过SecurityManager进行控制;它管理着所有Subject、且负责进行认证和授权、及会话、缓存的管理。 Authenticator :认证器,负责主体认证的,这是一个扩展点,如果用户觉得Shiro默认的不好,可以自定义实现;其需要认证策略(Authentication Strategy),即什么情况下算用户认证通过了; Authrizer :授权器,或者访问控制器,用来决定主体是否有权限进行相应的操作;即控制着用户能访问应用中的哪些功能; Realm :可以有1个或多个Realm,可以认为是安全实体数据源,即用于获取安全实体的;可以是JDBC实现,也可以是LDAP实现,或者内存实现等等;由用户提供;注意:Shiro不知道你的用户/权限存储在哪及以何种格式存储;所以我们一般在应用中都需要实现自己的Realm; SessionManager :如果写过Servlet就应该知道Session的概念,Session呢需要有人去管理它的生命周期,这个组件就是SessionManager

shiro介绍

十年热恋 提交于 2020-01-01 16:08:53
什么是Shiro 什么是Shiro Apache Shiro是一个强大且易用的Java安全框架,执行 身份验证、授权、密码和会话管理 。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应该尽可能掩盖复杂的地方,露出一个干净而直观的 API,来简化开发人员在使他们的应用程序安全上的努力。以下是你可以用 Apache Shiro 所做的事情: 验证用户来核实他们的身份 对用户执行访问控制,如:判断用户是否被分配了一个确定的安全角色 判断用户是否被允许做某事 在任何环境下使用 Session API,即使没有 Web 或 EJB 容器。 在身份验证,访问控制期间或在会话的生命周期,对事件作出反应。 聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户“视图”。 启用单点登录(SSO)功能。 为没有关联到登录的用户启用"Remember Me"服务 与Spring Security的对比 Shiro: Shiro较之 Spring Security,Shiro在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势。 1. 易于理解的 Java Security API; 2. 简单的身份认证(登录)