/** * Copyright 2005-2015 Red Hat, Inc. * * Red Hat licenses this file to you under the Apache License, version * 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package io.apiman.gateway.platforms.war.micro; import java.io.BufferedReader; import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.IOUtils; /** * Hard coded users. Only useful for testing/bootstrapping. * * @author eric.wittmann@redhat.com */ @SuppressWarnings("nls") public final class Users { public static final String USERS_FILE_PROP = "apiman.micro.gateway.users-file"; public static final List<User> getUsers() throws Exception { List<User> rval = new ArrayList<>(); URL usersUrl = getUsersUrl(); if (usersUrl != null) { System.out.println("Loading users from: " + usersUrl); InputStream in = null; BufferedReader reader = null; try { in = usersUrl.openStream(); reader = new BufferedReader(new InputStreamReader(in)); String line = reader.readLine(); while (line != null) { line = line.trim(); if (line.length() == 0 || line.startsWith("#")) { continue; } String [] split = line.split(","); User user = new User(); user.setId(split[0]); user.setPassword(split[1]); user.getRoles().add("apipublisher"); rval.add(user); System.out.println(" added user => " + user.getId()); line = reader.readLine(); } } catch (Throwable t) { throw new RuntimeException(t); } finally { IOUtils.closeQuietly(in); IOUtils.closeQuietly(reader); } } else { System.out.println("Using default users."); User user = new User(); user.setId("admin"); user.setPassword("admin123!"); user.getRoles().add("apiuser"); user.getRoles().add("apiadmin"); rval.add(user); } return rval; } /** * @throws Exception */ private static URL getUsersUrl() throws Exception { String usersLoc = System.getProperty(USERS_FILE_PROP); if (usersLoc == null) { return null; } // Try a file first. try { File usersFile = new File(usersLoc); if (usersFile.isFile()) { return usersFile.toURI().toURL(); } } catch (Exception e) {} // Try it as a URL. URL url = new URL(usersLoc); return url; } }