SpringSecurity 시 설정해야 할 것들

김예진·2023년 9월 5일

spring

목록 보기
11/13

1. Web.xml 작성

  • 여기서 root-context.xml 과 security-context.xml 두 가지 파일을 인식해줘야 하는데
    '-context.xml'부분은 공통적인 부분이니깐 - 앞쪽을 * 를 하면 두 가지 파일 모두 인식할 수 있다. 또는 '/WEB-INF/spring/root-context.xml WEB-INF/spring/security-context.xml' 중간에 한칸 띄우고 이렇게 쓸 수 도 있다.

  • encodingFilter(한글 처리) 와 sprinfSecurityFilterChain(보안설정 관리) 등록
    을 * 처리하면 모든 파일에 적용 가능하다.

2. servlet-context.xml 작성

  • 따로 작성할 것 없음

3. root-context.xml 작성

  • 3개의 빈

  • 드라이버 연결/ Spring과 Mybatis를 연결하고 DB와 상호작용 하는 sqlSessionFactoryBean /싱글톤으로 관리되며 여러 부분에서 공유할 수 있는 sqlSessionTemplate)

4. mybatis-config.xml

  • 모델 클래스가 여러 개의 경우 태그로 작성하면 모델마다 별칭을 설정하지 않아도 클래스명이 자동으로 별칭이 된다.

5. security-context.xml 작성

  • security는 intercept와 filter 두 가지 방식으로 이루어지는데 intercept 방식(과정이 이루어지는 중간에 security가 가로채가서 작동한다.)으로 작성하려고 한다.

  • <security:http> 작성

    • access로 페이지에 누구를 접근시킬 지 설정한다.
      list.jsp 페이지 : 모두 접근 가능
      insert.jsp(게시글 등록) : 로그인한 사용자, 관리자만
      update.jsp(게시글 수정) : 로그인한 사용자
      view.jsp(게시물 눌러서 게시물 정보보기) : 로그인한 사용자

    • <security:form-login> : security에서 제공하는 로그인 폼

      • login-page : 제공되는 로그인 폼이 아닌 내가 만든 로그인 폼 사용할 경우 경로 설정
      • 핸들러 지정 authentication-success-handler-ref : 로그인 후 내가 원하는 페이지 로 갈 경우 -> 빈 등록 후 id값으로 작성 : <bean id="loginSuccess" class="com.kh.mvc.LoginSuccessHandler"/ >
    • 로그아웃 관련 태그 작성

    • <security:access-denied-handler> : 만약 사용자권한으로 로그인이 되어 잇는 경우 관리자 페이지로 접근했을 때 접근 거부하는 설정하는 핸들러

      • error.jsp로 바로 보내는 경우 : <security:access-denied-handler error-page="/error"/>
      • 핸들러 클래스 만든 후 빈등록 후 참조하여 사용하는 경우 : <security:access-denied-handler ref="customAccessDenied"/> -> customAccessDenied 빈 등록
  • <security:authentication-manager> 인증 매니저 작성

    • memberService 빈 등록 후 참조하여 사용

profile
코린이

0개의 댓글