public String getServiceKeyByToken(String token) {
   for (String usernameWithServiceKey : usersWithServiceKey) {
     UserCredential userCredential = getUserCredential(usernameWithServiceKey);
     if (userCredential.getTokens().containsKey(token)
         && !userCredential.getTokens().get(token).isBefore(new LocalDateTime())) {
       return userCredential.getServiceKey();
     }
   }
   return null;
 }
 public void removedTimedOutTokens() {
   for (UserCredential userCredential : getUserCredentials()) {
     UserCredential modifiedUserCredential = null;
     for (Map.Entry<String, LocalDateTime> token : userCredential.getTokens().entrySet()) {
       if (!token.getValue().isAfter(TimeProvider.getLocalDateTime())) {
         if (modifiedUserCredential == null) {
           modifiedUserCredential = userCredential;
         }
         modifiedUserCredential = modifiedUserCredential.withRemovedToken(token.getKey());
       }
     }
     if (modifiedUserCredential != null) {
       addUpdate(modifiedUserCredential);
     }
   }
 }