Ich versuche, eine Instanz von HandlerInterceptor
im Frühling mit Java Config ohne Verlängerung WebMvcConfigurationSupport
zu registrieren. Ich erstelle eine Bibliothek mit einer Anmerkung, die bei Hinzufügen zu einer Klasse einen Interceptor registriert, der eine Sicherheitsanmerkung verarbeitet.Registrieren Spring HandlerInterceptor Ohne WebMvcConfigurationSupport
Ich hatte eine Implementierung mit WebMvcConfigurationSupport#addInterceptors
, aber das im Konflikt mit anderen automatischen Funktionen im Frühjahr, und überging einige der eigenen Logik der Anwendung. Es scheint auch unglaublich schwer für etwas, das einfach sein sollte. Ich versuche jetzt:
@Configuration
public class AnnotationSecurityConfiguration {
@Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping;
@PostConstruct
public void attachInterceptors() {
requestMappingHandlerMapping.setInterceptors(new Object[] {
new SecurityAnnotationHandlerInterceptor()
});
}
}
Es scheint jedoch, dass die Abfangjäger mit einer ganz anderen Instanz von RequestMappingHandlerMapping
als die tatsächlich verwendet die Anwendung für Web-Anfragen registriert werden. Zusätzlich wird, wenn als BeanFactoryPostProcessor
implemeted, erhalte ich eine NullPointerException
in HealthMvcEndpoint
wenn ich versuche, beanFactory.getBean(RequestMappingHandlerMapping.class)
Als Referenz ist dies in "Spring-Boot-Starter-Web" –
Probieren Sie auch einen 'BeanPostProcessor' mit dem gleichen Effekt wie oben (der Interceptor wird nie aufgerufen) –