액츄에이터 URL 경로에 스프링 인터셉터 적용 문제
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)
[질문 내용]
안녕하세요!
수업 마지막에 URL 경로에 인증 설정을 하는 방법으로 서블릿 필터, 스프링 인터셉터, 스프링 시큐리티를 안내해 주신걸 보고
/actuator URL 경로에 인증 설정을 하려고 인터셉터를 생성해서 적용해보고 있었습니다.
아무리 해도 적용이 안되어서 이리 저리 찾아보니..
actuator 엔드포인트의 경우에는 Dispatcher를 통하지 않는 모양이더라고요. 그래서 인터셉터도 동작하지 않는 모양인데, 저는 기존에 관리자 인증 용도로 만들어둔 인터셉터가 있어서 그걸 활용하고 싶어서 어떻게든 등록을 하려고 했습니다.
https://github.com/spring-projects/spring-boot/issues/11234
여기 있는 이슈를 참고해보면, 결론적으로는 인터셉터가 아닌 필터를 사용하라고 하는데요.
그래도 선생님께서 수업에서 스프링 인터셉터를 언급해 주셔서 혹시나 actuator 경로에 인터셉터를 적용해서 사용하는 방법이 있는지, 궁금합니다
아래와 같이 WebMvcEndpointManagementContextConfiguration을 확장 해서 인터셉터를 추가하고, 의도대로 작동하는 것 까지는 확인을 하긴 했는데 아무래도 좋은 방법은 아닌 것 같아서요. 혹시 방법이 없을까요?
@Configuration
class ActuatorConfig(
private val authService: AuthService,
private val jwtConfig: JwtConfig,
@Value("\${server.ssl.enabled}") private val isSecure: Boolean
) : WebMvcEndpointManagementContextConfiguration() {
override fun webEndpointServletHandlerMapping(
webEndpointsSupplier: WebEndpointsSupplier?,
servletEndpointsSupplier: ServletEndpointsSupplier?,
controllerEndpointsSupplier: ControllerEndpointsSupplier?,
endpointMediaTypes: EndpointMediaTypes?,
corsProperties: CorsEndpointProperties?,
webEndpointProperties: WebEndpointProperties?,
environment: Environment?
): WebMvcEndpointHandlerMapping {
val webEndpointServletHandlerMapping = super.webEndpointServletHandlerMapping(
webEndpointsSupplier,
servletEndpointsSupplier,
controllerEndpointsSupplier,
endpointMediaTypes,
corsProperties,
webEndpointProperties,
environment
)
webEndpointServletHandlerMapping.setInterceptors(
JwtAuthInterceptor(
authService,
jwtConfig.tokenValidityInSeconds,
isSecure
)
)
webEndpointServletHandlerMapping.setInterceptors(AdminAuthInterceptor())
return webEndpointServletHandlerMapping
}
}
답변 1
보안이 엄격한 데이터
0
73
1
MyProperties 자체를 클라이언트 코드에서 사용
1
43
1
http://localhost:8080/actuator/prometheus
0
85
3
jar 추가에대한 질문드려도될까요?
0
64
1
build.gradle bom link 변경
0
65
2
@Counted 초기화
0
48
1
@Validated를 적용해도 빈 검증이 안되는 경우에 대한 조치 공유..
0
102
2
springboot에서 actuator없이 micrometer를 사용할수 있나요?
0
67
1
@Configuration 질문드립니다.
0
84
2
[공유] 터미널 말고 IDE 에서 jar 실행하기
0
101
1
localhost:8080/hello-servlet 404오류
0
123
2
내장톰캣2 서블릿 톰켓 실행이 안됩니다
1
154
2
최대 Tomcat 스레드 수를 확인하는 지표
0
160
1
mac m2에서 startup.sh 실행후 아무 반응이 없습니다.
0
94
2
내장 톰캣 실행 오류 관련 질문드립니다.
0
158
1
스프링 발전 과정들도 자세히 알아둬야하나요??
1
127
1
스프링부트 ioc 컨테이너 갯수
0
89
1
404 페이지
0
134
3
actuator 호출시 타임스탬프 질문
0
90
1
순수 라이브러리 사용하기 2 - memory-v1
0
125
1
외부설정 @ConfigurationProperties의 내부 클래스에서 static을 사용하는 이유를 알고 싶습니다.
0
105
1
서블릿 컨테이너 초기화1 강의 관련 질문입니다~
0
94
1
Thread Config Max 패널 설정 변경 질문
0
128
1
스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.
0
108
1





