protected void configure() { bind(PrincipalFactory.class) .to(PrincipalFactory.class) .to(new TypeLiteral<Factory<P>>() {}) .in(Singleton.class); bind(PrincipalValueFactoryProvider.class) .to(AbstractValueFactoryProvider.class) .to(ValueFactoryProvider.class) .in(Singleton.class); bind(PrincipalInjectionResolver.class) .to(new TypeLiteral<ParamInjectionResolver<HmacAuth>>() {}) .to(new TypeLiteral<InjectionResolver<HmacAuth>>() {}) .in(Singleton.class); }