source: trunk/security/ExpressoCert/src/br/gov/serpro/setup/Setup.java @ 1174

Revision 1174, 5.2 KB checked in by rafaelraymundo, 15 years ago (diff)

Ticket #558 - Altera nome de diretório seguranca para security.

Line 
1package br.gov.serpro.setup;
2import java.applet.Applet;
3import java.util.HashMap;
4import java.util.Locale;
5import java.util.Map;
6import java.util.MissingResourceException;
7import java.util.Properties;
8import java.util.ResourceBundle;
9
10
11public class Setup {
12
13        /**
14         *
15         */
16        private static final long serialVersionUID = -8164125429139606589L;
17
18        private Properties parameters;
19        private Properties preferences;
20    private Map<String, ResourceBundle> langResources;
21    Locale currentLocale;
22        private Applet currentApplet;
23       
24    private static final String PREFERENCES_PATH;
25    private static final String EPASS_2000;
26
27    static {
28
29        //PrintStream ps = new PrintStream(System.out);
30                //System.getProperties().list(System.out);
31
32        if (System.getProperty("os.name").equalsIgnoreCase("linux")){
33                        EPASS_2000 = "/usr/lib/libepsng_p11.so";
34                }
35                else {
36                        EPASS_2000 = System.getenv("SystemRoot").replaceAll("\\\\", "/")+"/system32/ngp11v211.dll";
37            //EPASS_2000 = System.getenv("ProgramFiles")+"\\Gemplus\\GemSafe Libraries\\BIN\\gclib.dll";
38                }
39
40
41                PREFERENCES_PATH = "TESTE";
42
43        }
44
45        public Setup(Applet applet){
46
47                this.currentApplet = applet;
48                parameters = new Properties();
49                //preferences = Do arquivo apontado por preferences_path
50
51                // Pega os parâmetros da applet
52                for (String[] parameter: getParameterInfo()){
53                        String parameterName = parameter[0];
54                        String parameterValue = this.currentApplet.getParameter(parameterName);
55
56                        //System.out.println("Parameter a ser adicionado - " + parameterName + "= " + parameterValue);
57
58                        if (parameterValue != null && !parameterValue.equals("")){
59                                parameters.setProperty(parameterName.toLowerCase(), parameterValue);
60                if (parameterName.equalsIgnoreCase("locale")){
61                    System.out.println("Locale recebido.");
62                }
63                        }
64            else {
65                //Defaults
66                if (parameterName.equalsIgnoreCase("debug")){
67                    parameters.setProperty(parameterName.toLowerCase(), "false");
68                }
69                if (parameterName.equalsIgnoreCase("token")){
70                    parameters.setProperty(parameterName.toLowerCase(), "Epass2000;"+EPASS_2000);
71                }
72                if (parameterName.equalsIgnoreCase("locale")){
73                    System.out.println("Locale não recebido, definindo valor default.");
74                    parameters.setProperty(parameterName.toLowerCase(), "pt_BR");
75                }
76            }
77                }
78
79                //TODO: Pega as preferências do arquivo de preferências se encontrado;
80
81        // Lang Resources
82        currentLocale = this.buildLocale(parameters.getProperty("locale"));
83        langResources = new HashMap<String, ResourceBundle>(2);
84        langResources.put("ExpressoCertMessages", ResourceBundle.getBundle("ExpressoCertMessages", currentLocale));
85
86        }
87
88        public String[][] getParameterInfo(){
89
90                String[][] info = {
91                        {"debug", "boolean", "Habilita mensagens de debug"},
92            {"token", "string", "Lista de tokens suportados. Formato: nome1;caminho1,nome2;caminho2"},
93            {"locale", "string", "Locale do sistema"}
94                };
95
96                return info;
97        }
98
99        public String[][] getPreferencesInfo(){
100
101                String[][] info = {
102                        {"preferedToken", "string", "Token preferencial do usuário. Formato: nome;caminho"}
103                };
104
105                return info;
106
107        }
108
109        public String getParameter(String key){
110                return parameters.getProperty(key);
111        }
112
113        public String getPreference(String key){
114                return getPreference(key);
115        }
116
117        //TODO: implementar PreferenceNotRegisteredException
118        public void setPreference(String key, String value){
119
120                boolean exists = false;
121                while (!exists){
122                        for (String[] preference: getPreferencesInfo()){
123                                if (key.equalsIgnoreCase(preference[1])){
124                                        exists = true;
125                                        preferences.setProperty(key, value);
126                                }
127                        }
128                }
129
130                if (!exists){
131//                       throws PreferenceNotRegisteredException();
132            System.out.println("Preferência não existe!");
133                }
134        }
135
136    Locale buildLocale(String localeCode){
137
138        String[] localeItems = localeCode.split("_");
139        Locale locale;
140       
141        switch (localeItems.length){
142            case 1: locale = new Locale(localeItems[0]);
143                    break;
144            case 2: locale = new Locale(localeItems[0], localeItems[1]);
145                    break;
146            case 3: locale = new Locale(localeItems[0], localeItems[1], localeItems[2]);
147                    break;
148            default: locale = new Locale("pt", "BR");
149                    System.out.println("Locale code error, setting default locale: " + locale.toString());
150        }
151
152        return locale;
153    }
154
155    public void addLanguageResource(String langResource){
156        System.out.println("registrando recusro de linguagem " + langResource);
157        langResources.put(langResource, ResourceBundle.getBundle(langResource, currentLocale));
158    }
159
160    public String getLang(String langResource, String message){
161
162        ResourceBundle resource = langResources.get(langResource);
163
164        String i18nText = new String("????");
165        try {
166            i18nText = resource.getString(message);
167        }
168        catch (MissingResourceException e){
169            e.printStackTrace();
170        }
171
172        return i18nText;
173
174        //return message;
175    }
176
177        // TODO: Not Implemented Yet
178        public boolean savePreferences(){
179                return false;
180        }
181
182}
Note: See TracBrowser for help on using the repository browser.