Я знаю, что можно добавить аннотацию @PreAuthorize к Rest Controller...
@RestController
public class WebController {
@PreAuthorize("hasAuthority('Foo')")
@GetMapping("/restricted")
public ResponseEntity<String> restricted() {
return ResponseEntity.ok("Restricted section");
}
}
Как можно предварительно авторизовать доступ к шлюзу Spring Integration Http.inbound? Я знаю, что могу добавить компонент в поток интеграции и добавить аннотацию к методу преобразователя или активатора службы, но я бы не хотел иметь для этого отдельный объект.
@Bean
//@PreAuthorize("hasAuthority('Foo')") ?
public HttpRequestHandlingMessagingGateway restrictedGateway() {
return Http.inboundGateway("/restricted")
...
.get();
}
@Bean
public IntegrationFlow myFlow(HttpRequestHandlingMessagingGateway restrictedGateway) {
return IntegrationFlows
.from(restrictedGateway)
.transform(source -> "Restricted section")
.get();
}