06-21 Spring Security

Ruinak·2021년 6월 21일
0

Spring Lesson

목록 보기
12/23
post-custom-banner

MySQL 설치

  • 구글에서 MySQL 검색

  • MySQL.com에서 downloads 탭 들어가서 이미지대로 진행
  • 설치파일 실행한디 그대로 Next한 후 Execute
  • 기다림ing......
  • 루트 비밀번호만 설정하면 됨
  • 그 외는 전부 손대지 말고 next 클릭

  • sckemas에서 new Sckemas 한 후 이름은 springdb utf8로 설정 후 apply해서 새로운 스키마 생성

Legacy Project 생성

  • 프로젝트 명은 SpringSecurity
  • MVC Project 선택 후 Next
  • 패키지명은 com.mycom.myapp
  • pom.xml에서 자바 버전은 1.8로 변경
  • 스프링프레임워크 버전은 5.2.15로 변경
  • servlet 버전은 3.1로 변경
  • id는 javax.을 앞에 추가해줌
  • .jsp 버전도 2.3.1로 변경
  • properties의 Project Facets에서 버전 변경하면 오류 다 사라짐
  • 서버 정상작동 확인 완료

dependency 추가

  • MVN 저장소에서 spring-jdbc 검색
  • pom.xml에 버전 5.2.15 코드 추가
  • MVN 저장소에서 mysql 검색
  • pom.xml에 버전 8.0.16 코드 추가
  • MVN 저장소에서 HikariCP 검색
  • pom.xml에 버전 3.3.1 코드 추가
  • MVN 저장소에서 lombok 검색
  • pom.xml에 버전 1.18.12 코드 추가
  • MVN 저장소에서 jackson-databind 검색
  • pom.xml에 버전 2.12.1 코드 추가

Table 생성 및 설정

  • 테이블에서 새로운 테이블 tbl_member 생성
  • 테이블명, 칼럼의 이름 및 데이터타입 설정 후 Apply
  • 테이블 생성 확인
  • 새로운 테이블 tbl_member_auth 생성
  • 칼럼의 이름 및 데이터타입 설정
  • 하단 Forign Keys를 선택해서 포링키 등록하고 Apply
  • cascade를 잡아주면 부모키를 지우면 자식키도 자동으로 삭제됨
  • tbl_member의 칼럼 추가
  • web.xml에 filter 태그를 추가해서 스프링에서 한글이 지원되도록 함
  • filter와 filter-mapping의 이름은 같아야 함! 아니면 서블릿이 검색이 안됨
  • MVN 저장소에서 spring security core 검색
  • pom.xml에 버전 5.2.1 코드 추가
  • MVN 저장소에서 spring security web 검색
  • pom.xml에 버전 5.2.1 코드 추가
  • MVN 저장소에서 spring security config 검색
  • pom.xml에 버전 5.2.1 코드 추가
  • MVN 저장소에서 spring security taglibs 검색
  • pom.xml에 버전 5.2.1 코드 추가

security-context.xml 생성

  • web.xml에서 context-param 태그에 /WEB-INF/spring/security-context.xml 추가
  • spring 폴더에서 우클릭 후 Sping Bean Configuration File 선택해서 security-context.xml 생성
  • security-context.xml의 Namespaces에서 security 선택하고 버전은 없는 것으로 선택 후 저장
  • Source로 돌아가보면 beans 추가됨
  • 정상적으로 작동 함

Spring-Security 등록해주기

  • 암호화는 스프링이 해주는 것이므로 클래스를 적어줘야함
  • com 패키지에 mysecurity.domain을 추가
  • mysecurity.domain에 CustomUserDetailsService 클래스 생성
  • security-context.xml의 security 코드 작성
  • UserDetailsService 상속 받은 후 오버라이드
  • utf-8 추가한 후 a태그에 로그인 연결
  • HomeController에 우선 login 메서드 생성
  • login.jsp를 만들고 ID, PWD, 버튼 생성
  • 화면 잘 나옴
  • Security가 적용되지 않아서 화면이 잘 출력되는 것
  • <sercurity:http> 태그 안에 <security:csrf disabled="true"/> 태그 추가
  • web.xml에 Security 관련 filter 추가
  • 잘 적용되어서 내가 만들지 않은 웹페이지가 나타남!
  • 이제 Security가 적용이 된 것!

Tip

  • 메서드는 login, 보내주는 데이터의 name은 username, password를 사용하는 것은 약속이므로 반드시 이 이름으로 사용해야 함!
  • Spring Security의 전반적인 과정을 보여주는 이미지
  • 가장 먼저 필터가 적용됨, 그다음 매니저, provider, UserDetailsService가 작동한 후 User로 감
  • Session에 있나요라고 물어보는게 SecurityContext안에 있냐고 물어보는 것과 똑같음
profile
Nil Desperandum <절대 절망하지 마라>
post-custom-banner

0개의 댓글