医药采购项目yycg-day06笔记_第1页
医药采购项目yycg-day06笔记_第2页
医药采购项目yycg-day06笔记_第3页
医药采购项目yycg-day06笔记_第4页
医药采购项目yycg-day06笔记_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

传智播客专注于Java、.Net和Php、网页平面设计工程师的培训第1章 统一结果处理1.1 回顾l 结果处理分类:l 提供不同实现类,对不同的结果进行处理l 以上3个实现类通过工具类(ResultUtil)统一处理l 之后的开发中n 成功提示:ResultUtil.createSubmitResult( message )n datagrid显示数据:ResultUtil.createDataGirdResult(total ,rows )1.2 统一异常处理分析l 开发中异常种类:n 程序运行时,一般情况由框架抛异常n 程序运行时,程序员认为主动抛出异常l 开发中请求种类:n 普通请求:路径跳转n ajax请求:路径不跳转l 开发异常处理n 方式1:dao和service抛,action tryu action每一个方法都需要进行try-catch,错误需要单独处理,维护成本高。n 方式2:l 异常处理1.3 统一异常处理实现l 异常封装对象:l 自定义异常创建:l 提供自定义异常拦截器n 实现类n 配置文件1.4 异常使用第2章 用户删除2.1 分析2.2 实现2.2.1 service层Overridepublic void deleteUser(String userId) /1 先查询(校验)SysUser sysUser = sysUserDao.findById(userId);if(sysUser = null)ResultUtil.throwExcepionResult(操作用户已不存在);/2 删除sysUserDao.delete(sysUser);2.2.2 web层/删除操作(建议:所有增删改,统一后缀 “_submit” ; 查询统一后缀“_result”)public void deleteuser_submit()/1 数据SysUserVo sysUserVo = this.getModel();/2 删除sysUserService.deleteUser(sysUserVo.getSysUserCustom().getId();/3 提示this.write_json(ResultUtil.createSubmitResult(删除成功);2.2.3 jsp页面/用户删除function deleteuser(id)_confirm(您确定要删除吗?,function()$(#sysuserdelid).val(id);jquerySubByFId(sysuserdelForm,deleteuser_callback););/删除成功回调function deleteuser_callback(data)message_alert(data, deleteuser_message_callback);/确定按钮回调function deleteuser_message_callback()sysuserquery();第3章 认证和授权3.1 认证和授权概念3.1.1 什么是认证和授权l 认证:系统进行身份认证。例如:QQ用户l 授权:在认证基础上,授予用户不同的权限。例如:QQ会员(等级)你的身份合法了,也就是认证通过了,当用户去访问资源的时候,检验有没有访问资源的权限。3.1.2 什么是认证l 1.登录(用户名和密码)l 2.指纹、虹膜l 3.打卡、刷卡l 4.扫一扫告诉系统你的身份是什么。3.1.3 用户名和密码认证流程3.1.4 认证实现方案l 方式1:自定义实现 ,登录拦截器(登录时将信息保存session,拦截器判断session是否有数据,从而进行不同处理)l 方式2:使用框架(第三方工具)n 安全框架:shiro、spring security 等l 安全框架已经完成基本功能:认证、授权、会话管理、加密等功能。3.1.5 shiro认证入门3.1.6 概述Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。l 导入坐标(jar包)3.1.7 shiro架构 方式 方式2:Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;Web Support:Web支持,可以非常容易的集成到Web环境;Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;Testing:提供测试支持;Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。 三大核心组件l 三大核心组件:Subject, SecurityManager 和 Realms.n Subject:需要被认证的主体,即“当前操作用户”。n SecurityManager:它是Shiro框架的核心,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。u 典型的Facade模式n Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。3.1.8 编写流程3.1.9 入门案例l 步骤1:编写ini配置文件n 位置:n 名称:shiro-token.inin 内容:必须添加“users”,一行一个账号,格式 用户名=密码l 步骤2:编写测试程序Testpublic void demo01()/1 使用工厂加载配置文件Factory factory = new IniSecurityManagerFactory(classpath:shiro-token.ini);/2 通过工厂获得安全管理器SecurityManager securityManager = factory.getInstance();/3.1 使用工具注册安全管理器(绑定本地线程)SecurityUtils.setSecurityManager(securityManager);/3.2 通过工具获得主体Subject subject = SecurityUtils.getSubject();/4 通过主体进行登录(认证) AuthenticationTokensubject.login(new UsernamePasswordToken(user1, 1234);System.out.println(认证通过);3.1.10 常见异常总结l UnknownAccountException , 未知账号异常(用户名不存在)l IncorrectCredentialsException,错误的凭证异常(密码不对)3.1.11 自定义realml realm:安全框架 和 安全数据 之间 桥梁n 安全数据默认从ini文件获取。使用IniRealm进行处理l 自定义realm需要继承:AuthorizingRealm (授权,已经含有认证)l 编写实现类public class TestCustomRealm extends AuthorizingRealm Overridepublic String getName() return TestCustomRealm;/认证Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException /1 获得身份信息String principal = (String) token.getPrincipal();/身份信息(用户名)/token.getCredentials();/凭证信息(密码)/2 通过用户名查询数据库if(! jack.equals(principal)/如果返回数据为null,表示账号不存在。return null;/3 模拟密码 - 将密码交

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论