public static Builder newBuilder(User user) { return new Builder(user.getUID(), user.getUserName(), user.getFirstName(), user.getLastName(), user.getEmail(), user.getCreatedAt(), user.getModifiedAt(), user.getVersion()); } }
protected User fromUserConfig(UserConfig userConfig) { return SimpleUser.newBuilder() .setUID(userConfig.getUid()) .setUserName(userConfig.getUserName()) .setFirstName(userConfig.getFirstName()) .setLastName(userConfig.getLastName()) .setEmail(userConfig.getEmail()) .setCreatedAt(userConfig.getCreatedAt()) .setModifiedAt(userConfig.getModifiedAt()) .setVersion(userConfig.getTag()) .build(); }
@Override public String getName() { return user.getUserName(); }
@Override public User getUser(String userName) throws UserNotFoundException { switch (userName) { case TEST_USER_1: case TEST_USER_2: case ADMIN_USER: case "anonymous": return SimpleUser.newBuilder() .setUID(new UID(userName)) .setUserName(userName) .setEmail(userName + "@dremio.test") .setFirstName(userName + " FN") .setLastName(userName + " LN") .build(); case SystemUser.SYSTEM_USERNAME: return SystemUser.SYSTEM_USER; default: throw new UserNotFoundException(userName); } }
/** * Helper method to create the user if the user doesn't already exists. * @param userService * @param ns Instance of {@link NamespaceService} with no user context. * @param user * @param passwd * @param fn * @param ln * @param roles * @throws Exception */ private static void createUserIfNotExists(UserService userService, NamespaceService ns, String user, String passwd, String fn, String ln) throws IOException, NamespaceException { try { userService.getUser(user); } catch (UserNotFoundException e) { User userConfig = SimpleUser.newBuilder() .setUserName(user) .setEmail(user + "@dremio.test") .setFirstName(fn) .setLastName(ln) .build(); userService.createUser(userConfig, passwd); } // Now create the home folder for the user createHomeDir(ns, user); }
protected UserConfig toUserConfig(User user) { return new UserConfig() .setUid(user.getUID()) .setUserName(user.getUserName()) .setFirstName(user.getFirstName()) .setLastName(user.getLastName()) .setEmail(user.getEmail()) .setCreatedAt(user.getCreatedAt()) .setModifiedAt(user.getModifiedAt()) .setTag(user.getVersion()); }
@Before public void setup() throws Exception { clearAllDataExceptUser(); final UserService userService = l(UserService.class); // clear test users for (User userConfig: userService.getAllUsers(10000)) { if (userConfig.getUserName().startsWith(USERNAME_PREFIX)) { try { userService.deleteUser(userConfig.getUserName(), userConfig.getVersion()); } catch (UserNotFoundException e) { // ignore search index may have user thats not in kvstore. } } } }
@Override public User getUser(String userName) throws UserNotFoundException { if (SystemUser.SYSTEM_USER.getUserName().equals(userName)) { return SystemUser.SYSTEM_USER; } final UserInfo userInfo = findUserByUserName(userName); if (userInfo == null) { throw new UserNotFoundException(userName); } return fromUserConfig(userInfo.getConfig()); }
@After public void teardown() throws Exception { final UserService userService = l(UserService.class); userService.deleteUser(createdUser.getUserName(), createdUser.getVersion()); }
@Override public User getUser(UID uid) throws UserNotFoundException { final UserInfo userInfo = userStore.get(uid); if (userInfo == null) { throw new UserNotFoundException(uid); } return fromUserConfig(userInfo.getConfig()); }
@Override public User apply(UserInfo input) { return fromUserConfig(input.getConfig()); }};
public void good(String passwd) throws Exception { SimpleUserService.validatePassword(passwd); }
@Test public void testPassword() throws Exception { good("dremio123"); good("blah1@345blah"); bad("t", "must be at least 8 letters long"); bad("dremio", "must be at least 8 letters long"); bad("dremioinc", "must contain at least one number"); good("test1234"); bad("test123", "must be at least 8 letters long"); good("dremio 123"); good(" dremio123"); good("dremio123 "); bad("12345678", "must contain at least one number and one letter"); good("12345678Z"); }
@Override public void filter(ContainerRequestContext requestContext) throws IOException { // we cache in the local filter as we want to avoid expensive lookups. This means if we delete all data, we'll actually misreport has any user. if(hasAnyUser.get()){ return; } if(userService.hasAnyUser()){ hasAnyUser.set(true); return; } handle(requestContext); }
public SimpleUser build() { return new SimpleUser(uid, userName, firstName, lastName, email, createdAt, modifiedAt, version); } }
public static Builder newBuilder() { return new Builder(); }
@Override public User getUser(UID uid) throws UserNotFoundException { final String userName = uid.getId(); switch (userName) { case TEST_USER_1: case TEST_USER_2: case ADMIN_USER: case "anonymous": return SimpleUser.newBuilder() .setUID(new UID(userName)) .setUserName(userName) .setEmail(userName + "@dremio.test") .setFirstName(userName + " FN") .setLastName(userName + " LN") .build(); case SystemUser.SYSTEM_USERNAME: return SystemUser.SYSTEM_USER; default: throw new UserNotFoundException(userName); } }
@Before public void setup() throws Exception { final UserService userService = l(UserService.class); SimpleUser user1 = SimpleUser.newBuilder().setUserName("user1").setFirstName("").setLastName("").setEmail("user1@foo.com").build(); createdUser = userService.createUser(user1, "foo12bar"); }
@Override public void filter(ContainerRequestContext requestContext) throws IOException { if(!userService.get().hasAnyUser()) { NoUserFilter.handle(requestContext); } } }