Compare commits

..

7 Commits

  1. 58
      src/main/java/com/palnet/biz/api/comn/controller/ComnController.java
  2. 3
      src/main/java/com/palnet/biz/config/WebSecurityConfig.java

58
src/main/java/com/palnet/biz/api/comn/controller/ComnController.java

@ -0,0 +1,58 @@
package com.palnet.biz.api.comn.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@RestController
@Slf4j
@RequestMapping("/api/comn")
@RequiredArgsConstructor
public class ComnController {
private final HttpServletResponse response;
private final String BASE_URL = "/data/pdf/3-1.paldesign.pdf";
@GetMapping("/pdf-download")
public void pdfDownload(){
log.error("ComnController - pdfDownload()");
try (InputStream inputStream = new FileInputStream(new File(BASE_URL));
OutputStream outputStream = response.getOutputStream()) {
String fileOriName = "3-1.paldesign.pdf";
fileOriName = URLEncoder.encode(fileOriName, StandardCharsets.UTF_8);
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileOriName + "\"");
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
} catch (IOException e) {
log.error("error -> {}", e.getMessage());
}
}
}

3
src/main/java/com/palnet/biz/config/WebSecurityConfig.java

@ -48,7 +48,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
"/webjars/**", "/webjars/**",
/* swagger v3 */ /* swagger v3 */
"/v3/api-docs/**", "/v3/api-docs/**",
"/swagger-ui/**" "/swagger-ui/**",
"/api/comn/pdf-download" // TODO :: 전시회를 위한 임시 허용 URL
}; };
@Autowired @Autowired

Loading…
Cancel
Save