본문 바로가기

SpringBoot101

Spring boot jar 파일 Linux 서버 실행 등록 하기 ### Spring boot Linux 서버 실행 등록 하기 * step 01 [maven 수정] ```xml org.springframework.boot spring-boot-maven-plugin true ```` * step 02 [시스템 서비스 등록] sudo vi /etc/systemd/system/서비스명.service ```sql [Unit] Description=설명 추가 After=networking.service [Service] User= ExecStart=/XXX.jar SuccessExitStatus=143 WorkingDirectory= [Install] WantedBy=multi-user.target ``` * step 03 [실행 가능 파일로 변경] chmod +x XXXX... 2018. 9. 12.
java 8 remove duplicate object in List 자바 8으로 객체 리스트의 중복 데이터 제거하기 @Test public void testaa() { List list = Arrays.asList( new test("test1","email1","option1"), new test("test1","email1","option2"), new test("test1","email1","option3"), new test("test1","email1","option3") ); System.out.println(list.size()); List list2 = new ArrayList(); //note: getOption 으로 비교 list2.addAll(list.stream().collect(Collectors.toConcurrentMap(test::getOpt.. 2018. 9. 12.
Send Global sms with AWS SMS * 아마존 SMS 보내기* 해당 기능은 현재 국내 Region 은 사용 할 수 없음.* 제공되는 Region 을 선택 하도록 한다. (ex: AP_NORTHEAST_1)* 보내는 사람의 전화번호는 설정 할수 없음(확인필요)* AWS-SMS Dashboard: https://ap-northeast-1.console.aws.amazon.com/sns/v2/home?region=ap-northeast-1#/text-messaging* 해당 기능을 사용하기 위해서는 IAM 설정과 ACCESSKEY,SECRETKEY 발급 필요* 참고 URL: https://console.aws.amazon.com/iam/home?region=ap-northeast-1#/roles/sms * maven dependency: com.. 2018. 8. 23.
Spring Security with CustomFilter /** * 기존 프로젝트에서는 클라이언트와 서버간 인증 흐름은 대체로 아래와 같다. * spring security 에서 제공하는 PasswordEncoder 사용 * - client 가 password 를 Sha256 으로 인코딩 하여 서버로 전달 * - server 는 인코딩 된 패스워드를 passwordEncoder 를 사용하여 DB 에 저장된 패스워드와 match 검사를 한다 * passwordEncoder 를 사용하면 내부적으로 match 검사를 한다. * -> Basic 인증을 사용한다고 가정. * 변경후: * client 와 server 에 보안 인증 모듈을 추가로 탑재 하게 되었다. * 공개키 방식의 보안 인증 과정은 아래와 같다. * - client 는 서버가 공개한 public key .. 2018. 8. 5.
Java 8 - Functional interface 사용방법 public class CommonFunc { // 내부 구현이 정해지지 않은 인터페이스 함수를 선언 @FunctionalInterface public interface intFunc { public int calc(int a, int b); } @FunctionalInterface public interface strFunc { public String strAppender(String s1, String s2); } }@Test public void test1(){ // 하나의 변수에 하나의 함수를 매핑 하는 람다식 // 인터페이스를 실제로 어떻게 사용할지를 아래 람다식으로 구현 하도록 한다. CommonFunc.intFunc add = (int a, int b) -> a+b; int result =.. 2018. 7. 25.
spring security - ip based url pattern access /** * 특정 url 에 대해 허용된 아이피만 접근 하도록 설정 하도록 한다. * 물론 hasRole 기반으로 해도 되겠지만, 아이피 기반으로 url 접근을 거부 하도록 한다. * 허용되지 않은 아이피로 url 에 접근시 다시 인증 받도록 한다. * 스프링에서 제공하는 SpEL 형식으로 추가하도록 한다. * * 해당 설정 후 로컬에서 테스트를 진행 하려고 하였으나, 실패 하였다. * 실패의 원인은 로컬에서 WAS 를 실행시 기본적으로 아이피가 0:0:0:0:0:0:0:1 와 같은 ipv6 이 주소를 가져오도록 하였기 때문이다. * VM 옵션 혹은 WAS Arguments 값을 수정 해주도록 한다. * intelliJ: -Djava.net.preferIPv4Stack=true * 톰캣 WAS : cata.. 2018. 7. 18.