001 /* 002 * Cumulus4j - Securing your data in the cloud - http://cumulus4j.org 003 * Copyright (C) 2011 NightLabs Consulting GmbH 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 package org.cumulus4j.keymanager.cli; 019 020 import org.cumulus4j.keymanager.api.DefaultKeyManagerAPI; 021 import org.cumulus4j.keymanager.api.KeyManagerAPI; 022 import org.cumulus4j.keymanager.api.KeyManagerAPIConfiguration; 023 import org.kohsuke.args4j.Option; 024 025 /** 026 * <p> 027 * Abstract {@link SubCommand} implementation for being subclassed when the {@link KeyManagerAPI} is used. 028 * </p> 029 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de 030 */ 031 public abstract class SubCommandWithKeyManagerAPI 032 extends SubCommand 033 { 034 @Option(name="-keyManagerBaseURL", required=false, usage="Specifies where the key-store is located (either a URL on a remote server or a local directory). If omitted, it defaults to '${user.home}/.cumulus4j'.") 035 private String keyManagerBaseURL; 036 037 @Option(name="-keyStoreID", required=true, usage="Specifies the key-store to work with.") 038 private String keyStoreID; 039 040 private KeyManagerAPI keyManagerAPI = new DefaultKeyManagerAPI(); 041 042 public KeyManagerAPI getKeyManagerAPI() { 043 return keyManagerAPI; 044 } 045 046 @Override 047 public void prepare() throws Exception 048 { 049 super.prepare(); 050 KeyManagerAPIConfiguration configuration = new KeyManagerAPIConfiguration(); 051 configuration.setKeyManagerBaseURL(keyManagerBaseURL); 052 configuration.setKeyStoreID(keyStoreID); 053 keyManagerAPI.setConfiguration(configuration); 054 } 055 056 }