001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 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 019package org.jpos.q2.cli; 020 021import org.jpos.q2.CLICommand; 022import org.jpos.q2.CLIContext; 023import org.jpos.q2.CLISubSystem; 024import org.jpos.security.jceadapter.JCESecurityModule; 025 026import java.util.HashMap; 027import java.util.Map; 028 029/** 030 * CLI implementation - SSM subsystem 031 * 032 * @author Alwyn Schoeman - alwyn.schoeman@gmail.com 033 */ 034public class SSM implements CLISubSystem, CLICommand { 035 private static final String SYSTEM_KEY = "SSM"; 036 private static final String JCE_KEY = "jce-sm"; 037 038 @Override 039 public String getPrompt(CLIContext ctx, String[] args) { 040 return "ssm> "; 041 } 042 043 @Override 044 public String[] getCompletionPrefixes(CLIContext ctx, String[] args) { 045 return new String[] { "org.jpos.q2.cli.ssm.actions." }; 046 } 047 048 @Override 049 public void exec(CLIContext cli, String[] strings) throws Exception { 050 cli.setActiveSubSystem(SYSTEM_KEY); 051 cli.getUserData().put(SYSTEM_KEY, new HashMap<String, Object>()); 052 } 053 054 public static JCESecurityModule getSecurityModule(CLIContext cliContext) { 055 return (JCESecurityModule) getSystemStorage(cliContext).get(JCE_KEY); 056 } 057 058 public static void setSecurityModule(CLIContext cliContext, JCESecurityModule securityModule) { 059 getSystemStorage(cliContext).put(JCE_KEY, securityModule); 060 } 061 062 private static Map<String, Object> getSystemStorage(CLIContext cliContext) { 063 return (Map<String, Object>) cliContext.getUserData().get(SYSTEM_KEY); 064 } 065}