- 浏览: 128287 次
- 性别:
- 来自: 北京
最新评论
-
jack9527:
aaaaaf
Apache Shiro 注解方式授权
文章列表
作者:潜行者m
编码一直是让新手头疼的问题,特别是 GBK、GB2312、UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚。但是编码又是那么重要,特别在网页这一块。如果你打出来的不是乱 ...
- 2012-11-23 15:41
- 浏览 697
- 评论(0)
云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务 (PaaS)和软件即服务(SaaS)。在国内的云平台中,新浪SAE已经完全做到对这三个层次的覆盖,可以说在国内还是领先的。百度云平台也已经涉足了 这三个层次的服务。华为云虽然仍旧处在测试阶段,但是发力云计算的决心已经很明显,为用户提供一站式服务。阿里云和盛大也在Iaas和Paas层面取得了 长足的发展,获得了用户的认可。
云计算服务提供商主要分为三种:
1、传统的IT厂商:
1)、IBM"蓝云计划"与“智慧城市”:IBM作为IT行业龙头老大,具有强大的技术研发力量和广泛的客户基础,可以为客 ...
- 2012-11-23 15:28
- 浏览 778
- 评论(0)
在安全框领域,ApacheShiro提供了一个独一无二的东西:一个完整的企业级Session解决方案,从最简单的命令行及智能手机应用到最大的集群企业Web应用程序。如果你需要session支持,你可以使用Shiro的Session支持,比Web容器或使用EJB有状态会话Bean这两种机制的使用和管理更为简单。
下面是Shiro对Session支持的一些特点:
1) POJO/J2SEbased(IoCfriendly)-Shiro的一切(包括所有Session和SessionManagement方面)都是基于接口和POJO实现。这可以让你轻松地配置所有拥有任何JavaBeans兼容配置格式( ...
- 2012-11-16 15:29
- 浏览 886
- 评论(0)
Shiro提供了一套JSP标签库来实现页面级的授权控制。
在使用Shiro标签库前,首先需要在JSP引入shiro标签:
<%@taglibprefix="shiro"uri="http://shiro.apache.org/tags"%>
下面一一介绍Shiro的标签:
guest标签
验证当前用户是否为“访客”,即未认证(包含未记住)的用户。
<shiro:guest>
Hithere!Please<ahref="login.jsp">Login</a> ...
- 2012-11-09 09:38
- 浏览 1271
- 评论(0)
除了通过API方式外,Shiro提供Java5+注解的集合,以注解为基础的授权控制。在你可以使用Java注释之前,你需要在你的应用程序中启用AOP支持。
Shiro注解支持AspectJ、Spring、Google-Guice等,可根据应用进行不同的配置。
相关的注解如下:
TheRequiresAuthenticationannotation(RequiresAuthentication注解)
要求当前Subject已经在当前的session中被验证通过才能被访问或调用。例如:
@RequiresAuthentication
publicvoidupdateAccount(A ...
- 2012-11-09 09:35
- 浏览 1457
- 评论(1)
最简单和最常见的方式来执行授权是直接以编程方式与当前Subject实例交互。
基于角色授权
Rolechecks(角色检查)
如果你只是简单的想检查当前的Subject是否拥有一个角色,你可以在Subject实例上调用hasRole方法。例如:
SubjectcurrentUser=SecurityUtils.getSubject();
if(currentUser.hasRole("administrator")){
//showtheadminbutton
}else{
//don'tshowthebutton?Greyitout?
}
相 ...
- 2012-11-09 09:32
- 浏览 655
- 评论(0)
下面详细介绍在进行授权时,Shiro的内部处理机制。
如上图,我们通过Shiro架构图的授权部分,来说明Shiro授权内部的处理顺序:
1.应用程序或框架代码调用任何Subject的hasRole*,checkRole*,isPermitted*,或者checkPermission*方法的变体,传递任何所需的权限或角色内容。
2.Subject的实例,通常是DelegatingSubject(或子类)代表应用程序的SecurityManager通过调用securityManager的各自相同的hasRole*,checkRole*,isPermitted*,或checkPermis ...
- 2012-11-02 14:08
- 浏览 580
- 评论(0)
授权即是访问控制,是对资源访问管理过程。它将判断用户在应用程序中是否对资源有相应的访问权限。比如:判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限,以及是否拥有打印的权限等等。
授权有 ...
- 2012-10-26 09:35
- 浏览 439
- 评论(0)
作者: 阮一峰
日期: 2011年4月16日
一、
1985年,芝加哥大学的Benjamin Bloom教授,出版了一本重要著作《如何培养天才》(Developing Talent in Young People)。
他研究的是,如何在青少年中发现未来的天才?
他调查了120个各 ...
- 2012-10-24 17:12
- 浏览 475
- 评论(0)
不少人一定看过《长尾理论》这本书,它是由美国《连线》杂志主编克里斯·安德森所著,阐述的是:商业和文化的未来不在于传统需求曲线上那个代表“畅销产品”的头部,而是那条“冷门商品”经常被人遗忘的长尾。比如在线书籍销售、淘宝等等,都在证明着这个理论~
但在时间管理和效率方面,它又意味着什么呢?我们先看看下面两张图:
通常我们持续专注的时间越长,精力会逐渐下降,只有开始的“头部”是效率最高的,越往后效率越低,形成效率的“长尾”
所以就会出现一种现象:一件事情在开始着手去做的时候,会迅速完成60%以上的进度,这是“头部”,但因为我们在持续工作,所以我们会经历一个效率的长 ...
- 2012-10-19 11:52
- 浏览 489
- 评论(0)
退出操作可以通过调用subject.logout()来释放你的登录信息,如:
currentUser.logout(); //removes all identifying information and invalidates their session too.
当你调用logout,任何现有的Session 都将会失效,而且任何身份都将会失去关联(例如,在Web 应用程序中,RememberMe cookie 也将被删除)。在Subject 注销后,该Subject 的实例被再次认为是匿名的。
由于在Web 应用程序记住身份往往是依靠Cookies,然而Cookie ...
- 2012-10-18 09:43
- 浏览 741
- 评论(0)
在Shiro中提供“记住我”的功能,其与已认证有着明显的区别:
l Remembered(记住我):一个记住我的Subject 不是匿名的,而且有一个已知的身份ID(也就是subject.getPrincipals()是非空的)。但是这个被记住的身份ID 是在之前的session 中 ...
- 2012-10-18 09:40
- 浏览 555
- 评论(0)
Shiro通过异常类来描述认证失败的原因,比如:
AuthenticationToken token = new UsernamePasswordToken(loginName,loginPwd);
Subject currentUser = SecurityUtils.getSubject();
try {
currentUser.login(token);
} catch (UnknownAccountException uae) {
log.info("username wasn't in the system.");
} catch ...
- 2012-10-18 09:37
- 浏览 2378
- 评论(0)
3.1.1 示例
Shiro验证Subjects 的过程中,可以分解成三个不同的步骤:
1. 收集Subjects 提交的Principals(身份)和Credentials(凭证);
2. 提交Principals(身份)和Credentials(凭证)进行身份验证;
3. 如果提交成功,则允许访问,否则重新进行身份验证或者阻止访问。
收集身份/凭据信息
//Exampleusingmostcommonscenarioofusername/passwordpair:
UsernamePasswordTokentoken=newUsernamePasswordToken( ...
- 2012-10-11 14:10
- 浏览 913
- 评论(0)
3.1.1 示例
Shiro验证Subjects 的过程中,可以分解成三个不同的步骤:
1. 收集Subjects 提交的Principals(身份)和Credentials(凭证);
2. 提交Principals(身份)和Credentials(凭证)进行身份验证;
3. 如果提交成功,则允许访问,否则重新进行身份验证或者阻止访问。
收集身份/凭据信息
//Exampleusingmostcommonscenarioofusername/passwordpair:
UsernamePasswordTokentoken=newUsernamePasswordToken( ...
- 2012-10-11 13:51
- 浏览 543
- 评论(0)