shiro框架提供了验证、授权、加密、会话管理等常用的安全功能,而且使用POJO式的API使得该框架能部署在大多数的环境中,此外还针对不同的情形提供了各种API实现,在数据存储上,其开放式的API使得我们在不同数据环境中进行方便自如的切换,shiro同样支持MYSQL方式,下面是使用MYSQL数据库的SHIRO配置:
[main] ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds.serverName = 10.0.31.77 ds.user = root ds.password =zavens ds.databaseName = users ds.url = jdbc:mysql://10.0.31.77:3306/zavens jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm jdbcRealm.permissionsLookupEnabled = true jdbcRealm.authenticationQuery = SELECT password FROM users WHERE username = ? jdbcRealm.userRolesQuery = SELECT rolename FROM user_roles WHERE username = ? jdbcRealm.permissionsQuery = SELECT permission FROM role_permissions WHERE rolename = ? jdbcRealm.dataSource = $ds authc.loginUrl = /login.xhtml perms.unauthorizedUrl = /login.xhtml roles.unauthorizedUrl = /login.xhtml [urls] /admin/**=authc,perms[jimi] /system/**=authc,perms[juemi]
这里需要说明的是,jdbcRealm.authenticationQuery,jdbcRealm.userRolesQuery,jdbcRealm.permissionsQuery配置行,相对应的时三个表users,user_roles,role_permissions,这三行是告诉SHIRO从何处获取授权的配置,他们是jdbc的预查询语句。authenticationQuery用于从users中查找密码来进行验证,查询后取得第一条记录的第一个字段进行验证。userRolesQuery用于从user_roles查找所属的角色,它可以是多行,但是要保证查询后的角色是第一个字段。permissionsQuery用于从role_permissions中查找权限字符串,同样要求是第一个字段,可以是多条记录。
当告诉SHIRO从哪里获取授权后,还得告诉SHIRO对谁进行授权。[urls]部分就是起这个作用。/admin/**=authc,perms[jimi] 这句,/admin/**是指针对admin目录配置权限,authc,是系统内置的过滤器,告诉shiro,进入此目录,必须是已验证的登录用户。perms[jimi] 是权限限定符,perms同样是内置的过滤器,指org.apache.shiro.web.filter. authz.PermissionsAuthorizationFilter,jimi是通过jdbcRealm.permissionsQuery查询出来的权限字符串,只有用户获得的角色含有该字符串,才能获得访问授权。如果针对角色授权,可以是/admin/**=authc,roles[admin] .
SHIRO内置了很多过滤器,如下:
anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter authcBasic org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter logout org.apache.shiro.web.filter.authc.LogoutFilter noSessionCreation org.apache.shiro.web.filter.session.NoSessionCreationFilter perms org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter port org.apache.shiro.web.filter.authz.PortFilter rest org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter roles org.apache.shiro.web.filter.authz.RolesAuthorizationFilter ssl org.apache.shiro.web.filter.authz.SslFilter user org.apache.shiro.web.filter.authc.UserFilter
引自:http://blog.csdn.net/zavens/article/details/6804075
相关推荐
在IT行业中,构建一个高效、安全且易于维护的Web应用是一项关键任务。本文将深入探讨如何使用Maven作为构建工具,结合Spring MVC作为MVC框架,Apache Shiro作为安全管理组件,以及MySQL作为数据库来搭建这样的系统。...
在IT领域,构建高效、安全且可扩展的Web应用程序常常依赖于框架的组合使用。本项目结合了Spring MVC、Apache Shiro和MySQL这三个强大的技术,通过Maven进行项目管理,旨在提供一个完整的后端开发解决方案。下面将...
本项目是一个基于Spring MVC、MyBatis、Bootstrap和Shiro框架整合开发的网上求职招聘系统,适用于毕业生进行毕业设计。这个系统集成了完整的前后端功能,包括用户注册、登录、职位发布、求职者投递简历等功能,同时...
SSM(Spring、SpringMVC、MyBatis)与Apache Shiro框架的整合是一个常见的Java Web开发中的安全控制方案,用于实现用户权限管理、身份验证和授权。在本项目中,"Maven+SSM+Shiro框架整合完整实现"旨在提供一个完整的...
本项目是一个基于Spring MVC、MyBatis、Bootstrap和Shiro框架整合开发的网上求职招聘系统,同时包含了MySQL数据库的支持。这个系统旨在为毕业生提供一个实际的项目开发经验,以帮助他们掌握现代Web应用开发的核心...
SpringBoot+Mybatis+Shiro+Mysql是一个常见的Java Web开发框架组合,广泛应用于构建高效、简洁的企业级应用。这个组合充分利用了各自组件的优势,为开发者提供了强大的功能和灵活的配置。 SpringBoot是由Pivotal...
"SSM+Maven+Mysql+Shiro无需重启动态权限"项目就是一个典型的示例,它整合了Spring、SpringMVC、Mybatis(SSM)这三大Java开发框架,并结合Maven进行项目管理和Mysql数据库存储数据,再利用Apache Shiro实现安全控制...
总结来说,"ssm+maven+shiro"项目是一个完整的Java Web应用示例,它展示了如何使用Spring、Spring MVC和MyBatis构建业务逻辑,通过Maven进行项目管理,以及利用Apache Shiro实现安全控制。这样的项目结构和实践,...
在IT行业中,构建一个Web应用程序通常涉及到多个框架和技术的整合。在这个"springmvc+mybatis+shiro+mysql简单例子"中,我们将深入探讨这些关键组件及其协同工作的方式。 首先,Spring MVC是Spring框架的一个模块,...
在IT行业中,SpringMVC、SpringBoot和Shiro都是开发者常用的重要框架,它们在构建高效、稳定和安全的Java应用程序中发挥着关键作用。这里,我们深入探讨这些框架以及与之相关的Linux、MySQL等技术。 首先,...
【标题】基于Dubbo和Shiro框架搭建的权限管理系统是一个集成SpringBoot、Dubbo、MySQL技术的实战项目,主要用于实现企业级的权限管理和控制。在这样的系统中,Dubbo作为服务治理框架,负责服务的注册与发现,以及...
在本项目中,我们主要探讨的是一个基于Spring Boot的全栈开发框架,它结合了MyBatis、MySQL、Redis和Shiro等技术,实现了前后端分离的架构设计。以下是各个技术点的详细说明: 1. **Spring Boot**: Spring Boot是...
在本文中,我们将深入探讨如何将Spring Boot、Apache Shiro、MyBatis、MySQL和Element UI这五款技术栈进行简单整合,以实现一个非前后端分离的用户登录页面。这个场景常见于小型项目或者快速原型开发,它可以帮助...
在SSM框架中: 1. **Spring** 是一个全面的Java企业级应用框架,提供依赖注入(DI)、面向切面编程(AOP)等功能,可以管理应用的各个组件。 2. **SpringMVC** 是Spring框架的一部分,专门用于构建Web应用程序,它...
SSM(Spring、SpringMVC、MyBatis)与Apache Shiro是两个在Java Web开发中常见的框架。SSM框架组合提供了模型-视图-控制器(MVC)的架构模式,便于开发高效、松耦合的Web应用。而Apache Shiro则是一个强大的安全框架...
4. **MySQL数据库**:MySQL是一款关系型数据库管理系统,广泛应用于Web应用中。在此项目中,MySQL用于存储用户信息、商品数据、订单等所有与购物平台相关的数据。 5. **前后端交互**:项目的前端通常使用HTML、CSS...
本项目是一个基于Java技术栈,使用Spring Boot、SSM(Spring、Spring MVC、MyBatis)和Shiro安全框架构建的学校教务管理系统。通过整合这些先进的开发工具和技术,该系统实现了高效、稳定且功能丰富的教务管理功能,...
【标题】"springboot-shiros-mybatis-redis+mysql(前后分离)"是一个基于Java的Web开发框架示例,它整合了Spring Boot、Shiro、MyBatis以及Redis和MySQL数据库,实现了前后端分离的设计模式。 【Spring Boot】是...
SSM+Shiro学生成绩管理系统是一个基于Java技术栈的Web应用,主要采用了SpringMVC、Spring、MyBatis和Apache Shiro框架,配合MySQL数据库来实现对学生成绩的有效管理与控制。下面将对这些核心技术和相关知识点进行...
在IT行业中,Spring Boot、Redis和Shiro是三个非常重要的技术组件,它们分别在不同的领域发挥着关键作用。本文将详细介绍如何将这三个组件整合在一起,实现一个...这个整合方案在现代Web应用程序中具有广泛的应用价值。