shiro

Shiro与CAS整合实现单点登录

匿名 (未验证) 提交于 2019-12-02 21:53:52
1.简介 CAS:Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法. Shiro:Apache Shiro是Java的一个安全框架,可以帮助我们完成认证、授权、会话管理、加密等,并且提供与web集成、缓存、rememberMed等功能. * Shiro支持与CAS进行整合使用. 2.CAS Server搭建 参考: https://www.cnblogs.com/funyoung/p/9234947.html 3.CAS Client搭建 3.1 添加Shiro自身以及整合CAS的相关依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-cas</artifactId> <version>1.4.0</version> </dependency> 在web.xml中配置DelegatingFilterProxy并指定targetBeanName. <filter> <filter-name>shiroFilter<

shiro + jwt 实现 rememberMe 超时功能

匿名 (未验证) 提交于 2019-12-02 21:53:52
  上一篇提出, 通过修改 rememberMe 的编码来实现 rememberMe的功能的设想, 事后我去尝试实现了一番, 发现太麻烦, 还是不要那么做吧. 程序还是要越简单越好.   so, 换条路试试: 实现: 一. jwt帮助类 import ccdc.zykt.model.vo.UserExt; import io.jsonwebtoken.Jwt; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.impl.DefaultClaims; import org.apache.commons.lang.time.DateUtils; import org.apache.shiro.codec.Base64; import java.util.Date; public class JWTUtil { private static final String KEY = Base64.encodeToString("jwt.key".getBytes()); public static String createJWT(String token) { Date now = new Date(); return Jwts.builder()

JeeSite 访问控制权限

匿名 (未验证) 提交于 2019-12-02 21:53:52
  在各种后台系统中都会涉及到权限的管控,从功能权限的管控,到数据权限的管控,都是为了让系统的在使用的过程中更加的安全。功能权限管控是对针对不同的角色可以进行不同的功能操作,而数据权限管控是针对不同的角色可以查看不同的数据。这篇文章主要介绍 JeeSite 中对功能权限的管控,也就是访问控制权限的使用,关于数据权限的部分有空再接着整理。 从手册开始   JeeSite 开源项目集成了 shiro 这个权限控制框架,我本身不了解 shiro ,但是不了解 shiro 是不影响使用的 JeeSite 的功能权限管理的。先来看看 JeeSite 手册对权限这部分的介绍,引用手册内容如下图。   从手册上看, JeeSite 的功能权限控制需要进行四个方面的设置,分别是给 Controller 的方法添加权限标志,在菜单中设置权限标识,在代码中判断权限,当然还有是在视图中添加权限标签。 给方法添加权限标志   给方法添加标志这部分是至关重要的一步,它标志着访问该 Controller 方法时的权限,一般在使用代码生成工具时,默认会生成 view 和 edit 两种权限,分别对应着“查看”和“修改”的权限。在 Controller 中完全可以自己定义其他类型的权限,比如 import 、 export 等。 菜单中设置权限标志   这一步是在添加菜单时完成的。添加菜单的页面如下:  

shiro

匿名 (未验证) 提交于 2019-12-02 21:53:32
shiro(java安全框架)     以下都是综合之前的人加上自己的一些小总结     Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 Shiro 主要分为来个部分就是认证和授权,在个人感觉来看就是查询数据库做相应的判断而已,Shiro只是一个框架而已,其中的内容需要自己的去构建,前后是自己的,中间是Shiro帮我们去搭建和配置好的     个人认为需要看一下其中的一些源码,更有帮助的深入的去了解Shiro的原理。 Shiro的主要框架图: subject securityManager securityManager authenticator authenticator authorizer authorizer sessionManager web web session shiro session SessionDao SessionDao session session sessionDao cache Manager session cacheManager ehcache realm realm 方法类的走向: 对一些其中的方法的简单说明: Subject Subject即主体

CAS单点登录的原理

匿名 (未验证) 提交于 2019-12-02 21:53:32
1.首先了解几个概念   1)、TGC:Ticket-granting cookie,存放用户身份认证凭证的cookie,在浏览器和 CAS 2)、TGT:ticket granting ticket,TGT对象的ID就是TGC的值,在服务器端,通过TGC查询TGT。TGT封装了TGC值以及此Cookie值对应的用户信息。 3)、ST:service ticket,CAS为用户签发的访问某一service的票据,ST是TGT签发的。 2.单点登录的流程 现在有系统A、系统B、认证中心。 用户首次访问系统A的时候: 1)用户通过浏览器访问系统A https://localhost:8443/spring-shiro-cas/index,系统A取不到局部session,这时候系统A需要做一个额外的操作,就是重定向到认证中心 2)请求 https://localhost:8443/cas-server/login? service = https://localhost:8443/spring-shiro-cas/cas ,认证中心看浏览器有没有携带TGC,一看没有,返回cas login form让用户登录。 service url(在cas客户端也就是系统A配置) ,将来通过服务端认证后,还要重定向到系统A。/cas是拦截器的地址,接收cas服务端票据

Apache Shiro

