본문 바로가기

BackEnd

스프링 시큐리티의 내부구조 1. 스프링 시큐리티의 내부구조 스프링 시큐리티에서 가장 중요한 역할을 하는 존재가 인증을 담당하는 AuthenticationManager(인증 매니저)이다. AuthenticationManager는 다양한 방식의 인증을 처리할 수 있도록 위와같은 구조로 설계되어 있다. ProviderManager는 인증에 대한 처리를 AuthenticationProvider라는 타입의 객체를 이용해서 처리 를 위임한다. AuthenticationProvider(인증 제공자)는 실제 인증 작업을 진행한다. 이때 인증된 정보에는 권한에 대한 정보를 같이 전달하게 되는데 이 처리는 UserDetailsService라 는 존재와 관련 있다. UserDetailsService 인터페이스의 구현체는 실제로 사용자의 정보와 사용자..
스프링 시큐리티의 기본동작 방식 1. 스프링 시큐리티의 기본 동작 방식 스프링 시큐리티의 기본 동작 방식은 서블릿의 여러 종류의 필터와 인터셉터를 이용해서 처리된 다. 필터는 서블릿에서 말하는 단순한 필터를 의미하고 인터셉터는 스프링에서 필터와 유사한 역 할을 한다. 필터와 인터셉터는 특정한 서블릿이나 컨트롤러의 접근에 관여한다는 점에서는 유사하지만 결정 적인 차이를 구분하자면 필터는 스프링과 무관하게 서블릿 자원이고, 인터셉터는 스프링의 빈으로 관리되면서 스프링의 컨텍스트 내에 속한다는 차이이다. 왼쪽은 일반 필터로 현재 실행되는 서블릿 컨텍스트에 속하긴 하지만 스프링과 무관하다. 반면에 인터셉터의 경우는 스프링의 내부에서 컨트롤러를 호출할 때 관여하기 때문에 스프링의 컨 텍스트 내에 있는 모든 자원을 활용할 수 있다. 하나의 스프링..
스프링에서 context에 대한 이해 1. context란? 번역하면 문맥, 맥락이지만, 직관적으로 이해하자면 메모리에 로딩된 정보 덩어리라고 볼 수 있다. 단순한 메모리정보가 아니라 서로 연관성을 갖는 정보들끼리의 묶음이라고 볼 수 있다. 2. servlet-context 하나의 서블릿이 메모리에 로딩될때 연결,포함된 각종 설정정보들, 변수들, 함수들이 서블릿 바운 더리내에서 이해할 수 있는 묶음영역으로 메모리에 올라온다고 보면 된다. 서블릿 컨테이너(Apache Tomcat)가 시작되면, 해당 서블릿 컨테이너는 모든 웹 어플리케이션들 을 배포(deploy)하고 로드(load)하면서 ServletContext를 한번 생성하여, 서버의 메모리에 올라간 다. 3. servlet-context.xml, root-context.xml, web.x..
스프링 시큐리티란? 1. 스프링 시큐리티란? 아이디와 비밀번호를 입력해서 로그인하여 사용자를 인증(Authentication)하고, 로그인 후 프로그램의 각각의 기능 대한 권한(Authorization)을 부여 하는 기능을 구현한 프레임워크 2. 보안 관련 용어 1) 접근 주체(Principal) : 보호된 대상에 접근하는 유저2) 인증(Authentication) : 현재 유저가 누구인지 확인하는 과정( 예: 로그인 )3) 허가,인가(Authorization) : 인증 된 상태에서 인증 주체가 어떤 서비스나 기능을 사용할 수 있는지에 대한 자격부여
프로세스(process)와 스레드(thread) 1. 프로세스(process)란?프로세스(process)란 간단히 말해서 ‘실행 중인 프로그램(program)’이다. 프로그램을 실 행하면 0S로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되 어 있다.2. 스레드(thread)란?스레드(thread)란 프로세스(process) 내에서 자원을 이용해서 실제로 작업을 수행하는 주체를 의미 한다. 즉, 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말한다. 쓰레드를 프로세스라는 작업공간(공장)에서 작업을 처리하는 일꾼으로 생각하면 이해하기 쉬..
git 충동해결방법 1. pullrequest를 했을때 다음과 같은 오류가 난다면 2. 오류 내용 3. 소스트리에서 충돌해결방법 test브랜치에서 master로 병합을 원할때 master 쪽에 체크아웃된상태에서 test브랜치 오른쪽 클릭후 현재 브랜치로 test병합을 눌러준다. 4. 그리고 충돌된 파일을 클릭하여 저장소것을 사용해 해결하던가 내것을 이용해 해결하던가 선택해주어 충돌파일중 한쪽을 선택해준다. 5. 그리고 커밋 푸시 하면 해결됨
이미 커밋된 파일 ignore 하기 문제점: 보통의 파일을 igonore하는것은 쉽다. .gitignore 파일에 파일명만 추가해주면된다. 하지만 이미 커밋이된 파일을 ignore하는방법을 알아보자 0. 일단 .gitignore 파일에 파일명만 추가해준다. 1. 소스트리에서 터미널창을 연다. 2. 삭제하고자 하는 파일의 디렉토리로 이동한다. 3. git rm --cached filename 명령어로 파일을 제거해준다. 4. 다시 삭제한 파일을 생성해줘도 커밋되지 않는다.
우분투 임시 업로드 경로 설정 1. web.xml의 업로드 설정을 하고 /upload/temp 52428804194304020971520 2. /upload/temp 의 경로대로 우분투(ec2)에 폴더를 만들자 sudo mkdir upload sudo mkdir temp 로 만들었음 ls -al 로 보니 drwxr-xr-x 2 root root 4096 Apr 6 10:11 tempdrwxr-xr-x 3 root root 4096 Apr 6 11:59 upload