@Override
protected void addRoutes(final Router router) {
if (getConfig().isAuthenticationRequired()) {
final ChainAuthHandler authHandler = ChainAuthHandler.create();
authHandler.append(new X509AuthHandler(
new TenantServiceBasedX509Authentication(getTenantServiceClient(), tracer),
Optional.ofNullable(clientCertAuthProvider).orElse(
new X509AuthProvider(getCredentialsServiceClient(), getConfig(), tracer))));
authHandler.append(new HonoBasicAuthHandler(
Optional.ofNullable(usernamePasswordAuthProvider).orElse(
new UsernamePasswordAuthProvider(getCredentialsServiceClient(), getConfig(), tracer)),
getConfig().getRealm(), tracer));
addTelemetryApiRoutes(router, authHandler);
addEventApiRoutes(router, authHandler);
addCommandResponseRoutes(router, authHandler);
} else {
LOG.warn("device authentication has been disabled");
LOG.warn("any device may publish data on behalf of all other devices");
addTelemetryApiRoutes(router, null);
addEventApiRoutes(router, null);
addCommandResponseRoutes(router, null);
}
}