>Java >java지도 시간 >하나만 작동하는 경우 Spring 보안에서 여러 HTTP 구성 문제를 해결하는 방법은 무엇입니까?

하나만 작동하는 경우 Spring 보안에서 여러 HTTP 구성 문제를 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-04 19:29:12121검색

How to Troubleshoot Multiple HTTP Configs in Spring Security When Only One Works?

Spring Security의 다중 HTTP 구성: 문제 해결

Spring Security에서 다중 HTTP 구성을 사용하는 데 문제가 발생했습니다. 특히 다양한 보안과 관련하여 문제가 발생했습니다. URL 및 로그인 페이지. 문제와 해결 방법은 다음과 같습니다.

문제:
두 개의 HTTP 구성을 구성했는데, 하나는 관리자 액세스용이고 다른 하나는 소비자 액세스용입니다. 그러나 관리자 보안만 작동하고 있으며 /consumer/** 아래의 페이지는 로그인 리디렉션 없이 보안되지 않은 상태로 유지됩니다.

해결책:
이 문제를 해결하려면 핵심은 이해하는 것입니다. Spring Security의 평가 순서:

  1. 인증 관리: 구성 사용자 자격 증명을 위한 AuthenticationManagerBuilder.
  2. 다중 HTTP 보안 구성:

    • 각각 고유한 @Order 주석이 있는 WebSecurityConfigurerAdapter를 확장하는 여러 내부 클래스를 생성합니다. 우선순위를 지정하세요.
    • antMatcher를 사용하여 각각의 적용 가능성을 제한하세요. 특정 URL에 대한 HttpSecurity 구성.
  3. URL 우선순위:

    • @Order 값이 가장 높은 HttpSecurity 구성(또는 기본값인 "마지막")이 먼저 적용됩니다.
    • 그렇지 않은 경우 antMatcher가 지정되면 구성이 모든 URL(/**)에 적용됩니다.
  4. 구성 구조:

    • 귀하의 경우 첫 번째 구성은 모든 URL(/**)과 일치합니다. 즉, 모든 URL을 포착한다는 의미입니다.
    • /admin/만 보호하므로 다른 URL(/consumer/ 포함)은 암시적으로 허용됩니다.
    • 따라서 두 번째 구성에는 도달하지 않습니다.

문제를 해결하려면 소비자 보안 구성이 먼저 평가되었는지 확인하세요. 더 높은 @Order 값을 제공합니다. 또한 두 구성 모두에 대해 antMatcher를 지정하여 원하는 URL에 대한 적용을 제한합니다.

이 단계를 수행하면 여러 HTTP 보안 구성을 효과적으로 구성하고 Spring Security 애플리케이션에서 다양한 URL 그룹을 보호할 수 있습니다.

위 내용은 하나만 작동하는 경우 Spring 보안에서 여러 HTTP 구성 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.