发表于: 2019-10-17 12:42:42

1 909


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)

昨天请了一天假调整生物钟。今天开始写后台管理。

一:完成后台登录退出

//登录
@PostMapping("/a/login")
public ResponseData login(String name, String password) {
   logger.error("登录的用户为:"+name+"····密码:"+password);
   logger.error("1");
   Subject subject = SecurityUtils.getSubject();
   logger.error("2");
   UsernamePasswordToken token = new UsernamePasswordToken(name, password);
   logger.error("3");
   try {
       subject.login(token);
       logger.error("4");
       Session session=subject.getSession();
       logger.error("5");
       session.setAttribute("subject", subject);
       logger.error("6");
       //登录成功显示相应的权限,这里要查询用户权限:
       Map<String, Object> data = new HashMap<>();
       logger.error("7");
       //登录成功返回该用户的所有信息
       Manager manager =managerService.getByName(name);
       //只走到这一步····················
       logger.error("8");
       List<Role> role=roleService.listRoles(name);
       //这里返回的是权限名,也可以返回权限url
       logger.error("9");
       Set<String> ps= permissionService.listPermissions(name);
       logger.error("10");
       data.put("manager",manager);
       data.put("roles",role);
       data.put("permissions",ps);
       return ResponseDataUtil.buildSuccess("200","success",data);

   } catch (AuthenticationException e) {
       return ResponseDataUtil.buildError("验证失败");
   }
}


二:完成shiro的大体框架

可以正常工作。

三:完成管理员列表接口。

/**
* 管理员列表
* */

@GetMapping("/manager/list")
public ResponseData list(@RequestParam(value = "pageNumber", defaultValue = "0")  Integer pageNumber,
                        @RequestParam(value = "pageSize", defaultValue = "10")  Integer pageSize){

   //1. 在参数里接受当前是第几页 pageNumber ,以及每页显示多少条数据 size。 默认值分别是14
   //2. 根据start,size进行分页,并且设置id 倒排序
   PageHelper.startPage(pageNumber,pageSize,"id desc");
   //3. 因为PageHelper的作用,这里就会返回当前分页的集合了

   List<Manager> managers= managerService.list();
   //4. 根据返回的集合,创建PageInfo对象
   PageInfo<Manager> page = new PageInfo<>(managers);
   //5. PageInfo对象扔进map,返回给前端

   Map<String, Object> data = new HashMap<>();
   data.put("managers", page);
   return ResponseDataUtil.buildSuccess("10200","success",data);
}

四、完成增加管理员列表

/**
* 增加管理员页面
* */
@GetMapping("/manager")
public ResponseData managerAddInfo(){
   return ResponseDataUtil.buildSuccess("200","success");
}

五、待完成增加管理员接口

/**
* 增加管理员
* */

@PostMapping("/manager")
public ResponseData add(String name, String password){

   String salt = new SecureRandomNumberGenerator().nextBytes().toString();
   int times = 2;
   String algorithmName = "md5";

   String encodedPassword = new SimpleHash(algorithmName,password,salt,times).toString();

   Manager manager = new Manager();
   manager.setName(name);
   manager.setPassword(encodedPassword);
   manager.setSalt(salt);
   manager.setCreateAt(new Date().getTime()/1000);
   //获取当前的用户id
   Subject subject = SecurityUtils.getSubject();
   subject.
   manager.setCreateBy(Long.valueOf(1));
   int result = managerService.add(manager);

   if(result != 1){
       return ResponseDataUtil.buildError("添加异常");
   }

   return ResponseDataUtil.buildSuccess("200","success");
}

考虑怎么在登录的情况下获取当前管理员的信息。


明天计划的事情:(一定要写非常细致的内容)
遇到的问题:(遇到什么困难,怎么解决的)

在完成shiro大体的框架时,出现了较多的问题,最后参考任务八的service和web分离的程序,将所有shiro的配置放在web端。完成shiro的配置。




收获:(通过今天的学习,学到了什么知识)


返回列表 返回列表
评论

    分享到