zoukankan      html  css  js  c++  java
  • cz_health_day10

    项目第十天

    项目需求

    进行权限控制以及图形报表的生成

    权限控制使用spring-security框架进行完成,图形及报表使用ECharts完成

    1、权限设置

    • pop文件中导入spring-security-web、spring-security-config坐标
    • 在health_backend工程的web.xml文件中配置用于整合Spring Security框架的 过滤器DelegatingFilterProxy  注意事项:filter标签与filter标签放一起  filter-mapping标签放一起,否则报错,此过滤器的名称固定springSecurityFilterChain
    • 定义SpringSecurityUserService类,实现UserDetailsService 接口重写 loadUserByUsername 返回值是UserDetails     1.通过用户名查找用户,用户不存在就登录失败 2.得到用户对象,通过用的id获得用户的角色 3.当用户角色不为空,再去通过角色的id获取用户的权限   将角色list将这些role与permission进行保存 然后存入UserDetials这个类中,参数包括用户名,用户密码以及list的权限信息
    • spring-security的xml文件配置 配置
      • 1. 静态资源不拦截<security:http security="none" pattern="/js/**"></security:http> 
      • 2.配置登录页面  将csrf设置为不可用
      • 3.配置logout登出设置 
      • 4.配置认证管理器
      • 5. 配置加密对象
      • 6.开启注解方式的权限控制
      • 7.<!--设置在页面可以通过iframe访问受保护的页面,默认为不允许访问-->

        <security:frame-options policy="SAMEORIGIN"></security:frame-options>

    • 进行注解设置 @PreAuthorize("hasAuthority('CHECKITEM_DELETE')")//权限校验 
    • 解决页面对无权限不提示的问题,在axios发送ajax的后面增加 catch方法,表示请求返回失败时,权限不足导致

    2、登录成功后再页面显示用户名与登出操作

    • 登录后跳转至main.html页面,触发钩子函数,发送ajax请求,获取用户的账号,用户的登录信息会保存到内存对象中,(Spring security完成认证后,会将当前用户信息保存到框架提供的上下文对象

      User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();)通过获取这个user对象来查找用户的姓名返回至前端显示在页面上

    • 为登出按钮绑定 点击事件,点击后触发logout.do的方法(这个方法是定义在logout标签中的),就可以登出返回至登录页面

    3、ECharts 商业级数据图标,百度开源可视化工具

    • 分析需要什么样的图标,找到合适的图表,复制源码 导入html页面,导入echarts.js文件 引入资源
    • 分析页面需要的数据  一个是月份 一个是每个月份对应的数据,这两个值要保持意义对应
    • 页面加载触发事件,异步从后端获取月份的数据,通过calindar来操作时间,获取当前的一年的所有月份,以及每个月份的会员信息量,将数据封装到map集合中返回给前端展示
  • 相关阅读:
    iframe跨页面调用函数
    $.extend()
    tab标签 插件 by 腾讯 jianminlu
    click事件多次触发 jQuery
    vertical-align
    display:inline-block
    在父页面访问iframe的东西
    2019牛客多校第三场
    2019HDU多校第一场
    2019江苏省赛
  • 原文地址:https://www.cnblogs.com/luckysupermarket/p/13706133.html
Copyright © 2011-2022 走看看