inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 완전 정복 [6.x 개정판]

정적 자원 관리

JSP를 사용하는 경우 정적 자원 보호를 어떻게 설정해야 하나요?

해결된 질문

302

13months

작성한 질문수 24

0

프로젝트에서 WEB-INF/ 하위에 jsp 파일들을 저장할 때

SecurityConfig 에서

 

http .authorizeHttpRequests((requests) -> requests .requestMatchers("/css/**", "/js/**", "/images/**", "/WEB-INF/**", "/fonts/**").permitAll())

 

이렇게 WEB-INF 하위 디렉토리도 permitAll로 설정해 줘야 하는지요?

아니면 다른 방법을 사용하나요?

spring spring-boot spring-security security web-security

답변 2

1

정수원

보통 클라이언트에서 /WEB-INF/* 경로를 바로 접근하지 못하기 때문에 WEB-INF 설정은 필요하지 않을 것 같습니다.
requestMatchers 는 클라이언트의 요청에 대한 심사를 하기 때문에 서버 내부적으로 포워딩하는 WEB-INF 설정은 별도로 필요하지 않습니다.

그리고 jsp 는 컨트롤러에서 요청을 받아 뷰로 반환하는 시점에 일어나기 때문에 스프링 시큐리티의 필터체인에 걸리지 않습니다

0

인프런 AI 인턴

안녕하세요, 인프런 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