栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot个人博客项目(3)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot个人博客项目(3)

继续干!
  • MD5加密

    public class MD5Utils {
    
        public static String code(String str){
            try {
                MessageDigest md = MessageDigest.getInstance("MD5");
                md.update(str.getBytes());
                byte[] byteDigest = md.digest();
                int i;
                StringBuffer buffer = new StringBuffer("");
                for(int offeset = 0;offeset < byteDigest.length ; offeset++){
                    i = byteDigest[offeset];
                    if(i < 0){
                        i += 256;
                    }
                    if(i < 16){
                        buffer.append("0");
                    }
                    buffer.append(Integer.toHexString(i));
                }
                //32位加密
                return buffer.toString();
            }catch(NoSuchAlgorithmException e){
                e.printStackTrace();
                return null;
            }
        }
    
        public static void main(String[] args) {
            System.out.println(code("111111"));
        }
    }
    

    测试:先将数据库中管理员密码改成111111对应的MD5加密后的密文 96e79218965eb72c92a549dd5a330112
    在请求登录控制器 /login 时,将密码进行MD5加密后再去数据库中查询

    Map userMap = new LinkedHashMap();
            userMap.put("username",username);
            userMap.put("password", MD5Utils.code(password));
            User user = userService.checkUser(userMap);
    

    使用密码111111 , 成功登录!

  • 登录拦截器
    李仁密老师视频中简单的使用了普通的拦截器,对admin下所有资源进行拦截,只有当user的session的存在时,才可放行访问。我们这里使用shiro安全框架进行改写,但首先李仁密老师的拦截器也简单介绍一下如何使用。

    • 普通拦截器
      编写 LoginInterceptor 自定义登录拦截器

      public class LoginInterceptor extends HandlerInterceptorAdapter {
      
          @Override
          public boolean preHandle(HttpServletRequest request,
                                   HttpServletResponse response,
                                   Object handler) throws Exception {
              if(request.getSession().getAttribute("user") == null){
                  response.sendRedirect("/admin");
                  return false;
              }
              return true;
          }
      }
      

      在 WebMVCConfig 中对该拦截器进行配置

      @Override
      public void addInterceptors(InterceptorRegistry registry) {
          registry.addInterceptor(new LoginInterceptor())
                  .addPathPatterns("/admin/**")
                  .excludePathPatterns("/admin")
                  .excludePathPatterns("/admin/login");
      }
      

      编写 BlogController 跳转路由

      @RequestMapping("/admin")
      public class BlogController {
      
          @GetMapping("/blogs")
          public String list(){
              return "admin/blogs";
          }
      }
      

      测试: 当未登录时直接访问/admin/blogs,会被拦截器所拦截重定向会/admin登录页,当登录后再访问,此时浏览器中存在user的session,因此可以直接访问。

    • 使用shiro安全框架实现登录认证
      点我传送 ------------------》SpringBoot+Shiro实现登录授权认证.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号