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

在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

分享到:
评论

相关推荐

    基于springboot后台框架,涉及技术,通用mapper,shiro,mysql,redis.zip

    自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...

    Java EE常用框架.xmind

    在Shiro中默认是使用ini文件去对比的,但我们开发往往是去数据库比较,因此我们需要自定义realm 自定义也很简单:继承AuthorizingRealm类就好了 自定义的realm支持散列算法 授权方式 编程式:通过写if...

    SSM教务管理系统,java练手项目全套源码带sql

    Web框架:SpringMVC ORM框架:Mybatis 安全框架:Shiro 数据源:C3P0 日志:log4j 前端框架:Bootstrap 开发工具:可以使用eclipse,myeclipse,idea,都可以 数据库:建议mysql5.7 远程部署服务:如果自己不会...

    健身房管理系统,基于SpringBoot,Shiro,BootStrap,Layui的前后端项目+源代码+文档说明

    6. 安全框架:Shiro 7. 前端框架:BootStrap,Layui 8. 数据图表:ECharts ### 3.本项目所用环境: 1. 开发工具:IDEA 2. 编程语言:JDK1.8,HTML,CSS,JS,jQuery 3. 数据库:mysql5.6 4. 部署服务器:腾讯云Centos7...

    CRM:基于SSM开发的客户关系管理系统

    Windows_7集成开发工具:Eclipse EE_4.7编译环境:JDK_1.8 Web服务器:Tomcat_9.0数据库:MySQL_5.7.23系统框架spring框架springmvc框架mybatis框架Logback日志框架安全验证框架maven框架layui前端框架shiro安全框架...

    小白图书笔记本管理Java系统Vue + Spring Boot 项目实战

    如何在 Web 项目中使用数据库并利用网页实现增删改查? 在开发中如何利用各种辅助手段? Vue.js 的基本概念与用法 简单的前端页面设计 如何部署 Web 应用? 项目的第二部分是后台管理模块的开发 后台管理模块的常见...

    该项目设计了基于SpringBoot+Mybatis框架的私人影院预约系统.zip

    自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...

    基于Springboot+ Shiro+mybatis+Thymeleaf+Bootstra的Java后台管理系统脚手架.zip

    2.后台采用Springboot框架+ Shiro权限+ Mybatis持久层(SSM框架)开发,一流的技术高效封装。 3.前端采用Thymeleaf模板引擎+ Bootstrap系列框架,性能高效美观大气。 4.采用Maven管理项目,管理依赖自动构建,Xml...

    springboot快速开发架构.rar

    3. Shiro: 权限框架 4. swagger2: API文档生成工具 5. quartz: 定时任务框架 6. lombok: 实体对象方法工具 7. maven: 管理jar包 #### 前端技术说明 基于 layui2.5.6。 遵循原生 HTML/CSS/JS 的书写与组织形式,...

    Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

    项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块...

    最新SpringBoot项目应急救援物资管理系统.zip

    - 权限控制使用了Shiro,这是一种安全框架,可以精确控制后台API级别的访问权限。 - 跨域认证则利用了JWT(Json Web Tokens)。 - 数据库选用了MySQL 5.7,这是广泛使用的关系型数据库管理系统。 - 服务器配置...

    Java版水果管理系统源码-webServer:使用easyweb-jwt模版功能不定

    Java版水果管理系统源码 easyweb-jwt 简介 ...导入数据库到MySQL中,sql 位于根目录; 确认application-dev.properties 配置是否正确; 启动项目,浏览器访问 http://localhost:8088/。 分离部署:

    基于SpringMVC+Spring+MyBatis (SSM) 架构的高效率便捷开发框架源码+项目说明.zip

    项目使用 **Maven** 构建,便于项目管理,支持 **Oracle、MySql** 等主流数据库。 前端展示界面采用基于 **Boostrap** 实现的响应式布局,并集成了一系列的动画效果插件,整体界面简洁、美观大方并可优雅的与...

    BudWk企业级开源开发框架-其他

    </p><p>BudWk(原名 NutzWk) 是有多年历史的Java Web开源开发框架,其6.x 是Java 微服务分布式 + 前后端完全分离版本,采用nutzboot(nutz核心)、dubbo、redis、zookeeper、shiro、quartz、beetl、logback、sentinel...

    积分管理系统java源码-mystyle:我的风格

    工作中的积累,搭建的j2ee应用快速开发手架,重点在代码重构,一些常用功能的演示,工具,插件等的整理 ##功能要点简介 以springmvc、sprng、hibernate为基础框架搭建java web快速开发手架.ps:(参考,) mysql数据库 ...

    SpringBoot开发非常美观的java博客系统(包含后台管理功能)

    安全权限 Shiro 搜索工具 Lucene 缓存 Ehcache 视图模板 Freemarker 其它 Jsoup、fastjson jQuery、Seajs Bootstrap 前端框架 UEditor/Markdown编辑器 font-Awesome 字体/图标 准备工作(sql文件在项目里面) 安装 ...

    javapms门户网站源码

    系统选用了经过java社区长时间使用,被证明稳定、可靠、安全、高性能的开源框架,包括Spring、Hibernate、Freemarker、jQuery、Shiro等框架。使用这些框架可以使软件开发更加高效、易于维护,而且具有更好的性能、更...

    抽奖系统设计方案.pdf

    前端:vue 后端 web框架:Springboot 持久层框架:JPA 认证授权框架:Shiro 分布式框架:Dubbo+Zookeeper 搜索框架:ElasticSearch 数据库: mysql+redis 4,设计模式 ,设计模式 4.1 ⼋⼤设计原则 ⼋⼤设计原则 ...

    单点登录源码

    Apache Shiro | 安全框架 | [http://shiro.apache.org/](http://shiro.apache.org/) Spring session | 分布式Session管理 | [http://projects.spring.io/spring-session/]...

    javaOA办公系统模块设计方案.pdf

    阿⾥数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache 4.代码编辑器,在线模版编辑,仿开发⼯具编辑器 5.调⽤摄像头拍照 ⾃定义裁剪编辑头像,头像图⽚⾊度调节 6.websocket 及时站内...

Global site tag (gtag.js) - Google Analytics