spring security实战项目笔记-登录与退出,显示头像,用户菜单显示

Posted 健康平安的活着

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring security实战项目笔记-登录与退出,显示头像,用户菜单显示相关的知识,希望对你有一定的参考价值。

一 登录

1.1 登录页面

1.登录页面

 2.在security进行配置认证和授权

 3.认证通过与否返回给前端json串,进而进行判断

 这里认证成功进行了自定义json处理:

 登录失败也进行了处理

 5.登录返回给前端的json串

成功的话,重定向到:/index接口的访问

失败的话,进行页面的提示显示。

 可以看到controller层,index的访问接口,成功跳转到:views/index这个页面。

 

二  退出

在配置类中添加注销功能

 页面触发事件:

 三 显示头像

1.页面

2.数据库存的头像名称

需要在后台的时候,提供获取图片的方法。

${#authentication.principal.loginUser.headImg} 这个代码是直接获取登录认证用户的头像

3.配置上传路径

mz.upload.path=D:\\\\workspace\\\\mz_auth\\\\src\\\\main\\\\resources\\\\static\\\\upload

4.java代码:mz.upload.path+头像名称,才是完整路径

@Controller
public class FileUpload {

    @Autowired
    private IUserService userService;

    @Value("${mz.upload.path}")
    private String uploadPath;
    

    @RequestMapping(value = "/showimage/{image_name}")
    public String showphoto(@PathVariable("image_name") String image_name,HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        response.setDateHeader("Expires", 0);
        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
        response.setHeader("Pragma", "no-cache");
        response.setContentType("image/jpeg");

        // 获得的系统的根目录
        File fileParent = new File(File.separator);
        // 获得/usr/CBeann目录
        System.out.println("读取头像:"+image_name);
        File file = null ;
        String os = System.getProperty("os.name");
        ServletOutputStream out = response.getOutputStream();
        try {
            if (os.toLowerCase().startsWith("win")) {  //如果是Windows系统
                file = new File(uploadPath +"\\\\"+ image_name);
            } else {  //linux 和mac
                file = new File(fileParent, uploadPath.substring(1) +"/"+ image_name);
            }
            IOUtils.copy(new FileInputStream(file),out);
            out.flush();
        } finally {
            out.close();
        }
        return null;
    }

}

 四 加载用户菜单信息

1.通过用户id,查询出用户所属的菜单信息:这个sql语句实现将父级菜单和子级菜单进行绑定,在配置文件中<resultMap>里面的<collection>标签,进行了同一父级下子菜单进行了汇总。

 

 

2. 在controller里进行登录的判断,成功后才可以进行查询菜单信息

 3.页面的遍历渲染:

一级父菜单遍历完后,子菜单进行遍历。

 

 

以上是关于spring security实战项目笔记-登录与退出,显示头像,用户菜单显示的主要内容,如果未能解决你的问题,请参考以下文章

spring security实战项目笔记

spring security实战项目笔记-菜单管理

spring security实战项目笔记-用户管理

Spring Security 从入门到实战

Spring Security 入门原理及实战

Spring Security 实战:QQ登录实现