UserService { @VisibleForTesting protected static boolean isAcceptableUsername(ByteBuffer username) { CharBuffer chars = ByteBuffers.toCharBuffer(username); boolean acceptable = chars.capacity() > 0; while (acceptable && chars.hasRemaining()) { char c = chars.get(); if(Character.isWhitespace(c)) { acceptable = false; break; } } return acceptable; } @SuppressWarnings("unchecked") private  UserService(String backingStore, int accessTokenTtl,
            TimeUnit accessTokenTtlUnit); static UserService create(String backingStore); boolean authenticate(ByteBuffer username, ByteBuffer password); boolean can(ByteBuffer username, Permission permission,
            String environment); void create(ByteBuffer username, ByteBuffer password, Role role); void delete(ByteBuffer username); void disable(ByteBuffer username); void enable(ByteBuffer username); boolean exists(ByteBuffer username); void forEachUser(Consumer<ByteBuffer> consumer); Role getRole(ByteBuffer username); void grant(ByteBuffer username, Permission permission,
            String environment); boolean isEnabled(ByteBuffer username); void revoke(ByteBuffer username, String environment); void setPassword(ByteBuffer username, ByteBuffer password); void setRole(ByteBuffer username, Role role); final AccessTokenManager tokens; }
@Test public void testUsernameWithWhitespaceNotAcceptable() { Assert.assertFalse(UserService .isAcceptableUsername(ByteBuffers.fromString(" f "))); }
@Test public void testServiceTokenUsesInvalidUsername() { AccessToken token = service.tokens.serviceIssue(); ByteBuffer username = service.tokens.identify(token); Assert.assertFalse(UserService.isAcceptableUsername(username)); }