- 浏览: 136549 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (172)
- java (172)
- c# winform 关于窗体最大化时的是否全屏效果与是否遮盖任务栏 (1)
- c# winform 只运行一个程序实例 (1)
- Shiro权限框架 (1)
- Java字节码(.class文件)的代码解析 (1)
- Hibernate、Spring和Struts工作原理及使用理由 (1)
- 基本PKG处理命令 (1)
- 最近写的代码的小结 (1)
- Dual Palindromes (1)
- 编译TortoiseSVN1.7源代码笔记 (1)
- Android项目代码混淆 (1)
- 关于就业叨咕几句 (1)
- Java重定向System.out和System.err (1)
- IHS与WAS集成插件静默安装 (1)
- 专题地图概述 (1)
- 关于MapXtreme2004附带Sample不能运行的问题 (1)
- SQL注入漏洞 (1)
- 回顾过去 展望未来(写给自己) (1)
- DB2认证考试经验谈(700&&701) (1)
- 今天用到了RM格式文件的分割工具RealProducer (1)
- 搜索引擎还是很有发展前途的 (1)
- 泰利德破解,实现学校机房免费上网 (1)
- Arduino 引言:移动互联外设传感展望 (1)
- c/c++ static 用法总结(三版本合一) (1)
- JQuery与xml的组合谈 (1)
- Android开发之消息处理机制(一)——Handler (1)
- Android开发之PopupWindow (1)
- 解析BitmapData.getPixel32()返回值因何不准确 (1)
- 关于Ext引用js的顺序问题 (1)
- Js事件大全 (1)
- 使用JavaFX2.0编写国际象棋游戏 (1)
- Hibernate/JPA常见异常分析与解决 (1)
最新评论
-
amcucn:
这排版看得
Shiro权限框架 -
WAMING5:
这也太紧凑了,眼看花了
Shiro权限框架 -
longzhun:
大虾 ,看得出你很懒啊!发个贴 这样子怎么看!!!
Shiro权限框架 -
swanky_yao:
活干的不细!!
Spring+Hibernate框架下Mysql读写分离、主从数据库配 -
饶首建:
不错,不过用处比较少吧
批处理设ip和dns
Shiro权限框架
Shiro权限框架开发系统中,少不了权限,目前java里的权限框架有SpringSecurity和Shiro(以前叫做jsecurity),对于SpringSecurity:功能太过强大以至于功能比较分散,使用起来也比较复杂,跟Spring结合的比较好。对于初学Spring Security者来说,曲线还是较大,需要深入学习其源码和框架,配置起来也需要费比较大的力气,扩展性也不是特别强。对于新秀Shiro来说,好评还是比较多的,使用起来比较简单,功能也足够强大,扩展性也较好。听说连Spring的官方都不用Spring Security,用的是Shiro,足见Shiro的优秀。网上找到两篇介绍:http://www.infoq.com/cn/articles/apache-shiro http://www.ibm.com/developerworks/cn/opensource/os-cn-shiro/,官网http://shiro.apache.org/ ,使用和配置起来还是比较简单。下面只是简单介绍下我们是如何配置和使用Shiro的(暂时只用到了Shiro的一部分,没有配置shiro.ini文件)。首先是添加过滤器,在web.xml中:<filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>权限的认证类:public class ShiroDbRealm extends AuthorizingRealm { @Inject private UserService userService ; /** * 认证回调函数,登录时调用. */ protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; User user= userService.getUserByUserId(token.getUsername()); if (user!= null) { return new SimpleAuthenticationInfo(user.getUserId(), user.getUserId(), getName()); } else { return null; } } /** * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用. */ protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { String loginName = (String) principals.fromRealm(getName()).iterator().next(); User user= userService.getUserByUserId(loginName); if (user != null) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); info.addStringPermission("common-user"); return info; } else { return null; } }}Spring的配置文件:<?xml version="1.0" encoding="UTF-8"?><beans > <description>Shiro Configuration</description> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="shiroDbRealm" /> </bean> <bean id="shiroDbRealm" class="com.company.service.common.shiro.ShiroDbRealm" /> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <property name="loginUrl" value="/common/security/login" /> <property name="successUrl" value="/common/security/welcome" /> <property name="unauthorizedUrl" value="/common/security/unauthorized"/> <property name="filterChainDefinitions"> <value> /resources/** = anon /manageUsers = perms[user:manage] /** = authc </value> </property> </bean> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" /> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"/> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager"/> </bean></beans>登录的Controller:@Controller@RequestMapping(value = "/common/security/*")public class SecurityController { @Inject private UserService userService; @RequestMapping(value = "/login") public String login(String loginName, String password,HttpServletResponse response, HttpServletRequest request) throws Exception { User user = userService.getUserByLogin(loginName); if (null != user) { setLogin(loginInfoVO.getUserId(), loginInfoVO.getUserId()); return "redirect:/common/security/welcome"; } else { return "redirect:/common/path?path=showLogin"; } }; public static final void setLogin(String userId, String password) { Subject currentUser = SecurityUtils.getSubject(); if (!currentUser.isAuthenticated()) { //collect user principals and credentials in a gui specific manner //such as username/password html form, X509 certificate, OpenID, etc. //We'll use the username/password example here since it is the most common. //(do you know what movie this is from? ;) UsernamePasswordToken token = new UsernamePasswordToken(userId, password); //this is all you have to do to support 'remember me' (no config - built in!): token.setRememberMe(true); currentUser.login(token); } }; @RequestMapping(value="/logout") @ResponseBody public void logout(HttpServletRequest request){ Subject subject = SecurityUtils.getSubject(); if (subject != null) { subject.logout(); } request.getSession().invalidate(); };}注册和获取当前登录用户: public static final void setCurrentUser(User user) { Subject currentUser = SecurityUtils.getSubject(); if (null != currentUser) { Session session = currentUser.getSession(); if (null != session) { session.setAttribute(Constants.CURRENT_USER, user); } } }; public static final User getCurrentUser() { Subject currentUser = SecurityUtils.getSubject(); if (null != currentUser) { Session session = currentUser.getSession(); if (null != session) { User user = (User) session.getAttribute(Constants.CURRENT_USER); if(null != user){ return user; } } } };需要的jar包有3个:shiro-core.jar,shiro-spring.jar,shiro-web.jar。感觉shiro用起来比SpringSecurity简单很多。QQ:24889356
评论
3 楼
amcucn
2011-12-05
这排版看得
2 楼
WAMING5
2011-12-05
这也太紧凑了,眼看花了
1 楼
longzhun
2011-12-05
大虾 ,看得出你很懒啊!发个贴 这样子怎么看!!!
发表评论
-
Hibernate/JPA常见异常分析与解决
2012-02-07 17:24 14681. ClassNotFoundException: ... -
使用JavaFX2.0编写国际象棋游戏
2012-02-07 16:24 1058前面发布了不少Javafx2的教程,不觉手痒,想尝试一 ... -
Js事件大全
2012-02-04 15:34 746一般事件 事件 ... -
关于Ext引用js的顺序问题
2012-02-02 15:49 719今天自己搞了个ext的helloworld,所需的包都 ... -
解析BitmapData.getPixel32()返回值因何不准确
2012-02-02 12:29 955<div style="widt ... -
Android开发之PopupWindow
2012-01-31 13:48 1647<h1>Android开发之PopupWi ... -
Android开发之消息处理机制(一)——Handler
2012-01-11 15:19 1129<h1>Android开发之消息处理机制( ... -
JQuery与xml的组合谈
2011-12-21 17:18 770JQuery与xml的组合谈 今天谈的是XML,学ja ... -
c/c++ static 用法总结(三版本合一)
2011-12-21 10:34 784<span style="&qu ... -
Arduino 引言:移动互联外设传感展望
2011-12-20 14:08 1295作者:mznewfacer (Wolf Geek) ... -
泰利德破解,实现学校机房免费上网
2011-12-20 13:58 920泰利德破解,实现学校机房免费上网<br> ... -
搜索引擎还是很有发展前途的
2011-12-19 11:49 925相信大家已经听说,在头几天,搜狐推出了一个专业搜索门户 ... -
今天用到了RM格式文件的分割工具RealProducer
2011-12-19 09:19 671项目要加一些视频文件,这些视频都是几个老师对数据结构课 ... -
DB2认证考试经验谈(700&&701)
2011-12-16 17:17 1078很多人都通过了D ... -
回顾过去 展望未来(写给自己)
2011-12-15 16:19 1447本来想用“昨天今天明天”做标题来着,但是人家本山大叔说 ... -
SQL注入漏洞
2011-12-15 12:19 690CSDN上的ASP.NET电子杂志下载下来看,就看到了 ... -
关于MapXtreme2004附带Sample不能运行的问题
2011-12-15 10:54 646</span> -
专题地图概述
2011-12-14 12:49 801<p class="MsoNorma ... -
IHS与WAS集成插件静默安装
2011-12-14 12:04 934<span style="col ... -
Java重定向System.out和System.err
2011-12-13 14:49 1140<div>继承PrintStream类: ...
相关推荐
在项目中集成shiro权限框架 Shiro是一个功能强大的轻量级权限框架,相对其它权限框架(比如spring security)来说,要易用得很,下面,我给大家讲讲如何在一个项目中简单整合shiro。 我们通常所说的权限,就是要...
Shiro是一个强大且易用的Java平台的开源权限框架,用于身份验证、授权、加解密和会话管理,它使用简单,可以快速、轻松地让任何应用程序获得如下需求的支持: (1)用户,角色,权限,资源; (2)用户分配角色,...
shiro权限框架文档 shiro是一个强大而灵活的开源框架 可以非常清晰的处理认证、授权、管理会话、以及密码加密等
Shiro 权限框架使用总结,shiro入门级的文档资料。
Shiro是一款专门做角色权限的框架 值得学习
2、shiro权限框架的核心组件 3、springboot下shiro的使用 4、shiro认证鉴权的缓存机制 5、分布式下使用shrio处理统一会话 6、密码重试次数,并发登录控制 7、前后端分离的鉴权方式 8、...
shiro 权限框架学习资料, 从最基本的maven 工程到springboot 的整合, 再到一个通用的RBAC 权限框架模板的设计与创作, 包括视频, 源码, 资料, 稳定, 笔记, 软件, 依赖等等
2、shiro权限框架的核心组件;3、springboot下shiro的使用; 4、shiro认证鉴权的缓存机制;5、分布式下使用shrio处理统一会话;6、密码重试次数,并发登录控制;7、前后端分离的鉴权方式;8、建立分布式统一鉴权系统...
因为项目过大,所以将项目所需要的jar包全部放在百度云盘中,云盘链接:https://pan.baidu.com/s/1kUXlPrh 如果有问题请及时留言,本人运行没有问题的
Java SSM+Shiro权限框架
SpringBoot整合Shiro权限框架,可以参考我的博客文章进行学习https://blog.csdn.net/sujin_/article/details/80558287
使用spingmvc、shiro权限框架做的一个小例子,例子是基于简单的SpringMvc和shiro的配置完成,动态分配权限也写的相对简单,主要是在RememberMe中想在关闭网页后下次自动获取登录这点本人比较模糊,希望有大虾指点...
在一次项目中,用到了apache的shiro权限框架。然后自己写了一个Demo,如果有需要的都可以自己下载,有什么不懂的地方可以加我QQ:9885465。给你详细的解答
sssm+shiro权限管理框架,能直接用,样式需要自己去做
shiro权限框架,数据库mysql,框架用的是springmvc+mybatis+maven部署直接可用
shiro权限框架自定义Realm示例
综合网上资料,完成JFinal2.0整合shiro权限框架的demo,demo完整,简单好用
第一套shiro企业级权限整合spring 第二套基于springboot权限shiro框架 第三套套shiro基于ssm框架整合 第四套实战简单shiro权限管理系统项目案例实战
Spring mvc、 mybatis、 easyui、 ueditor、 shiro 权限框架开发吉客多后台管理系统
Apache Shiro 是 Java 的一个安全框架。我们经常看到它被拿来和 Spring 的 Security 来对比。大部分人认为 Shiro 比 Security 要简单