반응형
package com.mk.common.web.security;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
public interface FileSecurityInterface {
/**
* 파일 업로드 암호화
*
* @param multi
* @return
*/
MultipartFile encryptUpload(MultipartFile multi);
/**
* 파일 업로드 암호화
*
* @param file
* @return
*/
File encryptUpload(File file);
/**
* Excel 파일 업로드 암호화
*
* @param multi
* @return
*/
MultipartFile encryptExcelUpload(MultipartFile multi);
/**
* 파일 다운로드 복호화
*
* @param file
* @return
*/
File decryptDownload(File file);
/**
* Excel 파일 다운로드 복호화
*
* @param file
* @return
*/
FileOutputStream decryptDownload(FileOutputStream file);
}
package com.mk.common.web.security;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
public class FileSecurity implements FileSecurityInterface {
private static FileSecurityInterface instance;
public FileSecurity(){}
public static FileSecurityInterface getInstance(String libPath){
if(instance == null) {
try {
instance = (FileSecurityInterface) Class.forName(libPath).newInstance();
} catch (ClassNotFoundException e) {
instance = new FileSecurityException();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return instance;
}
@Override
public MultipartFile encryptUpload(MultipartFile multi) {
return multi;
}
@Override
public File encryptUpload(File file) {
return file;
}
@Override
public MultipartFile encryptExcelUpload(MultipartFile multi) {
return multi;
}
@Override
public File decryptDownload(File file) {
return file;
}
@Override
public FileOutputStream decryptDownload(FileOutputStream file) {
return file;
}
}
package com.mk.common.web.security;
import org.apache.log4j.Logger;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
public class FileSecurityException implements FileSecurityInterface{
public Logger logger = Logger.getLogger(this.getClass());
public FileSecurityException(){}
@Override
public MultipartFile encryptUpload(MultipartFile multi) { return multi; }
@Override
public File encryptUpload(File file) { return file; }
@Override
public MultipartFile encryptExcelUpload(MultipartFile multi) { return multi; }
@Override
public File decryptDownload(File file) { return file; }
@Override
public FileOutputStream decryptDownload(FileOutputStream file) { return file; }
}
반응형
'Back > Spring Java' 카테고리의 다른 글
웹 보안 XSS(Cross Site Scripting) 취약점 대응 (0) | 2023.06.25 |
---|---|
Spring ssl cors설정 403오류 (0) | 2022.04.08 |
PreparedStatement 대량 insert(addBatch, executeBatch) (0) | 2021.03.10 |
특정일로 부터 날짜 계산 (Java) (0) | 2020.07.28 |
압축파일 생성 (0) | 2020.07.03 |