http://kdboy.iteye.com/blog/1103794

一、在web.xml中添加shiro过滤器

Xml代码  
  1. <!-- Shiro filter-->
  2. <filter>
  3. <filter-name>shiroFilter</filter-name>
  4. <filter-class>
  5. org.springframework.web.filter.DelegatingFilterProxy
  6. </filter-class>
  7. </filter>
  8. <filter-mapping>
  9. <filter-name>shiroFilter</filter-name>
  10. <url-pattern>/*</url-pattern>
  11. </filter-mapping>

二、在Spring的applicationContext.xml中添加shiro配置 
1、添加shiroFilter定义

Xml代码  
  1. <!-- Shiro Filter -->
  2. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  3. <property name="securityManager" ref="securityManager" />
  4. <property name="loginUrl" value="/login" />
  5. <property name="successUrl" value="/user/list" />
  6. <property name="unauthorizedUrl" value="/login" />
  7. <property name="filterChainDefinitions">
  8. <value>
  9. /login = anon
  10. /user/** = authc
  11. /role/edit/* = perms[role:edit]
  12. /role/save = perms[role:edit]
  13. /role/list = perms[role:view]
  14. /** = authc
  15. </value>
  16. </property>
  17. </bean>

2、添加securityManager定义

Xml代码  
  1. <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
  2. <property name="realm" ref="myRealm" />
  3. </bean>

3、添加realm定义

Xml代码  
  1. <bean id=" myRealm" class="com...MyRealm" />

三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法

Java代码  
  1. public class MyRealm extends AuthorizingRealm{
  2. private AccountManager accountManager;
  3. public void setAccountManager(AccountManager accountManager) {
  4. this.accountManager = accountManager;
  5. }
  6. /**
  7. * 授权信息
  8. */
  9. protected AuthorizationInfo doGetAuthorizationInfo(
  10. PrincipalCollection principals) {
  11. String username=(String)principals.fromRealm(getName()).iterator().next();
  12. if( username != null ){
  13. User user = accountManager.get( username );
  14. if( user != null && user.getRoles() != null ){
  15. SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
  16. for( SecurityRole each: user.getRoles() ){
  17. info.addRole(each.getName());
  18. info.addStringPermissions(each.getPermissionsAsString());
  19. }
  20. return info;
  21. }
  22. }
  23. return null;
  24. }
  25. /**
  26. * 认证信息
  27. */
  28. protected AuthenticationInfo doGetAuthenticationInfo(
  29. AuthenticationToken authcToken ) throws AuthenticationException {
  30. UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
  31. String userName = token.getUsername();
  32. if( userName != null && !"".equals(userName) ){
  33. User user = accountManager.login(token.getUsername(),
  34. String.valueOf(token.getPassword()));
  35. if( user != null )
  36. return new SimpleAuthenticationInfo(
  37. user.getLoginName(),user.getPassword(), getName());
  38. }
  39. return null;
  40. }
  41. }

转载于:https://www.cnblogs.com/bluejoe/p/5115962.html

基于Spring框架的Shiro配置相关推荐

  1. 实现基于Spring框架应用的权限控制系统(转)

    为什么80%的码农都做不了架构师?>>>    前注:当我摸到了通过filter拦截权限,通过AOP拦截方法,通过权限控制菜单的时候,猛然发现这一切的一切已经是别人已经发明好的轮子. ...

  2. 实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架

    对于任何一个完整的应用系统,完善的认证和授权机制是必不可少的.在基于SpringFramework的WEB应用中, 我们可以使用Acegi作为安全架构的实现.本文将介绍如何在基于Spring构架的We ...

  3. Spring框架中XML配置特殊属性注入

    Spring框架中XML配置特殊属性注入 前言 创建测试类 其他类型属性 前言 Spring框架中,在通过set方式进行属性注入时,可能会遇到某些特殊字符的注入,例如:null和某些标签字符" ...

  4. java毕业设计基于spring框架的论坛网站项目设计和源码

    一.主题 榴莲社区--java开发基于spring框架的论坛网站,基于spring框架的论坛网站项目设计和项目 源 码 免 费下 载 链 接 如 下:  毕业设计项目基于spring框架的论坛网站源码 ...

  5. java 电力 监测 系统,基于Spring框架的电力负荷管理系统[Java编程]

    赞助商链接 本文"基于Spring框架的电力负荷管理系统[Java编程]"是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自 ...

  6. 基于Spring框架的Controller中进行事务管理

    如果是Spring框架,那么会有7种传播方式: REQUIRED - 没有事务就新建立一个事务,有事务就加入当前事务: SUPPORTS - 如果当前有事务则加入,没有就以没有事务的方式执行: MAN ...

  7. 基于Spring框架的Wap门户网站设计思想(转)

    在Wap手机门户网站的程序设计过程中,我们使用了Spring 框架结构.在前台的jsp页面中,重点应用了web MVC设计思想和Spring 对JDBC的封装策略.MVC即Model –View-Co ...

  8. wsld2java_脱离spring集成cxf(基于nutz框架)

    什么是webService cxf 简单的说就是实现webService的一个比较流行的框架 http://blog.sina.com.cn/s/blog_6182547f01017pak.html ...

  9. 实战:基于 Spring 的应用配置如何迁移至阿里云应用配置管理 ACM

    最近遇到一些开发者朋友,准备将原有的Java Spring的应用配置迁移到 阿里云应用配置管理 ACM 中.迁移过程中,遇到不少有趣的问题.本文将通过一个简单的样例来还原迁移过程中遇到的问题和相关解决 ...

最新文章

  1. 银行、航空软件结构图
  2. 利用Python进行数据分析-07-汇总和计算描述统计
  3. Python Numpy中返回下标操作函数-节约时间的利器
  4. linux ip 转发设置 ip_forward
  5. 深入理解C# 静态类与非静态类、静态成员的区别
  6. java.lang包—枚举类Enum
  7. 解决vue中路由跳转同一个路径报错
  8. Dos下删除(非)空目录或文件
  9. 独家 | 腾讯无人车首次曝光,还把车子开上了四环
  10. 计算机固态硬盘序列号,固态硬盘检测工具ssdlife pro 2安装教程(附序列号)
  11. 火车票软件哪个好用_买火车票哪个软件好用 哪个软件买火车票便宜
  12. mac自带工具的抠图方法
  13. 树莓派 交叉编译工具链的安装
  14. 将titles_test表名修改为titles_2017
  15. csust2019集训队选拔赛题解
  16. vue+vue-ueditor-wrap+秀米
  17. 大一大学计算机论文摘要,大学计算机基础小论文
  18. 这4款神级软件 最好用的软件
  19. 【机房收费个人版】SqlHelper
  20. 计算机操作系统 - 概述

热门文章

  1. WebSSH2安装过程可实现WEB可视化管理SSH工具
  2. leetcode 8: 字符串转整数(atoi)
  3. CentOS新增用户并授予sudo权限
  4. jsonArray与 jsonObject区别与js取值
  5. mysql 通过echo的方式写入数据库 中文乱码解决方案
  6. 谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍
  7. 《容器技术系列》一1.4 Docker运行案例分析
  8. 到底什么是API经济
  9. ES6:Set和Map
  10. 【IOS】集成zxing(二维码扫描)