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
相关推荐
自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...
在Shiro中默认是使用ini文件去对比的,但我们开发往往是去数据库比较,因此我们需要自定义realm 自定义也很简单:继承AuthorizingRealm类就好了 自定义的realm支持散列算法 授权方式 编程式:通过写if...
Web框架:SpringMVC ORM框架:Mybatis 安全框架:Shiro 数据源:C3P0 日志:log4j 前端框架:Bootstrap 开发工具:可以使用eclipse,myeclipse,idea,都可以 数据库:建议mysql5.7 远程部署服务:如果自己不会...
6. 安全框架:Shiro 7. 前端框架:BootStrap,Layui 8. 数据图表:ECharts ### 3.本项目所用环境: 1. 开发工具:IDEA 2. 编程语言:JDK1.8,HTML,CSS,JS,jQuery 3. 数据库:mysql5.6 4. 部署服务器:腾讯云Centos7...
Windows_7集成开发工具:Eclipse EE_4.7编译环境:JDK_1.8 Web服务器:Tomcat_9.0数据库:MySQL_5.7.23系统框架spring框架springmvc框架mybatis框架Logback日志框架安全验证框架maven框架layui前端框架shiro安全框架...
如何在 Web 项目中使用数据库并利用网页实现增删改查? 在开发中如何利用各种辅助手段? Vue.js 的基本概念与用法 简单的前端页面设计 如何部署 Web 应用? 项目的第二部分是后台管理模块的开发 后台管理模块的常见...
自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...
2.后台采用Springboot框架+ Shiro权限+ Mybatis持久层(SSM框架)开发,一流的技术高效封装。 3.前端采用Thymeleaf模板引擎+ Bootstrap系列框架,性能高效美观大气。 4.采用Maven管理项目,管理依赖自动构建,Xml...
3. Shiro: 权限框架 4. swagger2: API文档生成工具 5. quartz: 定时任务框架 6. lombok: 实体对象方法工具 7. maven: 管理jar包 #### 前端技术说明 基于 layui2.5.6。 遵循原生 HTML/CSS/JS 的书写与组织形式,...
项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块...
- 权限控制使用了Shiro,这是一种安全框架,可以精确控制后台API级别的访问权限。 - 跨域认证则利用了JWT(Json Web Tokens)。 - 数据库选用了MySQL 5.7,这是广泛使用的关系型数据库管理系统。 - 服务器配置...
Java版水果管理系统源码 easyweb-jwt 简介 ...导入数据库到MySQL中,sql 位于根目录; 确认application-dev.properties 配置是否正确; 启动项目,浏览器访问 http://localhost:8088/。 分离部署:
项目使用 **Maven** 构建,便于项目管理,支持 **Oracle、MySql** 等主流数据库。 前端展示界面采用基于 **Boostrap** 实现的响应式布局,并集成了一系列的动画效果插件,整体界面简洁、美观大方并可优雅的与...
</p><p>BudWk(原名 NutzWk) 是有多年历史的Java Web开源开发框架,其6.x 是Java 微服务分布式 + 前后端完全分离版本,采用nutzboot(nutz核心)、dubbo、redis、zookeeper、shiro、quartz、beetl、logback、sentinel...
工作中的积累,搭建的j2ee应用快速开发手架,重点在代码重构,一些常用功能的演示,工具,插件等的整理 ##功能要点简介 以springmvc、sprng、hibernate为基础框架搭建java web快速开发手架.ps:(参考,) mysql数据库 ...
安全权限 Shiro 搜索工具 Lucene 缓存 Ehcache 视图模板 Freemarker 其它 Jsoup、fastjson jQuery、Seajs Bootstrap 前端框架 UEditor/Markdown编辑器 font-Awesome 字体/图标 准备工作(sql文件在项目里面) 安装 ...
系统选用了经过java社区长时间使用,被证明稳定、可靠、安全、高性能的开源框架,包括Spring、Hibernate、Freemarker、jQuery、Shiro等框架。使用这些框架可以使软件开发更加高效、易于维护,而且具有更好的性能、更...
前端: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/]...
阿⾥数据库连接池druid,安全权限框架 shiro(菜单权限和按钮权限), 缓存框架 ehcache 4.代码编辑器,在线模版编辑,仿开发⼯具编辑器 5.调⽤摄像头拍照 ⾃定义裁剪编辑头像,头像图⽚⾊度调节 6.websocket 及时站内...