securitymanager

spring cloud分布式微服务-Spring Boot 整合 Shiro

自古美人都是妖i 提交于 2020-02-19 14:13:46
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。 般来说,Spring Security 和 Shiro 的比较如下: 了解springcloud架构可以加求求:三五三六二四七二五九 Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框架 Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单 Spring Security 功能强大;Shiro 功能简单 虽然 Shiro 功能简单,但是也能满足大部分的业务场景。所以在传统的 SSM 项目中,一般来说,可以整合 Shiro。 在 Spring Boot 中,由于 Spring Boot 官方提供了大量的非常方便的开箱即用的 Starter ,当然也提供了 Spring Security 的 Starter ,使得在 Spring Boot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 Spring Boot 项目,一般选择 Spring Security 。 这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。 在 Spring Boot 中整合 Shiro

SpringBoot整合Shiro

两盒软妹~` 提交于 2020-02-17 02:17:23
1. shiro简介以及功能描述 Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相 当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时 可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。 Authentication :身份认证/登录,验证用户是不是拥有相应的身份; Authorization :授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用 户对某个资源是否具有某个权限; Session Manager :会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography :加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support :Web 支持,可以非常容易的集成到 Web 环境; Caching :缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; Concurrency :shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能 把权限自动传播过去;

Spring Boot shiro+cas单点登录

夙愿已清 提交于 2020-02-16 23:27:53
Spring Boot shiro+cas单点登录 搭建Cas服务器 客户端 pom.xml 继承CasRealm application.yml UrlBean ShiroConfig 遗留问题??? 项目架构 2.1.11.RELEASE 项目源码 https://github.com/jsong93/Spring-Boot-shiro-cas-sso.git 根据SpringMVC项目改写 SpringMVC shiro+cas 单点登录 搭建Cas服务器 cas服务器搭建 md5+盐加密 客户端 pom.xml <?xml version="1.0" encoding="UTF-8"?> < 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.jsong.wiki </

springboot 引入shiro缓存及rememberMe支持

房东的猫 提交于 2020-02-14 08:02:34
来源: https://www.jianshu.com/p/22bf52e09e4d 最终demo 到这节为止,我们已经实现了身份验证和权限验证。但是,如果我们登录之后多次访问 http://localhost:8080/userInfo/userDel 的话,会发现权限验证会每次都执行一次。这是有问题的,因为像用户的权限这些我们提供给shiro一次就够了。 下面,我们开始给shiro添加缓存支持: 1.添加依赖 <!-- shiro ehcache --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.2.2</version> </dependency> <!-- 包含支持UI模版(Velocity,FreeMarker,JasperReports), 邮件服务, 脚本服务(JRuby), 缓存Cache(EHCache), 任务计划Scheduling(uartz)。 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> 2.注入缓存 在 com

springboot学习笔记:11.springboot+shiro+mysql+mybatis(通用mapper)+freemarker+ztree+layui实现通用的java后台管理系统(权限管理+用户管理+菜单管理)

安稳与你 提交于 2020-02-11 15:38:20
一.前言 今天我们用springboot集成shiro框架,实现一个可以通用的后台管理系统;包括用户管理,角色管理,菜单管理三大系统常用管理模块; 二.数据库表准备: 要想实现用户管理+角色管理+菜单管理三大模块,基本上我们常用的解决方案就是如下五个表(sql脚本在最后): 三.集成shiro和配置 1.添加pom依赖。 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> 2.编辑shiro配置类:ShiroConfig.java package com.zjt.config; import com.zjt.realm.MyRealm; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.spring.LifecycleBeanPostProcessor;

Shiro简介

杀马特。学长 韩版系。学妹 提交于 2020-02-09 18:31:09
之前在工作中有比较快速的学习过Shiro安全框架,但经过一年的荒废,已经不是很熟悉了,通过这个系列,深入研究和学习Shiro的一些知识,填补安全管理方面的知识漏洞。使我们在web 开发领域更具竞争力,不做只会CRUD的程序员! 一、Shiro介绍 Shiro是一个Java安全框架,执行身份验证、授权、密码、会话管理。Shiro是Apache 的一个开源项目,前身是JSecurity 项目,始于2003年初。 Shiro 可以为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。 shiro 解决了应用安全的四要素: 认证 - 用户身份识别,常被称为用户“登录”; 授权 - 访问控制; 密码加密 - 保护或隐藏数据防止被偷窥; 会话管理 - 每用户相关的时间敏感的状态。 同时,Shiro另外支持了一些辅助特性:如 Web 应用安全、单元测试和多线程,它们的存在强化了上面提到的四个要素。 二、Shiro的优势 从 2003 年至今,框架选择方面的情况已经改变了不少,但今天仍有令人信服的理由让你选择 Shiro。其实理由相当多,Apache Shiro: 1、易于使用 - 易用性是这个项目的最终目标。应用安全有可能会非常让人糊涂,令人沮丧,并被认为是“必要之恶”【译注:比喻应用安全方面的编程。】。若是能让它简化到新手都能很快上手,那它将不再是一种痛苦了。 2、广泛性 -

SpringBoot整合Shiro实现RememberMe

给你一囗甜甜゛ 提交于 2020-02-08 23:33:01
接上 Springboot Shiro实现用户验 shiro提供了RememberMe功能,用户登录状态不会因为浏览器的关闭而失效,知道cookie过期 更改ShiroConfig 加入cookie管理配置 /** * cookie对象 * @return */ public SimpleCookie rememberMeCookie ( ) { // 设置cookie名称,对应login.html页面的<input type="checkbox" name="rememberMe"/> SimpleCookie cookie = new SimpleCookie ( "rememberMe" ) ; // 设置cookie的过期时间,单位为秒,这里为一天 cookie . setMaxAge ( 86400 ) ; return cookie ; } /** * cookie管理对象 * @return */ public CookieRememberMeManager rememberMeManager ( ) { CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager ( ) ; cookieRememberMeManager . setCookie (

Shiro--概述、架构

北城余情 提交于 2020-02-08 20:42:21
简介 Apache Shiro是Java的一个安全(权限)框架 Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境 Shiro可以完成:认证、授权、加密、会话管理、与Web继承、缓存等。 下载: http://shiro.apache.org/ 功能简介 Authentication: 身份认证/登录,验证用户是不是拥有相应的身份; Authorization: 授权,即权限验证,验证某个已认证的用户是否具有某个权限;判断用户是否能进行什么操作,如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager: 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境,也可以是Web环境; Cryptography: 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support: Web支持,可以非常容器的集成到Web环境; Caching: 缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; Concurrency: Shiro支持多线程应用的并发验证,即在一个线程中开启另一个线程,能把权限自动传播过去; Testing: 提供测试支持; Run As:

快速学习Shiro-Shiro在SpringBoot工程的应用

无人久伴 提交于 2020-02-01 02:56:22
1 Shiro在SpringBoot工程的应用 Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验证、授权、企业会话管理和加密。越来越多的企业使用Shiro作为项目的安全框架,保证项目的平稳运行。 在之前的讲解中只是单独的使用shiro,方便对shiro有一个直观且清晰的认知,我们今天就来看一下shiro在springBoot工程中如何使用以及其他特性 1.1 案例说明 使用springBoot构建应用程序,整合shiro框架完成用户认证与授权。 1.1.1 数据库表 1.1.2 基本工程结构 导入资料中准备的基本工程代码,此工程中实现了基本用户角色权限的操作。我们只需要在此工程中添加Shiro相关的操作代码即可 1.2 整合Shiro 1.2.1 spring和shiro的整合依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2<

Shiro与Springboot整合:配置

旧街凉风 提交于 2020-02-01 00:54:28
package cn.learn.shiro.realm; import cn.learn.shiro.domain.Permission; import cn.learn.shiro.domain.Role; import cn.learn.shiro.domain.User; import cn.learn.shiro.service.UserService; import org.apache.shiro.authc.*; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.crypto.hash.Md5Hash; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashSet; import java.util.Set; /** * 自定义的realm */