JSP를 사용하는 경우 정적 자원 보호를 어떻게 설정해야 하나요?
프로젝트에서 WEB-INF/ 하위에 jsp 파일들을 저장할 때
SecurityConfig 에서
http .authorizeHttpRequests((requests) -> requests .requestMatchers("/css/**", "/js/**", "/images/**", "/WEB-INF/**", "/fonts/**").permitAll())
이렇게 WEB-INF 하위 디렉토리도 permitAll로 설정해 줘야 하는지요?
아니면 다른 방법을 사용하나요?
답변 2
1
보통 클라이언트에서 /WEB-INF/* 경로를 바로 접근하지 못하기 때문에 WEB-INF 설정은 필요하지 않을 것 같습니다.
requestMatchers 는 클라이언트의 요청에 대한 심사를 하기 때문에 서버 내부적으로 포워딩하는 WEB-INF 설정은 별도로 필요하지 않습니다.
그리고 jsp 는 컨트롤러에서 요청을 받아 뷰로 반환하는 시점에 일어나기 때문에 스프링 시큐리티의 필터체인에 걸리지 않습니다
0
안녕하세요, 인프런 AI 인턴입니다.
정적 자원에 대한 보안 설정과 관련하여, 일반적으로 WEB-INF 내부의 리소스를 직접적으로 제공하는 것은 권장되지 않습니다. WEB-INF 디렉토리는 외부에서 접근할 수 없도록 보호되어야 합니다. 따라서, WEB-INF 하위에 있는 JSP 파일들에 대한 접근을 허용하려면 해당 파일들을 WEB-INF 외부로 이동하고, Spring Security 설정에서는 WEB-INF에 대한 접근 규칙을 추가하지 말아야 합니다.
정적 자원 (예: CSS, JS, 이미지, 폰트 등)에 대한 접근을 허용하려면, 다음과 같이 SecurityConfig 파일에서 http.authorizeHttpRequests() 메소드를 사용하여 규칙을 추가하는 것이 일반적입니다.
http
.authorizeHttpRequests((requests) -> requests
.requestMatchers("/css/**", "/js/**", "/images/**", "/fonts/**").permitAll()
.anyRequest().authenticated());
이렇게 설정하면, /css/**, /js/**, /images/**, /fonts/** 경로에 대한 접근은 인증 없이 모두에게 허용되고, 다른 모든 요청은 인증을 요구하게 됩니다. WEB-INF 내부의 자원은 외부에서 접근할 수 없으므로, 이러한 설정으로 충분합니다.
정적 자원 보호와 관련된 더 구체적인 내용은 Spring Boot의 공식 문서나 Spring Security 관련 문서를 참조하세요.
로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.
0
35
2
단원별 소스코드
0
64
2
CustomAuthenticationProvider 추가 관련 문의
0
78
2
AOP 의존성 명칭 변경
0
77
1
빈 1개 등록 시 다른 해결 방법
0
70
1
@Bean으로 AuthenticationProvider를 등록 시 http.authenticationProvider 함수를 이용해서 추가해줘야되나요?
0
87
2
OIDC의 id token에 담긴 데이터에 대해
0
78
1
loginPage("/loginPage") 질문드립니다.
0
69
1
@EnableWebSecurity
0
148
1
트랜잭션과 롤백
0
100
1
68. 인증 이벤트 - AuthenticationEventPublisher 활용 강좌 음성 문제
0
91
2
AuthenticationManager 사용 방법
0
153
2
HttpSecurity.authorizeHttpRequests() - 2 강의 부분에 대한 질문
0
108
2
spring security 6.3에서는 HttpSecurity가 만들어지기 전 WebSecurity가 먼저 만들어지는게 맞나요??
0
192
1
init(B Builder), configure(B builder) 에 대하여 질문 드립니다.
0
109
2
메타 주석 질문
0
69
1
동시세션제어 기능에서 로그아웃하기
0
152
3
로그인 후, redirect 에서 error
0
140
3
Session 생성 타이밍에 대한 질문
0
86
2
강의 참고 내용을 개발 로그로 작성해도 될지 문의드립니다.
0
135
2
customAuthentication 관련
0
132
2
authenticationManagerBuilder 주입받은거 vs 만든 거
0
114
1
UserDetailsService()에서 UserDetail이 아닌 타입을 반환할 수 있나요?
0
101
1
9:28 패턴 3의 경우 마지막으로 설정한 것만 적용되는 것 같습니다.
0
162
2





