java实现读取上传文件key进行安全登录

来源:互联网 发布:阿里云百度云腾讯云 编辑:程序博客网 时间:2024/06/06 02:14
 /**  * inputStrem 转成 字符串  * @param is  * @return  */public static   String inputStream2String(InputStream is){    StringBuffer buffer = new StringBuffer();     try{         BufferedReader in = new BufferedReader(new InputStreamReader(is));         String line = "";         while ((line = in.readLine()) != null){             buffer.append(line);         }     }catch(Exception e){         e.printStackTrace();     }     return buffer.toString(); }

/** *  密码校验后,再进行 证书校验 * @param mcPath * @return */private Response  checkKeyAfter(MultipartFile mcPath){    try{        /**         * 后缀 校验通过,验证证书密码         */        CmsHallInfo cmsHallInfo  = cmsHallInfoService.findById(5l) ;        if(cmsHallInfo==null){            logger.info("无效的key");            return Response.error(GlobalEnum.GLOBAL_ENUM_APP_CHECKUSER_CODE.getValue(), Constants.DIALOG_LOGIN_FAIL);        }        String key = FileUtil.inputStream2String(mcPath.getInputStream());        if(!key.equals(cmsHallInfo.getValidKey())){            logger.info("无效的key");            return Response.error(GlobalEnum.GLOBAL_ENUM_APP_CHECKUSER_CODE.getValue(), Constants.DIALOG_LOGIN_FAIL);        }    }catch (Exception e){    }    return Response.ok(GlobalEnum.GLOBAL_ENUM_SUCCESS_CODE.getValue(),Constants.DIALOG_LOGIN_SUCCESS);}

/** * *  判断file 空处理,后缀名不符合 * @param request * @param mcPath * @return */private Response  checkKeyBefore(HttpServletRequest request ,MultipartFile mcPath){    try {        if(mcPath==null || mcPath.getSize()==0l){            logger.info("无效的key.....");            return Response.error(GlobalEnum.GLOBAL_ENUM_APP_CHECKUSER_CODE.getValue(), Constants.DIALOG_LOGIN_FAIL);        }        /** * 校验 后缀名 */        String type = "" ;        String keyName = "" ;        MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;        Iterator<String> iter = multiRequest.getFileNames();        while (iter.hasNext()) {            String fileName = iter.next();            MultipartFile image = multiRequest.getFile(fileName);            keyName = image.getOriginalFilename();        }        if(StringUtils.isNotEmpty(keyName)) {            if (keyName.lastIndexOf(".") > 0) {                type = keyName.substring(keyName.lastIndexOf("."));                if(StringUtils.isNotEmpty(type)){                    /** 无效的Key*/                    if(!type.equals(".key")){                        logger.info("无效的key");                        return Response.error(GlobalEnum.GLOBAL_ENUM_APP_CHECKUSER_CODE.getValue(), Constants.DIALOG_LOGIN_FAIL);                    }                }else{                    logger.info("无效的key");                    return Response.error(GlobalEnum.GLOBAL_ENUM_APP_CHECKUSER_CODE.getValue(), Constants.DIALOG_LOGIN_FAIL);                }            }        }else{            /** * 无效的KEY             */            logger.info("无效的key");            return Response.error(GlobalEnum.GLOBAL_ENUM_APP_CHECKUSER_CODE.getValue(), Constants.DIALOG_LOGIN_FAIL);        }    }catch (Exception e){    }    return Response.ok(GlobalEnum.GLOBAL_ENUM_SUCCESS_CODE.getValue(),Constants.DIALOG_LOGIN_SUCCESS);}