bind(String.class).annotatedWith(named("authentication.scheme")) .toInstance(getProperty("authentication.scheme", properties)); bind(String.class).annotatedWith(named("authentication.token.scheme")) .toInstance(getProperty("authentication.token.scheme", properties)); bind(String.class).annotatedWith(named("authentication.token.salt")) .toInstance(getProperty("authentication.token.salt", properties)); bind(String.class).annotatedWith(named("authentication.token.version")) .toInstance(getProperty("authentication.token.version", properties)); bind(String.class).annotatedWith(named("authentication.http.proxy.host")) .toInstance(getProperty("http.proxy.host", properties)); bind(Integer.class).annotatedWith(named("authentication.http.proxy.port")) .toInstance(Integer.parseInt(getProperty("http.proxy.port", properties, "80"))); Class<Authentication> authImplClass = (Class<Authentication>) forName(authenticationClassName); bind(Authentication.class).to(authImplClass).in(SINGLETON); bind(AuthenticateByHttpRequest.class).to(NoOpAuthenticateByHttpRequestImpl.class).asEagerSingleton(); } catch (ClassNotFoundException e) { LOGGER.error("unable to find class: {}", authenticationClassName, e);