package samplest; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import restx.admin.AdminModule; import restx.factory.Module; import restx.factory.Provides; import restx.security.*; import samplest.foobar.Bar; import javax.inject.Named; /** * Date: 1/12/13 * Time: 14:45 */ @Module public class AppModule { private ImmutableMap<String, RestxPrincipal> principals = ImmutableMap.of( "admin", AdminModule.RESTX_ADMIN_PRINCIPAL, "user1", new StdUser("user1", ImmutableSet.<String>of("hello")) ); @Provides @Named("restx.app.package") public String appPackage() { return "samplest"; } @Provides public BasicPrincipalAuthenticator basicPrincipalAuthenticator(SecuritySettings securitySettings, final @Named("restx.admin.passwordHash") String adminPasswordHash) { return new StdBasicPrincipalAuthenticator(new UserService<RestxPrincipal>() { @Override public Optional<RestxPrincipal> findUserByName(String name) { return Optional.fromNullable(principals.get(name)); } @Override public Optional<RestxPrincipal> findAndCheckCredentials(String name, String passwordHash) { RestxPrincipal principal = principals.get(name); if (principal == null || !adminPasswordHash.equals(passwordHash)) { return Optional.absent(); } else { return Optional.of(principal); } } }, securitySettings); } @Provides public Bar buildBar() { return new Bar(); } }