18/7/30~18/8/3实习报告

7/30 星期一

已办事项:

  1. 了解了软件架构的发展过程。
    单体架构 --> 垂直架构 --> SOA架构 --> 微服务架构
  2. 搭建SSM框架,对数据可视化平台进行了简单分层。(待改善)

           

     3.从码云上了解当下后台管理集成模板。用户管理,部门管理,权限管理,日志管理等主要模块。  

待办事项:

  1. 学习shiro权限管理。
  2. 阿里Druid数据库监控。
  3. Mybatis-plus替换Mybatis作为ORM框架。
  4. 明确数据平台需求,以及技术选型,制定详细开发计划。

7/31 星期二

已办事项:

  1. 学习Shiro权限管理框架
  2. 自定义Realm进行模拟权限管理(认证模块)

权限管理笔记:

权限管理:实现对用户访问系统的控制,按照安全规则或策略控制用户只能访问自己被授权的资源。
用户认证:验证用户身份合法性。
关键对象:
subject:主体(用户/程序),访问系统资源
principal:身份信息,唯一性。一个主体可拥有多个身份信息,但是都有一个主身份信息(primary principal)
credential:凭证信息,密码/指纹/证书
主体在进行身份认证时需要提供相应的身份信息和凭证信息。
用户授权:用户认证通过后,对用户访问的资源进行控制,具有访问权限才可访问。 -- 访问控制
授权过程:who 对 what/which 进行 how 操作
who:主体subject,subject在认证通过后系统进行访问控制
what/which:资源resource,subject必须几倍资源的访问权限才可以访问该资源
资源Resource:对比类与实例
资源类型:系统的用户信息
资源实例:系统中id为001的用户 -- 资源类型的具体化
how:权限/许可permission,subject必须具有permisson才可以访问资源。permission权限比如:CURD
分配权限:
用户需要分配相应的权限才可访问相应的资源,权限是对资源的操作许可。资源权限需要持久化存储,存储在关系数据库中。
权限模型:

权限控制:授权核心
基于角色的访问控制:不利于系统维护,拓展。
基于资源的访问控制:
资源在系统中是不变的,对资源的访问需要permission。变更权限只需要分配在权限模块上去操作。
权限管理解决方案:
粗粒度和细粒度权限:
粗粒度权限管理,是对资源类型的权限管理 
细粒度权限管理,是对资源实例的权限管理 -- 数据级别的权限管理
如何实现粗粒度的权限管理?
将权限管理的代码抽取出来,在系统架构级别进行统一处理。 例如:通过springmvc拦截器实现授权
如何实现细粒度的权限管理?
在数据级别的是没有共性的细粒度的权限管理就是业务逻辑的一部分,在业务层进行处理。
解决方案:
基于URL拦截的方式实现:springmvc配置拦截器
拦截器模式下,将需要拦截进行判断处理的url进行集中处理,每次请求均会拦截,此时对用户身份认证(登录)会产生多次的数据库查询请求,这里的解决方案一方面是将用户的信息(基本信息,权限信息 -- 可访问的url等)存入Session/cache。
基于权限管理框架的实现:shiro权限管理框架
小结:
使用基于url拦截的方式,实现起来比较简单,不依赖框架,仅适用web容器提供的filter即可(springmvc下是interceptor),需要将所有的url进行登记配置。
但是配置繁琐,不易于维护,url和权限的表示方式不规范。

待办事项:

  1. Shiro权限管理(授权模块)
  2. Docker容器环境搭建学习
  3. Quartz任务调度框架学习
  4. 细化平台功能模块
     

8/1 星期三

已办事项:

  1. 完成了Shiro权限管理的学习。
  2. 阿里巴巴Java开发手册已上传。
  3. 搭建了SpringBoot的开发环境,想采用开源后台管理框架Guns作为脚手架,进行数据可视化平台的开发。
  4. 解决了IDEA中Maven项目的依赖冲突和依赖不加载问题。

Shiro权限管理:博客已发布,详情见:https://blog.csdn.net/nerver_77/article/details/81318357

待办事项:

  1. 学习开源后台管理Guns框架。https://gitee.com/naan1993/guns

8/2 星期四

已办事项:

  1. Guns框架学习,成功实现了订单管理的CURD基本操作。
  2. 学会使用mp的代码生成器和guns框架中的代码生成器。简化开发流程,只关注业务逻辑实现。
  3. 对订单管理的CURD操作进行了完善优化,包括基于js的表单验证。
  4. 学习Spring validation验证框架对入参实体的验证方式。
  5. springboot基于不同环境中的配置一体化,dev,test,pro环境中的一体化部署。

待办事项:

  1. 了解@Validated和@Valid区别。
  2. 继续学习Guns框架,学习作者的代码风格和封装策略。
  3. 学习mp中EntityWrapper条件构造器的使用。

8/3 星期五

已办事项:

  1. 了解了Spring validation验证框架中@Validated和@Valid区别。
  2. 学习了Guns框架中SpringBoot的配置方面内容。
  3. 开始采用MarkDown记录笔记。

Guns框架学习记录:已整理并发表博客。

  1. 基本框架搭建 + 订单管理Demo https://blog.csdn.net/Nerver_77/article/details/81382552 文章最后说明了Spring validation验证框架中@Validated和@Valid区别。
  2. SpringBoot中的配置学习 https://blog.csdn.net/Nerver_77/article/details/81392402

待办事项:

  1. 继续Guns框架的学习。
  2. Guns框架文档推荐
    1. mybatis-plus官方文档:http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b
    2. beet官方文档:http://ibeetl.com/guide/#beetl
    3. SpringBoot官方文档:https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/  1.5.6版本英文
      中文版本:https://my.oschina.net/geekidentity/blog/872888 1.5.2版本

猜你喜欢

转载自blog.csdn.net/Nerver_77/article/details/81448319
18