Hi,
I don't know Camel, but I just did a small test using Camel Spring Boot + javaee-pac4j to secure a REST endpoint.
@Component
public class RestApi extends RouteBuilder {
@Override
public void configure() {
rest("/rest").get("/hello").to("direct:hello");
from("direct:hello").transform().constant("Hello World");
}
}
@Configuration
public class WebConfig {
@Bean
public FilterRegistrationBean securityFilter() {
final DirectBasicAuthClient basicAuth = new DirectBasicAuthClient(new SimpleTestUsernamePasswordAuthenticator());
final Config config = new Config(basicAuth);
FilterRegistrationBean filter = new FilterRegistrationBean(new SecurityFilter(config, basicAuth.getName()));
filter.setName("SecurityFilter");
return filter;
}
@Bean
public ServletRegistrationBean camelServlet() {
ServletRegistrationBean servlet = new ServletRegistrationBean
(new CamelHttpTransportServlet(), "/*");
servlet.setName("CamelServlet");
return servlet;
}
}
The security works: if I don't pass a good basic auth, it fails: nothing is returned; but if I pass a good basic auth, it works, I get the "Hello World" contant.
Is this the way you use Camel?
What response do you expect from the REST endpoint in case of a 401 unauthorized?
Thanks.
Best regards,
Jérôme