匿名 (未验证) 提交于 2019-12-02 20:45:55
Apache Shiro是一个灵活强大的开源安全框架。它能处理认证、授权、企业session管理以及加密。 Apache Shiro的初衷是简单上手易于理解。 Shiro旨在在各种应用环境(小到命令行应用,大到企业级应用)实现以上功能,无需第三方依赖,容器或应用服务。当然需要的话可以集成到这些环境。 Apache Shiro的功能: 核心功能: Authentication(认证):解决登录问题 Authorization(授权):解决权限控制问题,就是某人有权限访问哪些内容 Session Management (会话管理): 管理用户的会话 Cryptography(加密):使用加密算法确保数据安全 附加功能: web support API能很简单的保护web 应用 caching能够使安全操作更高效 并发 测试框架,能实现安全方面的单元测试以及集成测试。 “Run as”:这里我理解为用户角色切换 “Remember Me”:这里我理解为在浏览器登录过一次,下次就无需再登录了 Authentication: 校验用户身份,确保应用被真实的身份访问 Authorization: 也叫权限控制,决定用户哪些内容可以访问,哪些内容不能访问,通常使用角色role以及权限permissions来实现。 Cipher: 加密解密算法。 Credential: 中文翻译为证书

Shiro和Spring Security对比

匆匆过客 提交于 2019-12-02 20:23:31
Shiro简介 Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。 Shiro架构与功能介绍 认证与授权相关基本概念 两个基本的概念 安全实体:系统需要保护的具体对象数据 权限:系统相关的功能操作,例如基本的CRUD Authentication: 身份认证/登录,验证用户是不是拥有相应的身份; Authorization: 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager: 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography: 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support: Web支持,可以非常容易的集成到Web环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色

Shiro学习之路 Hello Shiro(一)

旧城冷巷雨未停 提交于 2019-12-02 20:11:41
由于最近自己的项目需要加入权限的功能所以使用Shiro整合Spring mvc来实现。 Shiro简介 Shiro是一个拥有许多综合性的程序安全框架。有非常方便的身份认证、授权、企业会话管理和加密。 Shiro可以为我们做什么: 验证用户来核实他们的身份。 对用户执行访问控制,如: 判断用户是否被分配一个确定的安全角色。 判断用户是否被允许做某事。 在任何环境下使用Session API,即使没有Web或EJB容器。 在身份验证、访问控制期间、会话的生命周期,对事件作出反应。 启用单点登录功能。。。。 Shiro 把 Shiro 开发团队称为“应用程序的四大基石”——身份验证,授权,会话管理和加密作为其目标。 Authentication:有时也简称为“登录”,这是一个证明用户是他们所说的他们是谁的行为。 Authorization:访问控制的过程,也就是决定“谁”去访问“什么”。 Session Management:管理用户特定的会话,即使在非 Web 或 EJB 应用程序。 Cryptography:通过使用加密算法保持数据安全同时易于使用。 也提供了额外的功能来支持和加强在不同环境下所关注的方面,尤其是以下这些: Web Support:Shiro 的 web 支持的 API 能够轻松地帮助保护 Web 应用程序。 Caching:缓存是 Apache Shiro

[翻译-Shiro]-Apache Shiro 框架解析

瘦欲@ 提交于 2019-12-02 20:11:29
译者:刘晓日 Apache Shiro设计理念是用直观、简单的方式来保证应用的安全。 软件设计通常是基于用户故事来实现的,也就是会根据用户如何与系统交互来设计用户接口或者服务API。比如这样一个用户故事,用户登录后会显示一个查看个人账户信息的按钮,如果用户未注册,则显示一个注册按钮。 这个用户故事暗含了应用主要应完成的用户需求。即使这里的用户不是人而是第三方系统,在编码时也同样当做与系统交互的“用户”来处理。 Apache Shiro的这种理念反应在自己的设计中,通过将直观的概念暴露给开发人员,使得Apache Shiro在几乎所有的应用中都易于使用。 概述 Shiro有三个主要的顶级概念:Subject、SecurityManager、Realms。下图描述了这几个概念之间的交互,下面也将一一做介绍。 Subject:Subject是当前用户在安全领域的一个缩影。User通常暗含人的意思,而Subject可以是人,可以是第三方服务,守护账户,corn作业。或者说是任何与系统交互的都可以叫做Subject。 所有的Subject实例都必须绑定到一个SecurityManager,这样当与Subject交互时,其实已经转化成与这个Subject相关联的SecurityManager进行交互。 SecurityManager:SecurityManager作为Shiro框架的核心,作为

Shiro权限框架简介

删除回忆录丶 提交于 2019-12-02 20:10:53
最近加入了gxpt项目组,被安排做权限模块,所以也有幸第一次接触到了Shiro框架。让我们来一起领略Shiro的风采吧。 什么是Apache Shiro? Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。 你可以用 Apache Shiro做下面的事情: 验证用户 对用户执行访问控制,如: 判断用户是否拥有角色admin 判断用户是否拥有访问的权限 在任何环境下使用 Session API 可以使用多个用户数据源。例如一个是oracle用户库,另外一个是mysql用户库 单点登录(SSO)功能 “Remember Me”服务 ,类似购物车的功能,shiro官方建议开启 Shiro要想做成以上的事情,主要依赖于4大API : Authentication —— 认证,用户身份识别,常被称为用户“登录”,who are you? Authorization —— 授权,访问控制过程,决定“谁”访问“什么”,who can do what? Session Management —— 会话管理,用户session管理器,用户相关的时间敏感的状态 Cryptography —— 密码加密