一、在web.xml中添加shiro过滤器
<!-- Shiro filter-->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
二、在Spring的applicationContext.xml中添加shiro配置
1、添加shiroFilter定义
<!-- Shiro Filter -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/login" />
<property name="successUrl" value="/user/list" />
<property name="unauthorizedUrl" value="/login" />
<property name="filterChainDefinitions">
<value>
/login = anon
/user/** = authc
/role/edit/* = perms[role:edit]
/role/save = perms[role:edit]
/role/list = perms[role:view]
/** = authc
</value>
</property>
</bean>
2、添加securityManager定义
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="myRealm" />
</bean>
3、添加realm定义
<bean id=" myRealm" class="com...MyRealm" />
三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法
public class MyRealm extends AuthorizingRealm{
private AccountManager accountManager;
public void setAccountManager(AccountManager accountManager) {
this.accountManager = accountManager;
}
/**
* 授权信息
*/
protected AuthorizationInfo doGetAuthorizationInfo(
PrincipalCollection principals) {
String username=(String)principals.fromRealm(getName()).iterator().next();
if( username != null ){
User user = accountManager.get( username );
if( user != null && user.getRoles() != null ){
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
for( SecurityRole each: user.getRoles() ){
info.addRole(each.getName());
info.addStringPermissions(each.getPermissionsAsString());
}
return info;
}
}
return null;
}
/**
* 认证信息
*/
protected AuthenticationInfo doGetAuthenticationInfo(
AuthenticationToken authcToken ) throws AuthenticationException {
UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
String userName = token.getUsername();
if( userName != null && !"".equals(userName) ){
User user = accountManager.login(token.getUsername(),
String.valueOf(token.getPassword()));
if( user != null )
return new SimpleAuthenticationInfo(
user.getLoginName(),user.getPassword(), getName());
}
return null;
}
}
参考资料:
让Apache Shiro保护你的应用
分享到:
相关推荐
主要介绍了基于Spring框架的Shiro配置方法,需要的朋友可以参考下
本资源提供了一套基于Spring4和Struts2的简单Shiro项目设计源码。该项目包含了11个XML配置文件、9个Java源文件、4个JSP文件、1个LICENSE文件、1个Markdown文件、1个META-INF文件、1个SQL文件、1个XSD文件,共29个...
基于springboot+shiro+freemarker的快速开发框架,代码结构清晰,快速上手使用! 配置代码生成器,减少70%开发时间,专注业务逻辑。 前端声明式组件封装、附带文档编写 ctrl+c ctrl+v 即可使用。封装数据源,可通过...
由于项目需要从网上搜集的相关的集成框架,很多都是部分集成,一直没有找到整个流程全部集成好的,所以将集成好的框架分享出来供大家学习。 主要实现SSO、后台RBAC角色认证管理。 下载后需要自行修改配置,项目包内...
基于SpringBoot+shiro+ztree的权限管理后台源码.zip 完整代码,可运行 项目说明 1、系统管理后台基本框架SPPanAdmin,包括用户管理,角色管理,资源链接管理模块,可以动态分配权限和角色。 2、使用springboot、...
最近新学习了前端框架Layui、安全框架Shiro、缓存框架Ehcache的基本用法,边学习边练习,写了这个学生管理系统。 ### 介绍 该系统相对于以前的练手项目,最主要就是新增了shiro权限。我在菜单栏用了shiro标签...
SSM框架集成:搭建SSM框架,整合Spring、Spring MVC和MyBatis,配置相关的XML文件、注解和依赖。 用户认证与授权:使用Shiro框架实现用户认证和授权功能。包括用户登录、注册、密码加密、角色授权等。 文章管理:...
Java语言的框架整合及权限的控制(粗粒度、细粒度) SSM(spring+springmvc+mybatis)的整合 SSM+shiro基于资源的权限控制整合demo 配置文件原理的注释 shiro的认证、授权、及从数据库mysql获取的认证信息方法都有...
Apache Shrio是一个安全认证框架,和Spring Security相比,在于他使用了和比较简洁易懂的认证和授权方式。其提供的native-session(即把用户认证后的授权信息保存在其自身提供Session中)机制,这样就可以和...
4.配置文档中包含丰富的注释,搭建思路清晰的ssm项目框架 5.项目中的所有细节都会按照企业级开发的标准,展示如何遵循代码规范以及类文件doc注释的编写。 6.采用RESTFul的controller接口,展示RESTFul风格...
支持数据字典,系统参数配置 支持邮件发送,采用activeMQ异步解耦 支持在线用户监控,登出等操作 支持redis / ehcache切换使用 支持ip2region本地化 支持多数据源操作 前端支持ajax下载文件,js代码简洁,清晰,避免...
是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency ...
Apache Shiro和Spring-Security为权限授权层,redis进行缓存。 Geek-Framework主要定位于微应用的开发,已内置后台系统的基础功能,用户管理、角色管理、权限管理、会员管理、日志管理等;前台已经实现用户登录,...
基于spring boot的中小型仓库物流管理系统(springboot+mybatis-plus+shiro+mysql+layui前端框架) 技术栈使用 后端:springboot、mybatis-plus、shiro 前端:layUI 存储:mysql 主要功能实现: 1.基础管理:商品...
apache shiro 是一个安全认证框架,和 spring security 相比,在于他使用了比较简洁易懂的认证和授权方式。其提供的 native-session(即把用户认证后的授权信息保存在其自身提供Session 中)机制,这样就可以和 ...
contentManagerSystem,后台管理系统,采用SpringBoot构建整个项目框架,apacheShiro权限验证,mybatis+druid数据持久化动作,前端采用layui 功能说明 用户管理:简单实现用户新增,编辑,添加角色等功能. 角色管理:简单...
spring框架 springmvc框架 mybatis框架 Logback日志框架 安全验证框架 maven框架 layui前端框架 shiro安全框架 系统关键性技术 Spring+Springmvc+Mybatis三大框架 Ajax技术 springmvc文件上传 shiro安全框架 Redis...
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
项目涉及到SSM( Spring + Spring MVC + MyBatis )框架、MySQL数据库、Layui、EasyUI等技术,适合毕设项目、课设作业。资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的...
JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,后端基于经典组合 Spring Boot、Shiro、MyBatis,前端采用 Beetl、Bootstrap、AdminLTE 经典开发模式,或者分离版 Vue3、Vite、...