Interceptor(권한) 구현

2024. 12. 26. 23:58·토이 프로젝트 2

권한 구현이라고 작성하긴했지만 완벽한 권한을 제한할 수있는 것은 아님.

UrlMapping을 할 때 /admin이 붙어있는 주소에는 memberType이 ADMIN인 사람만 접근할 수 있는 기능을 구현하기 위함이다.

 

1. 설정 파일 생성.

package com.example.bravobra.config;


import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@RequiredArgsConstructor
public class WebConfig implements WebMvcConfigurer {

    private final AdminInterceptor adminInterceptor;

    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(adminInterceptor)
                .addPathPatterns("/admin/**");
    }
}

 

2. interceptor 구현.

package com.example.bravobra.config;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

@Component
public class AdminInterceptor  implements HandlerInterceptor {

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HttpSession session = request.getSession(false);

        if(session == null || !"ADMIN".equals(session.getAttribute("memberType"))){
            response.sendRedirect("/errorAccess");
            return false;
        }

        return true;
    }

}

'토이 프로젝트 2' 카테고리의 다른 글

로그인 횟수 제한 구현  (0) 2024.12.28
비밀번호 찾기 구현  (1) 2024.12.27
커스텀 어노테이션 추가, ExceptionHandler 추가  (0) 2024.12.25
회원가입시 비밀번호 암호화(bCrypto)  (0) 2024.12.24
회원가입화면 만들기  (0) 2024.12.17
'토이 프로젝트 2' 카테고리의 다른 글
  • 로그인 횟수 제한 구현
  • 비밀번호 찾기 구현
  • 커스텀 어노테이션 추가, ExceptionHandler 추가
  • 회원가입시 비밀번호 암호화(bCrypto)
신댕인생
신댕인생
안녕하세요!! 예비개발자 신댕입니다. 개발자를 준비하고 있는 신댕인생의 하루하루를 정리하고 있어요. 파이팅!
  • 신댕인생
    신댕인생
    신댕인생
  • 전체
    오늘
    어제
    • 분류 전체보기 (127)
      • 다시 준비 (0)
        • 계획(ISTJ) (0)
        • 정보처리기사 (0)
        • SQLD (0)
        • Toeic Speaking (0)
        • 일일 회고 (0)
      • 데브캠프 일지 (52)
        • 예제 (6)
        • 연습문제 (12)
        • 과제 (2)
        • 칠판 정리 (1)
        • 숙지용 필기 (11)
      • 책 (12)
        • Clean Architecture (2)
        • 개발자도 궁금한 IT 인프라 (1)
        • JVM 밑바닥까지 파헤치기 (9)
      • DB (23)
        • 숙지용 필기 (12)
        • SQL 쿼리 실습 (7)
        • 극장 시스템 모델링 (3)
      • 토이 프로젝트 2 (7)
      • 토이 프로젝트 3 (0)
      • 뚜띠 (3)
      • 회고 (0)
        • 주간 회고 (0)
        • 월간 회고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    패스트캠퍼스 부트캠프
    spring의 정석
    남궁성
    데브캠프
    JPA
    부트캠프
    jvm
    ERD
    자바의 정석
    sql의 정석
    SQL
    연습문제
    쿼리 실습
    지네릭스
    패스트캠퍼스 데브캠프
    패스트캠퍼스
    머신러닝 교과서
    백엔드 부트캠프
    spring
    패스트 캠퍼스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
신댕인생
Interceptor(권한) 구현
상단으로

티스토리툴바