/** * Copyright (c) Members of the EGEE Collaboration. 2006-2009. * See http://www.eu-egee.org/partners/ for details on the copyright holders. * * Licensed 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 org.glite.authz.pap.ui.cli.policymanagement; import java.rmi.RemoteException; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.ParseException; import org.glite.authz.pap.client.ServiceClient; import org.glite.authz.pap.services.highlevel_policy_management.axis_skeletons.HighLevelPolicyManagement; import org.glite.authz.pap.services.pap_management.axis_skeletons.PAPManagement; import org.glite.authz.pap.services.xacml_policy_management.axis_skeletons.XACMLPolicyManagement; import org.glite.authz.pap.ui.cli.CLIException; import org.glite.authz.pap.ui.cli.ServiceCLI; public abstract class PolicyManagementCLI extends ServiceCLI { protected static String OPT_PAPALIAS_LONG = "pap"; protected static String OPT_PAPALIAS_DESCRIPTION = "Select <arg> as pap"; protected static String OPT_ALL_LONG = "all"; protected static String OPT_ALLPAPS_DESCRIPTION = "Select all paps"; protected static String OPT_AFTER_ID_LONG = "after"; protected static String OPT_AFTER_ID_DESCRIPTION = "place element after the given <id>"; protected static String OPT_BEFORE_ID_LONG = "before"; protected static String OPT_BEFORE_ID_DESCRIPTION = "place element before the given <id>"; protected static String OPT_ACTION = "a"; protected static String OPT_ACTION_DESCRIPTION = "Specify an action value."; protected static String OPT_ACTION_LONG = "action"; protected static String OPT_RESOURCE = "r"; protected static String OPT_RESOURCE_DESCRIPTION = "Specify a resource value."; protected static String OPT_RESOURCE_LONG = "resource"; protected static final String OPT_POLICY_DESCRIPTION = "d"; protected static final String OPT_POLICY_DESCRIPTION_DESCRIPTION = "Description"; protected static final String OPT_POLICY_DESCRIPTION_LONG = "description"; protected static final String OPT_SHOW_RA_IDS = "srai"; protected static final String OPT_SHOW_RA_IDS_DESCRIPTION = "Show resource and action ids"; protected static final String OPT_SHOW_IDS_LONG = "show-ra-ids"; protected static final String OPT_SHOW_ALL_IDS_DESCRIPTION = "Show all ids (resource, action and rule ids)"; protected static final String OPT_SHOW_ALL_IDS_LONG = "show-all-ids"; protected static final String OPT_SHOW_ALL_IDS = "sai"; protected static final String OPT_SHOW_XACML_DESCRIPTION = "use pure XACML (do not convert policies into the simplified policy notation)"; protected static final String OPT_SHOW_XACML_LONG = "show-xacml"; protected static final String GENERIC_XACML_ERROR_MESSAGE = "Generic XACML policy, to see this policy specify the option --" + OPT_SHOW_XACML_LONG + "."; protected HighLevelPolicyManagement highlevelPolicyMgmtClient; protected PAPManagement papMgmtClient; protected XACMLPolicyManagement xacmlPolicyMgmtClient; public PolicyManagementCLI(String[] commandNameValues, String usage, String description, String longDescription) { super(commandNameValues, usage, description, longDescription); } protected abstract int executeCommand(CommandLine commandLine) throws CLIException, ParseException, RemoteException; @Override protected int executeCommandService(CommandLine commandLine, ServiceClient serviceClient) throws CLIException, ParseException, RemoteException { xacmlPolicyMgmtClient = serviceClient.getXACMLPolicyManagementService(serviceClient.getTargetEndpoint() + serviceClient.getXACMLPolicyManagementServiceName()); highlevelPolicyMgmtClient = serviceClient.getHighLevelPolicyManagementService(serviceClient.getTargetEndpoint() + serviceClient.getHighLevelPolicyManagementServiceName()); papMgmtClient = serviceClient.getPAPManagementService(serviceClient.getTargetEndpoint() + serviceClient.getPAPManagementServiceName()); return executeCommand(commandLine); } }