`
zhangzuanqian
  • 浏览: 268793 次
  • 来自: ...
社区版块
存档分类
最新评论

在WEB应用中使用mysql部署shiro安全框架【转】

 
阅读更多

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

分享到:
评论

相关推荐

    基于maven构建 spring mvc + apache shiro + mysql 框架搭建

    在IT行业中,构建一个高效、安全且易于维护的Web应用是一项关键任务。本文将深入探讨如何使用Maven作为构建工具,结合Spring MVC作为MVC框架,Apache Shiro作为安全管理组件,以及MySQL作为数据库来搭建这样的系统。...

    spring mvc、apache shiro、mysql 框架搭建,基于maven构建

    在IT领域,构建高效、安全且可扩展的Web应用程序常常依赖于框架的组合使用。本项目结合了Spring MVC、Apache Shiro和MySQL这三个强大的技术,通过Maven进行项目管理,旨在提供一个完整的后端开发解决方案。下面将...

    开发网上求职招聘毕业设计系统 spring mvc+mybatis+bootstrap+shiro 框架整合、带mysql数据库

    本项目是一个基于Spring MVC、MyBatis、Bootstrap和Shiro框架整合开发的网上求职招聘系统,适用于毕业生进行毕业设计。这个系统集成了完整的前后端功能,包括用户注册、登录、职位发布、求职者投递简历等功能,同时...

    Maven+SSM+Shiro框架整合完整实现,实现某权限用户登录,记住密码,验证码等功能。

    SSM(Spring、SpringMVC、MyBatis)与Apache Shiro框架的整合是一个常见的Java Web开发中的安全控制方案,用于实现用户权限管理、身份验证和授权。在本项目中,"Maven+SSM+Shiro框架整合完整实现"旨在提供一个完整的...

    spring mvc、mybatis、bootstrap、shiro 框架整合开发网上求职招聘毕业设计系统、带mysql数据库.zip

    本项目是一个基于Spring MVC、MyBatis、Bootstrap和Shiro框架整合开发的网上求职招聘系统,同时包含了MySQL数据库的支持。这个系统旨在为毕业生提供一个实际的项目开发经验,以帮助他们掌握现代Web应用开发的核心...

    SpringBoot+Mybatis+shiro+Mysql

    SpringBoot+Mybatis+Shiro+Mysql是一个常见的Java Web开发框架组合,广泛应用于构建高效、简洁的企业级应用。这个组合充分利用了各自组件的优势,为开发者提供了强大的功能和灵活的配置。 SpringBoot是由Pivotal...

    SSM+Maven+Mysql+shiro无需重启动态权限

    "SSM+Maven+Mysql+Shiro无需重启动态权限"项目就是一个典型的示例,它整合了Spring、SpringMVC、Mybatis(SSM)这三大Java开发框架,并结合Maven进行项目管理和Mysql数据库存储数据,再利用Apache Shiro实现安全控制...

    ssm+maven+shiro

    总结来说,"ssm+maven+shiro"项目是一个完整的Java Web应用示例,它展示了如何使用Spring、Spring MVC和MyBatis构建业务逻辑,通过Maven进行项目管理,以及利用Apache Shiro实现安全控制。这样的项目结构和实践,...

    springmvc+mybatis+shiro+mysql简单例子,有脚本

    在IT行业中,构建一个Web应用程序通常涉及到多个框架和技术的整合。在这个"springmvc+mybatis+shiro+mysql简单例子"中,我们将深入探讨这些关键组件及其协同工作的方式。 首先,Spring MVC是Spring框架的一个模块,...

    SpringMVC SpringBoot Shiro 等10多种文档

    在IT行业中,SpringMVC、SpringBoot和Shiro都是开发者常用的重要框架,它们在构建高效、稳定和安全的Java应用程序中发挥着关键作用。这里,我们深入探讨这些框架以及与之相关的Linux、MySQL等技术。 首先,...

    基于Dubbo和Shiro框架搭建的权限管理系统.zip

    【标题】基于Dubbo和Shiro框架搭建的权限管理系统是一个集成SpringBoot、Dubbo、MySQL技术的实战项目,主要用于实现企业级的权限管理和控制。在这样的系统中,Dubbo作为服务治理框架,负责服务的注册与发现,以及...

    springboot+mybatis+mysql+redis+shiro(前后端分离)

    在本项目中,我们主要探讨的是一个基于Spring Boot的全栈开发框架,它结合了MyBatis、MySQL、Redis和Shiro等技术,实现了前后端分离的架构设计。以下是各个技术点的详细说明: 1. **Spring Boot**: Spring Boot是...

    springboot+shiro+mybatis+mysql+element简单整合用户登录页面

    在本文中,我们将深入探讨如何将Spring Boot、Apache Shiro、MyBatis、MySQL和Element UI这五款技术栈进行简单整合,以实现一个非前后端分离的用户登录页面。这个场景常见于小型项目或者快速原型开发,它可以帮助...

    idea+ssm+maven+shiro

    在SSM框架中: 1. **Spring** 是一个全面的Java企业级应用框架,提供依赖注入(DI)、面向切面编程(AOP)等功能,可以管理应用的各个组件。 2. **SpringMVC** 是Spring框架的一部分,专门用于构建Web应用程序,它...

    ssm整合shiro的的demo,附带数据库

    SSM(Spring、SpringMVC、MyBatis)与Apache Shiro是两个在Java Web开发中常见的框架。SSM框架组合提供了模型-视图-控制器(MVC)的架构模式,便于开发高效、松耦合的Web应用。而Apache Shiro则是一个强大的安全框架...

    Java Web模拟项目 ssm框架开发 购物平台 mysql数据库 前后端

    4. **MySQL数据库**:MySQL是一款关系型数据库管理系统,广泛应用于Web应用中。在此项目中,MySQL用于存储用户信息、商品数据、订单等所有与购物平台相关的数据。 5. **前后端交互**:项目的前端通常使用HTML、CSS...

    java+springboot+ssm+shiro+mysql学校教务管理系统源码

    本项目是一个基于Java技术栈,使用Spring Boot、SSM(Spring、Spring MVC、MyBatis)和Shiro安全框架构建的学校教务管理系统。通过整合这些先进的开发工具和技术,该系统实现了高效、稳定且功能丰富的教务管理功能,...

    springboot-shiros-mybatis-redis+mysql(前后分离)

    【标题】"springboot-shiros-mybatis-redis+mysql(前后分离)"是一个基于Java的Web开发框架示例,它整合了Spring Boot、Shiro、MyBatis以及Redis和MySQL数据库,实现了前后端分离的设计模式。 【Spring Boot】是...

    SSM+Shiro学生成绩管理系统

    SSM+Shiro学生成绩管理系统是一个基于Java技术栈的Web应用,主要采用了SpringMVC、Spring、MyBatis和Apache Shiro框架,配合MySQL数据库来实现对学生成绩的有效管理与控制。下面将对这些核心技术和相关知识点进行...

    Springboot整合redis+shiro(带数据库文件)

    在IT行业中,Spring Boot、Redis和Shiro是三个非常重要的技术组件,它们分别在不同的领域发挥着关键作用。本文将详细介绍如何将这三个组件整合在一起,实现一个...这个整合方案在现代Web应用程序中具有广泛的应用价值。

Global site tag (gtag.js) - Google Analytics