전체 글

전체 글

    [SpringBoot] SOP, CORS  이야기

    [SpringBoot] SOP, CORS 이야기

    CORS 이슈는 프론트 서버와 백엔드 서버가 분리되어 있다면 1번쯤은 꼭 만나는 이슈이다. CORS를 먼저 이야기하기전에 SOP에 대해서 이야기해 볼 예정이다... ● SOP (Same Origin Policy) 말 그대로 "같은 출처 정책"이다. 출처?????? 출처가 무엇인가? Origin (출처)란? - URI 스키마 (http, https) - 호스트 (person.jjhserverworld.pe.kr, localhost, naver.com... ) - 포트 (8080, 18080, 80) 위 3가지의 조합이 출처 이다.!! 먼저, Spring-boot에서는 기본적으로 아무것도 설정하지 않는다면 SOP 정책을 따른다. 즉, 자바스크립트 엔진 표준 스펙의 정책으로 호스트, 포트, 프로토콜이 같은 요..

    [SpringBoot] Security 인증 절차 시 DB Access 여러번 일어나는 이슈.

    [SpringBoot] Security 인증 절차 시 DB Access 여러번 일어나는 이슈.

    ● 이슈 발생 시점 SpringSecurity를 이용해 JWT 인증/인가 절차를 CustomTokenProvider, CustomUserDetailsService를 정의하여 개발하고 있었다. 1. 정상적인 아이디와 비밀번호로 인증 요청이 오면 DB에 유저가 있는지 확인하는 CustomUserDetailsService.loadUserByUsername()이 1번만 실행됨. ( 예상한 로직과 실제 정상적인 로직 ) 2. 비정상적인 아이디와 비밀번호로 인증 요청이 오면 CustomUserDetailsService.loadUserByUsername()이 여러 번 실행됨 ( 예상하지 못한 로직과 비정상적인 로직.... ) ● 분석 1. Provider의 authenticate는 ProviderManager에서 호..

    [SpringBoot] UserDetailsService UserNotFoundException 안되는 이유

    [SpringBoot] UserDetailsService UserNotFoundException 안되는 이유

    ● 이슈 발생 시점 Spring Security + JWT를 이용해 인증, 인가 기능을 구현하던 중 UserDetailsService에서 loadUserByUsername함수에서 id로 DB 조회 시 데이터베이스에서 찾을 수 없으면 UsernameNotFoundException을 Throw 하게 되어있는데 BadCredentialsException으로 리턴되고 있었다. 왜 그런지 궁금하여 분석 후 포스팅한다. ● 분석 AuthenticationManager에 UserDetailsService를 등록해주면 기본적으로 DaoAuthenticationProvider가 등록해준 UserDetailsService를 가지고 있게 된다. 그리고 AbstractUserDetailsauthenticationProvide..

    [Web] Web Service, Web Application 이야기

    이번 포스팅에서는 Web Service와 Web Apllication이 무엇인지 살펴볼 것이다. Web 관련 업무를 하면서 Web Service, Web Application이라는 용어가 자주 등장한다. 웹 서비스? 웹 앱? 어떻게 보면 비슷한 면이 있는 방면에 다르게 느껴지기도 한다. 이번 포스팅에서 자세하게 알아보자. Web Service Web Service 란. 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. ( 출처: 위키백과 ) 여기서 주의 할 것은 WWW ( World Wide Web )과 혼동하면 안 된다. WWW는 사람과 컴퓨터 간의 상호작용을 위한 시스템인 데 반해, Web Service는 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템입니다. ..

    [SpringBoot] 종속성 순환 에러 트러블슈팅

    [SpringBoot] 종속성 순환 에러 트러블슈팅

    AOP (Aspect Oriented Programming)를 공부하다가 "종속성 순환 에러"가 발생하였다. 해당 이슈에 대해 슈팅해보겠다. ● 트러블 이슈 각 메서드 ( Controller, Service, Repository )에서 처리 시간을 처리하는 AOP를 만드는 도중 아래 에러 메시지가 발생하였다. The dependencies of some of the beans in the application context form a cycle: memberController defined in file [C:\Users\pc\Desktop\hello-spring\hello-spring\out\production\classes\hello\hellospring\controller\MemberControl..

    [SpringBoot] StereoType, @Component과 @Bean 차이점

    [SpringBoot] StereoType, @Component과 @Bean 차이점

    이번 포스트에서는 @Bean과 @Component 어노테이션의 차이점을 알아볼 것이다. @Component로 지정된 클래스들은 모두 스프링에서 Bean으로 등록된다. @Component 어노테이션은 스프링 컨테이너에서 사용되는 StereoType인데 먼저 StereoType이란 무엇인지 살펴본다. StereoType이란? StereoType의 의미는 "고정관념". "정형화된 생각"이라고 한다. 스프링에서는 스프링 컨테이너가 관리 컴포넌트로 식별할 수 있게 해주는 마커 같은 의미를 지닌다. 이전 버전에서는 XML 파일에 Bean들을 모두 명시하여 관리하고 있었다. 하지만 이러한 관리는 XML 파일의 거대화를 막지 못하였다. 그래서 아래의 버전부터 어노테이션이 등장하기 시작했다. Spring 2.0 : @R..

    [CentOS] JDK + Apache Tomcat 설치하기

    [CentOS] JDK + Apache Tomcat 설치하기

    CentOS에 JDK + Apache Tomcat 설치하기 CentOS에 JDK+Tomcat tar파일 옮기기 먼저 CentOS에 JDK, Tomcat을 다운로드하아야 한다. JDK는 jdk-8 u1010 버전을 사용할 것이다. Tomcat은 9 버전을 사용할 것이다. 아래는 다운로드 링크이다. 파일 질라를 통해 CentOS 원하는 위치에 다운로드해놓자. 자바 jdk-8 u1010 버전, 아파치 톰캣 9 버전 JDK, Tomcat 설치 후 링크 설정 아래 명령어를 통해 tar파일 압축을 풀어준다. $ tar -zxvf jdk-8u101-linux-x64.tar.gz # tar명령어를 통해 tar파일 압축을 풀어준다. $ tar -zxvf apache-tomcat-9.0.37.tar.gz ln 명령어로 j..

    [MSSQL] CentOS MSSQL 설치하기

    [MSSQL] CentOS MSSQL 설치하기

    이번 포스트에서는 CentOS에 SQL Server를 설치해볼 예정이다. 무작정 따라 하기 콘셉트로 작성된 포스트이니.... 오류 발생 시엔 메모를 남기도록 하겠다... SQL Server 실행 패키지 설치 아래 명령어를 따라 하자 $ sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 232 100 232 0 0 416 0 --:--:-- --:--:-- --:--:..