首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaElectricalbusiness——用户开发模块1

JavaElectricalbusiness(第三章)——用户开发模块1

用心分享每一篇干货

我们的整个项目分模块进行,每个模块都会介绍数据表设计、接口设计

首先看看用户模块的功能:登录、用户名验证、注册、忘记密码、提交问题答案、重置密码、获取用户信息、更新用户信息、退出登录

而在用户模块中,我们也将学习到以下的知识点

——横向越权、纵向越权安全漏洞

——MD5明文加密及增加salt值

——Guava缓存的使用

——高复用服务响应对象的设计思路及抽象封装

——MyBatis-plugin使用技巧(文章不提及、有兴趣的同学可以自行查找)

——Session的使用

——方法局部演进

横向越权、纵向越权的安全漏洞(解析)

有关MD5加密的使用,我想大部分人都是比较熟悉的,这里简单说明后,会加一个salt值,提高加密的安全性

Guava缓存是一个大部分公司都会调用的缓存工具类,性能较好,大家可以找时间单独了解学习。

接下来是代码思路的讲解与工具类使用的说明。

上面是项目在开发用户模块中主要用到的类与xml,接下来我会一个一个接口的讲解,以UML图的形式。

以上是后台用户登录API的大致开发流程,接下来我会针对这个API流程图,截取代码,大致和大家讲解,涉及工具类的时候就一笔带过,在之后会单独补充工具类的wiki。

这是DataBase中的两个方法的sql语句,我们使用myabtis,就是将SQL语句写在xml中,通过mapper映射,spring整合后的myabtis回去扫码该路径下的xml,执行SQL语句。

我们的Dao层其实只是方法声明的接口,这里声明两个sql方法,具体实现就是在xml中的SQL语句。

以上是serverImpl层的login实现代码,首先调用dao层检查是否存在用户名,存在用户名则检查用户名和密码(存入密码是MD5后的),所以这里的密码也要先进行MD5加密,再进行比较,检查正确后,返回用户对象,并将密码置空,因为Controller层要将用户存入session中,所以要将密码置空,保证用户信息安全。

控制层方法直接调用service层,如果service调用成功,判断返回用户权限是否是管理员,是则将信息保存到session中,因为在接下来的方法中,都会先在session中判断用户是否是管理员且登录状态,如果返回false,则没有权限请求API。

我们项目使用的是SSM、SpringMVC的,这里的Controller里返回的ServiceResponse即类似于modelMap,只是对它做了泛型封装。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G08P5500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券