스프링 시큐리티 ignoring() "/favicon.ico" 리다이렉션 질문
892
작성한 질문수 1
안녕하세요, 스프링 시큐리티 ignoring() 1부 강의를 듣던 중, 백기선님이 구동한 웹 애플리케이션 결과와 제 결과와 달라서 질문을 드립니다.
해당 강의에서 SecurityConfig 파일의 config(WebSecurity web) 메서드를 오버라이딩해서 "/favicon.ico"와 같은 경로의 요청들을 무시하도록 설정하여 루트 요청을 하면 "/login" 요청이 더이상 필요하지 않게끔 하셨는데요,
저도 강의에서 하신대로 똑같이 설정을 하였는데도, 여전히 "/", "favicon.ico", "/login" 이렇게 3가지 요청이 수행됩니다. "/favicon.ico" 요청 응답 코드는 302이구요.
아래는 제 SecurityConfig 자바 파일입니다. 어느 부분이 달라서 그런 것 인가요?
package me.whiteship.demospringsecurityform.config;
import me.whiteship.demospringsecurityform.account.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.security.servlet.PathRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.access.AccessDecisionManager;
import org.springframework.security.access.AccessDecisionVoter;
import org.springframework.security.access.expression.SecurityExpressionHandler;
import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl;
import org.springframework.security.access.vote.AffirmativeBased;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler;
import org.springframework.security.web.access.expression.WebExpressionVoter;
import java.util.Arrays;
import java.util.List;
import java.util.zip.DataFormatException;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
public SecurityExpressionHandler expressionHandler() {
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
roleHierarchy.setHierarchy("ROLE_ADMIN > ROLE_USER");
DefaultWebSecurityExpressionHandler handler = new DefaultWebSecurityExpressionHandler();
handler.setRoleHierarchy(roleHierarchy);
return handler;
}
@Override
public void configure(WebSecurity web) throws Exception {
// web.ignoring().mvcMatchers("/favicon.ico");
web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/", "/info", "/account/**").permitAll()
.mvcMatchers("/admin").hasRole("ADMIN")
.mvcMatchers("/user").hasRole("USER")
.anyRequest().authenticated()
.expressionHandler(expressionHandler());
http.formLogin();
http.httpBasic();
}
}
답변 1
0
시큐리티 설정은 정상적으로 보이네요. 애플리케이션 구동을 종료하고 다시 실행해도 같은 문제가 반복되나요?
문제가 재현되는 코드를 깃헙에 올려서 공유해주시면 좀 더 살펴보겠습니다.
커스텀 로그인 페이지를 등록할 경우 LogoutFilter의 등록 여부 질문
0
382
1
anonymousClass를 사용하는 이유
0
387
1
ExcpetionTranslationFilter가 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유
0
242
1
Principal 인터페이스와 User 클래스의 관계
0
756
1
passwordEncoder 질문드립니다.
0
320
1
WebSecurityConfigurerAdapter is deprecated 가 불편하신 분들을 위해
6
864
1
왜 스프링은 userid가 아니고 username을 사용했을까요?
0
1021
1
무상태성
0
346
2
로그인 후 로그인 페이지 접속
0
282
1
AuthenticationException은 어떤 경우에 발생하는지
0
556
1
AccountService에 비밀번호
1
224
1
커스텀 어노테이션 의 `커스텀 value` 설정방법에 관한 질문입니다.
0
356
1
passwordEncoder 빈 생성 시 차이
0
252
1
Bean 등록 관련 질문입니다.
0
247
1
시큐리티 전략관련
0
354
3
브라우저 기반 요청이 클라이언트의 요청을 처리 -> 의 의미?
0
228
1
AccountControllerTest 실행오류
0
1066
1
알려주신대로 설정을 해도 다시 302요청을 보냅니다....
0
342
1
voter에 대해 질문이 있습니다.
0
225
1
제가 맞게 이해한것인지 궁금합니다.
1
233
1
Spring security test 수행시 @AuthenticationPrincipal 가 null 로 세팅됨
0
546
1
Spring security Multi 인증 문의드려요
0
287
1
ProviderManager 문의
0
267
1
UserDetailsService 가 DaoAuthenticationProvider 에 어떻게 주입 되는지 알 수 있을 까요?
0
326
1





