1、导入shiro相应jar包,也可下载shiro-all.jar;

2、web.xml添加shiroFilter配置,类似于mvc

 <!-- shiro 安全过滤器--><filter><filter-name>shiroFilter</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class><async-supported>true</async-supported><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><dispatcher>REQUEST</dispatcher></filter-mapping>

3、添加shiro配置文件,在spring-conf.xml导入

<import resource="classpath*:conf/spring-shiro.xml"/> 
<description>Shiro安全配置</description><!-- 扫描service注入realm --><context:component-scan base-package="com.myssm.yuan.service" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/></context:component-scan><!--securityManager是shiro的核心,初始化时协调各个模块运行--><bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"><!--单个realm使用realm,如果有多个realm,使用realms属性代替--> <property name="realm" ref="userRealm" /><property name="cacheManager" ref="shiroEhcacheManager" /></bean><!--realm配置,realm是shiro的桥梁,它主要是用来判断subject是否可以登录及权限等--><bean id="userRealm" class="com.myssm.yuan.shiro.UserRealm" /><!-- <property name="userService" ref="userService"/></bean> 不扫描可采用此方法注入--><!--shiro过滤器配置,bean的id值须与web中的filter-name的值相同--><bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"><property name="securityManager" ref="securityManager" /><!-- 没有权限或者失败后跳转的页面 --><property name="loginUrl" value="/login.jsp" /> <property name="successUrl" value="/WEB-INF/page/index.jsp" /><property name="unauthorizedUrl" value="/login/unauthorized" /><property name="filterChainDefinitions"><value>/login/logout=logout/login/**=anon/**=authc,rest</value></property></bean><!-- 用户授权/认证信息Cache, 采用EhCache 缓存 --><bean id="shiroEhcacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"><property name="cacheManagerConfigFile" value="classpath:conf/ehcache-shiro.xml"/></bean><!-- 保证实现了Shiro内部lifecycle函数的bean执行 --><bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

3.1 添加shiro缓存配置文件

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"><diskStore path="java.io.tmpdir"/><defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="900" timeToLiveSeconds="1800" overflowToDisk="false" memoryStoreEvictionPolicy="LFU" /><cache name="testEhcache" maxElementsInMemory="10000" eternal="false"overflowToDisk="false" timeToIdleSeconds="900"timeToLiveSeconds="1800"memoryStoreEvictionPolicy="LFU" /></ehcache>

4、添加配置文件中配置的自定义realm,继承AuthorizingRealm

/** * 授权* <p>Title: doGetAuthorizationInfo</p> * <p>Description: </p> * @param principals* @return * @see org.apache.shiro.realm.AuthorizingRealm#doGetAuthorizationInfo(org.apache.shiro.subject.PrincipalCollection) */@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();//未进行授权处理return authorizationInfo;}/** * 认证* <p>Title: doGetAuthenticationInfo</p> * <p>Description: </p> * @param token* @return* @throws AuthenticationException * @see org.apache.shiro.realm.AuthenticatingRealm#doGetAuthenticationInfo(org.apache.shiro.authc.AuthenticationToken) */@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {UsernamePasswordToken usernamePasswordToke = (UsernamePasswordToken)token; String account = usernamePasswordToke.getUsername();String pwd = String.valueOf(usernamePasswordToke.getPassword());User user = this.userService.getUserByAccount(account);if( user == null ){throw new UnknownAccountException();}if( !user.getPassword().equals(pwd)){throw new IncorrectCredentialsException();}
//      if(Boolean.TRUE.equals( user.getLocked())){//            throw new LockedAccountException(); //帐号锁定
//      }SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(account,pwd,this.getName()); //此处未进行密码加密处理return authenticationInfo;}

5、增加登录jsp及controller进行测试,java培训机构结果:未登录自动跳到login.jsp,登录成功调到index.jsp

以上为简单的整合shiro,如有错误或好的建议,敬请提出。

