下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课堂笔记今天内容投资分页1.2.Shiro 权限框架投资投资的有两个,一个是帐户中心-投资管理-投资另外一个是,当产品成功后,就会跳转到投资。关于分页:当前页每页条数总条数总页数使用分页时,一般会创建一个 PageBean,它是用于当前页显示的内容以及分页相关的信息。项目中使用的是 spring data jpa,它的分页产操作如何完成?ReitoryCrudReitory主要提供了crud 操作 save delete update. PagingAndSortingReJpaReitoryitory 主要提供了分页与排序操作通过这个结构,JpaReitory 它具有以上接口提供的所有功能投
2、资业务:ProductAccount 它代表的用户的投资信息,出当前用户的投资信息。投资操作就是从 ProductAccount 中查询前端分析查看投资连接查看路由加载的页面是 buying.html控制器是 buyingCtrl查看控制器在控制器中默认加载的操作问题 1:_service 它的值是什么?_service=getProductAccountBuying向服务器发送请求服务器端操作对于投资操作它是一个多条件查询,分成两部分完成无条件的分页操作使用 spring data jpa 完成分页现在使用的是 JpaReitory 提供的功能findAll(Pageable)需要参数 Pa
3、geable,它代表的是分页条件,可以使用geRequest(页码,每页条数)nefindAll(Pageable)方法的返回值是 Page 对象,它就是通过 Page 对象可以getContent()得到 List getTotalElements() 总条数所说的 PageBeangetTotalPages()总页数注意:对于 p2p 项目,只需要将使用了一个 angularjs 的分页工具到 views 下就可以。这四个数据是分页相关的。totalItems 总条数currentPage 页码itemsPage 每页条数maxSize 它是分页框显示的个数多条件的分页操作如果是多条件的分
4、页操作,可以使用能有JpaSpecificationExecutor,这个接口提供的主要功通过上面的展示发现 JpaSpecificationExecutor 接口中提供的方法需要 Specification类型的参数,这个 Specification 它代表的就是条件查询今天使用的就是Page findAll(Specification sp,Pageable pb);操作步骤:publicerface JpaSpecificationExecutor T findOne(Specification spec);List findAll(Specification spec);Pagefin
5、dAll(Specificationspec, Pageable pageable);List findAll(Specification spec, Sort sort); long count(Specification spec);1.站扩展 JpaSpecificationExecutor 接口完善代码Action得到请求参数,处理请求参数Service调用 findAll(Specification sp,Pageable pb)关于 Specification 中重写的方法参数作用JPA 规范中的,ROOT 查询中的条件表达式、CriteriaQuery 条件查询设计器、Crite
6、riaBuilder 条件查询构造器,而时,实现该方法用 JPA 去构造对象查询便可在使用复杂对象查询ShiroShiro 介绍Shiro 是 apache 的一个权限框架,它的主要功能认证, 认证: authentication 可以简单理解认证就是用户是否登录.: authorization用户登录后,它是否具限操作某些功能注意:shiro 框架它不认证及数据。对于一个基本权限操作:用户表一个用户可以具有多个角色角色表一个角色可以有多个权限,一个角色可以给多个用户权限表一个权限可以赋予多个角色用户与角色的关联表角色与权限的关联表总结:用户角色角色权限 都是多对多关系问题:shiro 框架如
7、何使用?Shiro 中有三个和Subject, SecurityManagerReaSubject:通过 subject 来执行具体的功能,Subject 中提供 loginlogout Realm:在开发中一般会创建 realm,可以来定义具体的功能实现(认证,SecurityManager:它的主要作用是将 shiro 框架的 subjectrealm 整合到一起。)Shiro 入门案例在案例中,使用了 ini 文件来定义数据。前提:shiro 开发依赖如果只是 shiro 基本开发 shiro-core如果与 web 整合shiro-web如果与 spring 整合 shiro-spri
8、ng使用 ehcache 缓存 shiro-ehcache为了方便 ,可以直接 shiro-all案例 1:1.创建一个 ini 文件2.编写代码案例 2:1.创建一个 ini 配置文件在这个配置文件中有一个自定义的 realm,开发代码创建 realm自定义 realm 要实现一个接口 Realmpublic class MyRealm implements Realm / 认证操作的方法public AuthenticationInfo getAuthenticationInfo(AuthenticationToken token) throws AuthenticationExcepti
9、on / 1.得到用户名与String username = (String) token.getPrincipal();char ch = (char) token.getCredentials(); String password = new String(ch);2.测试代码案例 3ini 配置文件mainjdbcRealm=.apache.shiro.realm.jdbc.JdbcRealm.mboPooledDataSourcedataSour.jdbc.DriverdataSource.jdbcUrl=jdbc:/localhost:3306/shirodemo dataSourc
10、e.user=root/ 2.判断用户名与是否正确if (!tom.equals(username) throw new UnknownAccountException(用户名错误);if (!123.equals(password) throw new IncorrectCredentialsException(错误);return new SimpleAuthenticationInfo(username, password, getName();/ realm 的名称public String getName() return myrealm1;/ 判断 token 类型publicsu
11、pports(AuthenticationToken arg0) return arg0 instanceof UsernamePasswordToken;测试代码案例 4主要演示Ini 配置文件测试代码实现关于 shiro 的 web 开发Shiro 与 web 整合,注意事项:必须导入 shiro-web 依赖Web.xml 文件中配置users tom=123,role1 rolesrole1=admin:add,admin:update,admin:delete,admin:select roles=user:selectdataSource.password=abcjdbcRealm
12、.dataSource=$dataSource securityManager.rea=$jdbcRealm需要配置一个 EnvironmentLoaderListener还需要配置一个 ShiroFilter会自动绑定到 ServletContext。简单说,对于 Factory 创建,SecrityManager 的创建不需要在控制。在 servlet 中直接通过 SecurityUtils.getSubject()得到 Subject 使用就可以。问题:关于jdbcRealm 问题?默认执行的表是 usersShiro 在 p2p 项目中使用Shiro 在实际开发中一般是与 spring
13、 整合。权限管理方案:Filter 实现粗粒度权限控制(url 级别)注解实现细粒度权限控制使用来控制权限硬编码Spring 整合 shiro步骤:1. 在 web.xml 文件中配置一个 FiltershiroFilter.springframework.web.filter.DelegatingFiltroxy.apache.shiro.web.env.EnvironmentLoaderListenershiroFilter.apache.shiro.web.servlet.ShiroFiltershiroFilter/*注意事项1.filter-name 的值就是在 spring 中配置
14、的 bean 的名称2.shiroFilter 它必须在 struts2 的 filter 之前2.配置 spring 的配置文件shiroFilter/*细粒度权限控制注解使用案例查询产品只有 findAllProduct 权限才可以修改产品要求必须具有admin 角色的用户才可以。使用 jpa 来描述 many-to-many使用 Adm来描述用户这段代码的意思是由对方来使用 RoleM来描述角色使用 PermisM来描述权限手动创建角色与select * from t_admin;inserto t_admin values(2,456,fox); select * from t_rol
15、e;- 添加角色inserto t_role values(1,admin); inserto t_role values(2,user);select * from admin_role;- 给 tom 用户赋予角色 admininserto admin_role values(1,1);- 给 fox 分配角色 userinserto admin_role values(2,2); select * from t_permis;- 添限 findAllProductinserto t_permisvalues(1,findAllProduct);select * from role_permis;shiro 注解使用操作步骤1.配置 spring 的配置文件2.需要给认证的用户使用自定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 编制会计报表
- 2025版高考物理二轮复习 高考大题评分细则
- 山东省淄博市高青县2024-2025学年高二上学期12月月考 数学试卷(含答案)
- 广东省肇庆市颂德学校2024-2025学年八年级上学期期中考试数学试题
- 2024-2025学年湖南省益阳市赫山区海棠学校九年级(上)期中物理试卷(含答案)
- 医学教材 肠梗阻患者的护理
- 公民道德与法律课件
- 5.4 稳压电路教学课件
- 高一 人教版 化学 第七章《第三节 乙醇和乙酸(第3课时) 官能团和有机化合物的分类》课件
- 2025届安徽省江淮十校高三上学期第二次联考(11月)生物试题(含答案解析)
- 教育心理学-形考作业4(第十至十一章)-国开-参考资料
- 2024二十届三中全会知识竞赛题库及答案
- JTT 1499-2024 公路水运工程临时用电技术规程(正式版)
- 2024年英语必修第二册 Unit2 全单元教学设计
- 2024年江苏省普通高中学业水平测试小高考生物、地理、历史、政治试卷及答案(综合版)
- 液化气站双控风险告知卡
- 钢结构防火涂料验收检测报告
- 人类用智慧设计世界——设计与生活
- 学校工会范文教代会换届选举方案
- 姓名代码查询
- 消费心理学课程标准
评论
0/150
提交评论