개발/Spring
[Spring] apple client_secret (JWT) 생성
안녕하세요 코딩하는헬린이 입니다 3대 500을 위하여 ~ ~ 이번에 애플에서 회원 탈퇴시 토큰을 강제로 revoke 시켜야 앱 심사가 통과한다해서 뭐 기능을 만들었습니다. 어려운 기능은 아니지만 나중에 제가 또 복붙해서 쓸수있기에 남기는중이에요 자판 치는건 귀찮~ 근손실~ revoke 또는 login 시킬려면 clientSecret 이 필요 apple api 호출할때 필수값입니다. 아래는 애플 clientSecret(JWT) 만드는 방식입니다. 여러 방법이 많겠지만 저는 간단하게~ public String createClientSecret() throws IOException, NoSuchAlgorithmException, InvalidKeySpecException { Date now = new Date..
[Spring boot] embedded mongodb replica 설정
안녕하세요 코딩하는 헬린이입니다. 간만에 글을 작성하네요 ~ 아침에 일어나서 헬스도하고 회사도 갈려하니 힘이드네요.. 이번에는 소스 공유좀 드릴려고 합니다. 회사에서 몽고db를 쓰는데 임베디드 몽고에 레플리카 설정을 하기위한 소스 공유하려 합니다. @Profile("local") @Configuration(proxyBeanMethods = false) @AutoConfigureBefore({ MongoAutoConfiguration.class }) @ConditionalOnClass({ MongoClient.class, MongodStarter.class }) @Import({ EmbeddedMongoAutoConfiguration.class, EmbeddedMongoReplisetConfig.Depen..
[Spring] poi 병목현상 해결!
안녕하세요 row 생성시 퍼포먼스가 안나와 찾아봐서 포스팅합니다. 저 같은 경우 poi를 이용하여 엑셀 생성시 1000건 2000건 뿐인데 퍼포먼스가 안나왔으며 로컬에서 실행시 다운로드는 되지만 최소 4분 배포 후 테스트 시 timeout 에러가 나왔습니다. 각 시트에 autoSizeColumn 메소드를 사용해 조정을 한게 원인이었으며 ex) // 데이터 부분 생성 for(Map vo : deliverList) { row = sheet.createRow(rowNo++); row.setHeight((short)512); sheet.autoSizeColumn(0); sheet.setColumnWidth(0,(sheet.getColumnWidth(0))); cell = row.createCell(0); cel..
[Spring] poi를 이용한 excel 다운로드
안녕하세요 오늘은 poi 라이브러리를 사용한 엑셀 다운로드 예제를 보여드리겠습니다. pom.xml org.apache.poi poi 3.15 의존성 추가를 일단 해주셔야합니다. public void deliveryExcelDownload(List deliverList, HttpServletResponse response) throws IOException { // 워크북 생성 Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("엑셀시트"); //엑셀 시트 이름 Row row = null; Cell cell = null; int rowNo = 0; // 테이블 헤더용 스타일 (컬럼) CellStyle headStyle = wb.createCel..
[Spring] 파일 정보를 못가져오는 에러! MultipartFile에 Xss Filter적용
안녕하세요 Filter 문제로 인하여 엑셀업로드를 2주동안 삽질을 하여 포스팅합니다. XSS Filter란??? Xss Filter란 사용자들의 악의적인 스크립트 공격(ex, )등을 막기 위해 사용하는 filter로 안정적인 웹서비스를 위해서는 필수적인 요소입니다. XSS는 Cross-Site Scripting를 의미합니다. 그래서 왜! form의 타입이 enctype="multipart/form-data"일 경우 XSS Filter를 타지 못함 그래서!!!어케 문제를 해결이 되나요..... form의 타입이 enctype="multipart/form-data"일 경우 XSS Fitler를 타지 못하는 문제를 해결 하기 위해서 XSS Filter 전에 "MultipartFilter"를 적용해 주어 먼저 ..
[Spring] 스프링부트 시큐리티를 이용한 로그인!
안녕하세요 오늘은 스프링 시큐리티를 이용한 로그인을 할려합니다. 시작하겠습니다. 1. 우선 의존성 추가 해주셔야합니다. org.springframework.boot spring-boot-starter-security 추가하시고 기동만 하셔도 아래와 같은 로그인 화면이 나오는데요 보통 아이디는 user password는 콘솔창에 Using generated security password ~~라고 run 도중 찍혀있습니다. 그거 입력하시면 되요 하지만 저희는 커스텀하여 진행하겠습니다. SecurityConfig.java package kr.home.service; import org.springframework.beans.factory.annotation.Autowired; import org.spring..
[Spring] FCM 을 이용한 비동기 전송
안녕하세요. 오늘은 FCM을 이용한 해당 어플로 push 전송을 하는 예제를 포스팅하겠습니다. 시작하기에 앞서 안드로이드 및 ios 등 Firebase console 에서 프로젝트를 생성 하신뒤 FCM key를 이용한 디바이스 토큰을 발급 받아야 테스트가 가능합니다. blog.naver.com/ndb796/221553341369 안드로이드 앱 FCM 푸시 알림 예제 (+ 서버에서 푸시 알림 보내기) 이번 시간에는 안드로이드 앱에서 FCM을 이용해 푸시 알림을 받는 방법에 대해서 알아보도록 하겠습니다... blog.naver.com 준비가 안되셨다면 해당 예제를 준비하셔야 합니다. 시작하겠습니다. 1. Pom.xml 추가 com.google.firebase firebase-admin 6.5.0 org.js..
[Java] Spring RestTemplate 에서 인증서 유효성 검사 안 함
SSL 통신 시 ReRestTemplate 사용 할 때 인증서 유효성 체크 안하게 하는 로직이다. private RestTemplate makeRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException { TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() .loadTrustMaterial(null, acceptingTrustStrategy) .build(); SSLConnecti..