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集合中返回给前端展示
  • 相关阅读:
    [转]关于tomcat 中的 tomcat-users.xml 配置不生效原因
    sql准确判断某个ip
    PS快捷键
    指向指针的指针
    eclipse项目中.classpath文件详解
    使用MyBatis_Generator工具jar包自动化生成Dto、Dao、Mapping 文件
    eclipse同一个工作空间下分开多个项目
    Java程序发送邮件
    Java中实现短信发送
    Java如何判断字符串中包含有全角,半角符号
  • 原文地址:https://www.cnblogs.com/luckysupermarket/p/13706133.html
Copyright © 2011-2022 走看看