javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsReader.java
branchRCL_3
changeset 23 e5618cc85d74
parent 14 04becd199f91
equal deleted inserted replaced
21:4376525cdefb 23:e5618cc85d74
   325      */
   325      */
   326     private static void setExtPermissionMappings(String odcFile,
   326     private static void setExtPermissionMappings(String odcFile,
   327             String mappingsSystemProperty)
   327             String mappingsSystemProperty)
   328     {
   328     {
   329         String[] mappings = Tokenizer.split(mappingsSystemProperty, ";");
   329         String[] mappings = Tokenizer.split(mappingsSystemProperty, ";");
       
   330         Vector validatedPermNames = new Vector();
   330         if (mappings != null)
   331         if (mappings != null)
   331         {
   332         {
   332             for (int i=0; i<mappings.length; i++)
   333             for (int i=0; i<mappings.length; i++)
   333             {
   334             {
   334                 String mapping = mappings[i];
   335                 String mapping = mappings[i];
   356                         if (!found)
   357                         if (!found)
   357                         {
   358                         {
   358                             // one more check against the existing extensions
   359                             // one more check against the existing extensions
   359                             // permission mappings
   360                             // permission mappings
   360                             found = find(namedPermName,
   361                             found = find(namedPermName,
   361                                          classBasedPermName,
   362                                          (validatedPermNames.contains(classBasedPermName) 
       
   363                                          ? null: classBasedPermName),
   362                                          extPermissionMappings);
   364                                          extPermissionMappings);
   363                         }
   365                         }
   364                         if (!found)
   366                         if (!found)
   365                         {
   367                         {
       
   368                             validatedPermNames.addElement(classBasedPermName);
   366                             extPermissionMappings.put(
   369                             extPermissionMappings.put(
   367                                 namedPermName,
   370                                 namedPermName,
   368                                 new MIDPPermission(
   371                                 new MIDPPermission(
   369                                     classBasedPermName,
   372                                     classBasedPermName,
   370                                     classBasedPermTarget,
   373                                     classBasedPermTarget,
   385         for (Enumeration e = permMapping.keys() ; e.hasMoreElements() ;)
   388         for (Enumeration e = permMapping.keys() ; e.hasMoreElements() ;)
   386         {
   389         {
   387             Object key = e.nextElement();
   390             Object key = e.nextElement();
   388             Object value = permMapping.get(key);
   391             Object value = permMapping.get(key);
   389             if (((String)key).equalsIgnoreCase(namedPermName)
   392             if (((String)key).equalsIgnoreCase(namedPermName)
   390                     || (((MIDPPermission)value)).getName()
   393                     || ( classBasedPermName != null 
   391                     .equalsIgnoreCase(classBasedPermName))
   394                     && (((MIDPPermission)value)).getName()
       
   395                     .equalsIgnoreCase(classBasedPermName)))
   392             {
   396             {
   393                 return true;
   397                 return true;
   394             }
   398             }
   395         }
   399         }
   396         return false;
   400         return false;