ssm整合shiro相关推荐

  1. SSM整合shiro权限框架

    一.SSM整合shiro框架 1.步骤 1.添加shiro框架需要的jar包,包括shiro-core.shiro-web.shiro-spring的关系依赖 <!-- shiro jar包依赖 ...

  2. SSM整合Shiro进行登陆认证和授权详细配置

    本篇博客将进行详细介绍Shiro+Spring+SpringMVC+Mybatis+数据库整合并进行登陆认证和授权详细配置. SSM的整合可以参考:https://blog.csdn.net/a745 ...

  3. SSM整合Shiro 身份验证及密码加密简单实现

    1.导入maven的相关依赖 <!-- shiro --><dependency><groupId>org.apache.shiro</groupId> ...

  4. SSM整合shiro框架相关配置文件

    1.创建相关表 2.导入maven依赖 <properties><java.version>1.8</java.version><spring.version ...

  5. Spring Boot2 整合 Shiro ,两种方式全总结!

    前言:在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 文章目录 一.Spring Securit ...

  6. apache shiro怎么升级_Spring Boot 整合 Shiro ,两种方式全总结!

    在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 一般来说,Spring Security 和 S ...

  7. SSM中shiro的基本使用

    shiro 用以网站的授权和认证 配置: 一.shiro基本配置文件 所用的entity user和role 实体类 1 @Entity 2 @Table(name="USER_P" ...

  8. ssm如何支持热部署_最新Spring Boot实战文档推荐:项目搭建+配置+SSM整合

    在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用XML,注意,排不支持,Spring Boot推荐开发者使用Java配置来搭建框架, Spring ...

  9. 【SSM整合】SSM详细整合-maven分模块架构

    本文从一个简单的三层案例入手,分模块整合SSM框架,从环境搭建到测试,每一步都比较详细,希望能对你有所帮助. 文章难免存在错误,望大佬及时指教. 文章所有代码在文章末尾给出. 0x01.SSM整合说明 ...

最新文章

  1. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
  2. mysql慢查询开启语句分析_mysql慢查询语句分析总结
  3. 报表中Mail Label 的使用
  4. Mac剪切板神器——Clipsy「记住999条剪贴板记录」
  5. html 新浪博客,html
  6. Spring框架----Spring的IOC
  7. 产品管理有行业特殊性吗
  8. Python_日记 序列化和反序列化
  9. 南阳理工ACM 第71题
  10. 技能Get·手动更新HP笔记本BIOS过程记录
  11. 传奇服务器怎么修改背包金刚石显示,教你在服务器加自己的装备
  12. plc控制电机实验报告_基于西门子PLC电动机正反转互锁控制实验报告
  13. 马太效应和幂律分布是怎么回事?终于有人讲明白了
  14. 手把手教你如何在AWS EC2 启用 IPv6
  15. 苹果4如何添加时间插件_Pr快速批量制作和添加字幕,节省时间还不用插件的做法...
  16. 调用批处理bat文件
  17. 字符数组 字符插入(c语言)
  18. 韩剧机器人题材的_有这九部题材不同风格各异的韩剧,你这个冬天可不会剧荒了...
  19. Long与long的区别
  20. 成都鸿蒙二手汽车,报告称成都人二手车消费观更为超前 偏爱线上购买二手车...

热门文章

  1. 微服务实践之通信(OpenFeign)详解-SpringCloud(2021.0.x)-6
  2. 电脑没有回收站找回删除文件的2种方法
  3. stm32进入停止模式,中断 唤醒
  4. webwork+velocity整合案例
  5. Mac mini忘记登录密码处理方法
  6. 埃隆·马斯克的30句创业语录 | 每天用ChatGPT解读1位大佬语录
  7. 内存泄漏和内存溢出以及原因和解决方案
  8. Code::Blocks平台下Fortran的编译
  9. Excel电器折扣分析
  10. 2022-2028年全球及中国电气引线行业投资前景分析