业务逻辑:shiro框架的功能实现
思路:分别在web.xml配置过滤器以及在applicationContext.xml去配置
实现步骤:1、在pom.xml里引入shiro的坐标
2、在web.xml里配置shiro过滤器
3、在applicationContext.xml里配置安全管理器以及校验过滤器
4、自定义realm对象(认证/授权)
5、将realm注入到manager中注册
一、 使用shiro的方法注解方式进行权限控制
思路:在applicationContext.xml里使用aop去实现
实现步骤:1、在spring文件中配置开启shiro注解支持
2、修改事务注解
3、在Service方法上使用shiro注解
一、 使用shiro的标签进行权限控制
思路:这些标签用于JSP页面,控制一些元素是否可见
实现步骤:
1、 在页面引入shiro标签库
2、 通过shiro自带标签控制按钮是否显示
一、 总结shiro提供的权限控制方式
思路:1、URL级别粗粒度权限控制 2、方法级别细粒度权限控制(基于代理技术实现)
1、 通过shiro自定义标签,实现页面元素显示控制(基于标签技术实现)
第一种:URL级别粗粒度权限控制(基于过滤器实现)
配置web.xml 的shiroFilter 拦截 /*
在spring的applicationContext*.xml 配置文件中配置同名bean,配置filterChainDefinitions拦截控制规则
xxx.html* = anon (未登录可以访问)
xxx.html* =authc (必须登录才能访问)
xxx.html* = perms[权限] (需要特定权限才能访问)
xxx.html* = roles[角色] (需要特定角色才能访问)
第二种:方法级别细粒度权限控制(基于代理技术实现)
在spring的applicationContext*.xml 配置 spring aop 对spring管理bean对象开启shiro注解支持
@RequiresPermissions(权限) 需要特定权限才能访问
@RequiresRoles(角色) 需要特定角色才能访问
@RequiresAuthentication 需要认证才能访问
第三种:通过shiro自定义标签,实现页面元素显示控制(基于标签技术实现)
<shiro:authenticated>登录后才能访问
<shiro:hasPermission name="abc">需要特定权限才能访问
<shiro:hasRole name="abc">需要特定角色才能访问
一、 用户认证、授权功能的实现
思路:在UserAction的login方法里使用Subject完成
实现步骤:
1、 在UserAction的login方法里得到Subject对象
2、 封装表单提交的用户名和密码
3、 调用subject的login方法
4、 自定义realm对象(认证|授权)
二、 完成菜单列表的显示功能
思路:菜单存在上下级关系(树形结构),通过easyUI提供的treegrid控件完成
实现步骤:
1、 将需要的数据导入到数据库
2、 修改menu.html 的treegird的url属性
3、 编写MenuAction 提供list 查询所有菜单的方法
4、 编写Service和DAO
一、 完成菜单数据的添加功能
思路:在列表显示的前提下完成添加
实现步骤:
1、 检查页面表单元素 name是否与实体类匹配
2、 父菜单项使用combotree展示
3、 为保存按钮绑定事件,提交表单
4、 在MenuAction 添加 save保存方法
5、 编写MenuService
业务逻辑:shiro框架的功能实现的更多相关文章
- 一步一步实现web程序信息管理系统之三----登陆业务逻辑实现(验证码功能+参数获取)
本篇紧接着上一篇文章[一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面] 验证码功能 一般验证码功能实现方式为,前端界面访问一个url请求,后端服务代码生成一个图片流返回至浏览器 ...
- ASP.NET MVC5 网站开发实践(一) - 框架(续) 模型、数据存储、业务逻辑
上次搭建好了项目框架,但还是觉得不太对劲,后来才想起来没有对开发目标进行定位,这个小demo虽然不用做需求分析,但是要实现什么效果还得明确.后来想了一下就做个最简单的网站,目标定为小公司进行展示用的网 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2) ...
- MVC5 网站开发之四 业务逻辑层的架构和基本功能
业务逻辑层在Ninesky.Core中实现,主要功能封装一些方法通过调用数据存储层,向界面层提供服务. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 ...
- 分享一个UI与业务逻辑分层的框架(三)
序言 前两篇讲解了UIMediator框架的使用及具体原理代码.本篇讲述MediatorManager的实现代码及展望. MediatorManager MediatorManager的作用有两点: ...
- 分享一个UI与业务逻辑分层的框架(二)
序言 第一篇讲解了UI与业务逻辑分层的框架(UIMediator)的使用.本篇将说明该框架的原理及代码实现. 整体结构 UI与后台类绑定主要分为UI输入->后台属性,后台属性-UI更新两部分,为 ...
- 分享一个UI与业务逻辑分层的框架(一)
序言 .NET(C#)的WinForm如何简单易行地进行UI与业务逻辑分层?本系列文章介绍一个WinForm分层框架,该框架针对WinForm中的TextBox,CheckBox,RadioButto ...
- 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑
前言 从上篇30岁找份程序员的工作(伪程序员的独白),文章开始,我说过我要用我自学的技术,来搭建一个博客系统,也希望大家给点意见,另外我很感谢博客园的各位朋友们,对我那篇算是自我阶段总结文章 ...
- Flask--(项目准备)--框架搭建,配置文件抽取,业务逻辑抽取
抽取配置文件: import logging from redis import StrictRedis class Config(object): """项目的配置&q ...
随机推荐
- Django-form补充
Django_form补充 问题1: 注册页面输入为空,报错:keyError:找不到password def clean(self): print("---",self.cle ...
- Spring_总结_01_Spring概述
一.前言 从今天开始,重新总结一下Spring的相关知识,主要是结合<Spring实战(第四版)>和 <JavaEE开发的颠覆者——SpringBoot实战>这两本书以及官方文 ...
- Java NIO阻塞式通信
package com.nio.t; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.By ...
- python_函数中使用*和**
Python在函数中,使用*接收元组,使用**接收键/值对 当要使函数接收元组或字典形式的参数 的时候,有一种特殊的方法,它分别使用*和**前缀 .这种方法在函数需要获取可变数量的参数 的时候特别有用 ...
- redis有序集合的使用
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- 基于JQ的多选/全选/反选及获取选中的值
<!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...
- ZIP 算法详解 (转!)
zip 的压缩原理与实现(lz77 算法压缩) 无损数据压缩是一件奇妙的事情,想一想,一串任意的数据能够根据一定的规则转换成只有原来 1/2 - 1/5 长度的数据,并且能够按照相应的规则还原到原来的 ...
- 浅谈Manacher
\(Manacher\)是由一个叫做\(Manacher\)的人发明的能在\(O(n)\)时间内找出一个字符串长度最长的回文子串的算法. 由于偶回文串形如\(abba\)这样的不好找对称中心,所以我们 ...
- Filebeat 5.x 日志收集器 安装和配置
Filebeat 5.x版本 风来了.fox 1.下载和安装 https://www.elastic.co/downloads/beats/filebeat 这里选择 LINUX 64-BIT 即方式 ...
- git 学习 多个提交用同一个commit
git add .git commit --amend(连续按连个ZZ)git push -f origin ibm_branch(命令行可能不好用,用IDEA force push好用)