inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티

스프링 시큐리티 ignoring() "/favicon.ico" 리다이렉션 질문

892

MDAG Official

작성한 질문수 1

0

안녕하세요, 스프링 시큐리티 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();
    }

}

spring java

답변 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