해결된 질문
작성
·
260
0
WebSecurityConfigurerAdapter가 deparcated된 후 SecurityFilterChain을 빈으로 등록하여 사용중인데, @Order를 사용하지 않아도 두 개의 SecurityConfig 클래스가 충돌이 나지는 않습니다.
그런데 순서를 명시적으로 보장하기 위하여 @Order를 사용해도 원하는 순서대로 등록이 되지 않고 클래스 이름의 오름차순으로 먼저 호출되어 Bean으로 등록 됩니다.
이렇게 하는 것이 좋은 방법은 아닌 거 같아 여쭤봅니다. 다른 방법이 있을까요?
답변 2
0
0
네
저도 테스트 해 보니 @Order 순서대로 빈이 생성되지는 않고 설정클래스 기준으로 위에서 선언한 빈의 순서대로 생성이 되고 있습니다.
지금으로는 뚜렷한 방법이 보이지 않네요
일단 멀티 설정을 해야 한다면 순서와 상관없이 클라이언트의 요청 정보에 따라 해당 빈이 실행되도록 RequestMatcher 를 조정해서 구성을 해야 할 것 같습니다.
즉
http.requestMatcher("/api/a") 와 http.requestMatcher("/api/b") 로 구분해서 빈을 각각 생성한다면 빈의 생성순서와 별개로 클라이언트의 요청을 제어할 수 있습니다.
@Order 를 주지 않아도 충돌이 나지 않는 것은 오히려 개선된 것 같은데 대신 순서를 원하는대로 제어를 하지 못하는 점은 아쉽네요
조금 더 서치를 해 봐야겠습니다.