将Shiro作为应用的权限基础

前言

Shiro 是 JAVA 世界中新近出现的权限框架,较之 JAAS 和 Spring Security,Shiro 在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势。本文就带领读者一睹 Shiro 的风采。

可能大家早先会见过 J-security,这个是 Shiro 的前身。在 2009 年 3 月初之前,这个安全框架叫做 J-security,由于某些原因,更名为 Shiro(或者 Ki,意为 Fortress),是 Apache 的孵化项目,鉴于本文编写时 Shiro 的还没有正式发布的版本,本文使用的是 Jsecurity 的稳定版本 0.9,本文中 Shiro 等同于 Jsecurity。

本文将涉及 Shiro 的整体框架、安全模型、关键概念类,同时给出了 Shiro 以及 Grails Shiro Plugin 的使用示例,可以下载文中使用的源代码。

本文代码的开发环境:

Jsecurity 0.9

Grails 1.2.0

Grails Shiro Plugin 1.0.1

SpringSource Tool Suite 2.3

Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。如下是它所具有的特点:

易于理解的 Java Security API;

简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory 等);

对角色的简单的签权(访问控制),支持细粒度的签权;

支持一级缓存,以提升应用程序的性能;

内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;

异构客户端会话访问;

非常简单的加密 API;

不跟任何的框架或者容器捆绑,可以独立运行。

目前还有其他出现较早的安全框架,比如 JAAS,Spring Security。

JAAS —面世的时间最早,但是鉴于其在使用上有很大的限制,很少有人真正的使用它。可以说它不是一个好的应用程序级别的安全框架;

Spring Security —目前是 Java 安全框架领域当之无愧的老大,已经非常成熟了;如果使用 Spring 框架,可以首选 Spring Security,但是对于单应用来说,Shiro 更显简单方便。

下面就开始我们的 Shiro 之旅吧!

时间: 2024-08-03 11:45:53

将Shiro作为应用的权限基础的相关文章

Linux用户及权限基础 5 Linux帐号管理与ACL权限设置

一 Linux的帐号与用户组 1 每个登录的用户至少都会取得两个ID,一个是用户ID简称UID,一个是用户组ID简称GID 2 每一个文件都会有所谓的所有者ID与用户组ID,当我们有要显示文件属性的需求时,系统会依 据/etc/passwd与/etc/shadow的内容找到对应的帐号和组名在显示出来 3 /etc/passwd的文件结构每一行代表的是一个帐号,有几行就代表有几个帐号在你的系统中,不过 需要注意的是里面有很多的帐号本来就是系统正常运行所需要的,我们可以简称它为系统帐号,这些帐 号无

Linux用户及权限基础 4 Linux下修改密码

1 对于刚使用Linux的同学来说,最痛苦的一件事莫过于要使用root用户来执行某些命令的时候,却 不知道root的密码 2 我就就介绍一下怎么更改普通用户和root用户的密码 1 更改root的密码 1 首先要跟大家申明的一点就是Linux系统的root用户默认是没有密码的 2 我们可以去查看/etc/shadow 下的root用户对应的密码为!,那就是默认没有密码 3 我们接下来就开始修改root用户的密码 1 第一步:我们要以普通用户的身份登录,并且这个普通用户可以利用sudo来执行管理员

Linux用户及权限基础 3 Linux扩展权限

1 默认权限 1 每一个终端都有一个umask权限来确定新建文件和新建文件夹的默认权限 2 umask使用数字权限来表示,比如022 3 目录的默认权限是777-umask,文件的默认权限是666-umask 4 普通用户的umask是0002,root用户的umask是022 5 那么新建文件的权限为666-0002 = 664 => rw-rw-r-- 比如我在家目录下创建一个新的文件名叫LinuxCast.net 那么新建文件夹(目录)的权限为777-0002 = 775 => rwxr

Linux用户及权限基础 2 Linux权限

1 权限 1 权限是操作系统用来限制对资源的访问的机制,权限一般分为三种,读,写,执行.操作系统中每 一个文件都有特定的权限,所属的用户和所属的组,通过的这样的机制来限制哪些用户,哪些组可以对 特定的文件进行什么样的操作 2 每一个进程都是以某个用户的身份登录运行,所以进程的权限与该用户的权限一样,用户的权限大 ,该进程拥有的权限就大 3 文件权限 权限           对文件的影响              对目录的影响 r 读取       可读取文件内容         可列出目录的内

Linux用户及权限基础 1 Linux用户基础

1 用户和组 1 当我们使用Linux的时候我们都需要以用户的身份登录,一个进程也需要用户的身份运行 2 我们使用用户的目的就是为了限制使用者或者进程哪些资源可以使用或者不可以使用 3 组的相关信息 1 每个用户拥有一个UserID,操作系统使用的实际上是UserID,而不是用户名 2 每一个用户属于一个主组,还可以属于一个或者多个附属组 3 每一个组拥有一个GroupID 4 每一个进程必须要以用户的身份运行,并受该用户的权限影响使用资源 5 每个可登录的用户都有一个可用的shell 4 用户

Linux用户及权限基础 6 ---- linux umask使用详解

 原文转载自:http://blog.csdn.net/lmh12506/article/details/7281910    umask使用方法 A 什么是umask? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限"补码",而chmod设置的是文件权限码.一般在/etc/profile.$ [HOME]/.bash_profile或

基于url权限管理 shiro基础

什么是权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包括用户认证和授权两部分. 用户认证 概念 用户认证,用户去访问系统,系统要验证用户身份的合法性.最常用的用户身份验证的方法: 1.用户名密码方式 2.指纹打卡机 3.基于证书验证方法 系统验证用户身份合法,用户方可访问系统的资源. 用户认证流程 关键对象 subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统

Apache Shiro功能强大并且容易集成的开源权限框架

关于 Shiro 的一系列特征及优点,很多文章已有列举,这里不再逐一赘述,本文重点介绍 Shiro 在 http://www.aliyun.com/zixun/aggregation/1.html">Web Application 中如何实现验证码认证以及如何实现单点登录. 用户权限模型 在揭开 Shiro 面纱之前,我们需要认知用户权限模型.本文所提到用户权限模型,指的是用来表达用户信息及用户权限信息的数据模型.即能证明"你是谁?"."你能访问多少受保护资源

Apache Shiro

Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证.授权.加密.会话管理等功能.认证和授权为权限控制的核心,简单来说,"认证"就是证明你是谁? Web 应用程序一般做法通过表单提交用户名及密码达到认证目的."授权"即是否允许已认证用户访问受保护资源.关于 Shiro 的一系列特征及优点,很多文章已有列举,这里不再逐一赘述,本文重点介绍 Shiro 在 Web Application 中如何实现验证码认证以及如何实现单点登录. 14 评论