javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionResolver.java
equal
deleted
inserted
replaced
201 .equals(newSettings.getName())) |
201 .equals(newSettings.getName())) |
202 { |
202 { |
203 // add new settings |
203 // add new settings |
204 newPermissionInstancesAndSettings.addElement( |
204 newPermissionInstancesAndSettings.addElement( |
205 new PermisionInstanceAndSettings( |
205 new PermisionInstanceAndSettings( |
206 p.getPermissionInstance(), newSettings)); |
206 p.getPermissionInstance(), |
|
207 p.getType(), |
|
208 newSettings)); |
207 } |
209 } |
208 else |
210 else |
209 { |
211 { |
210 // keep the old settings |
212 // keep the old settings |
211 newPermissionInstancesAndSettings.addElement(p); |
213 newPermissionInstancesAndSettings.addElement(p); |
238 { |
240 { |
239 resolvedPermissions.addElement( |
241 resolvedPermissions.addElement( |
240 getResolvedPermission( |
242 getResolvedPermission( |
241 requestedPermission, |
243 requestedPermission, |
242 policyPermission, |
244 policyPermission, |
|
245 p.getType(), |
243 p.getSettings(), |
246 p.getSettings(), |
244 requestedPermission.getClass().getName(), |
247 requestedPermission.getClass().getName(), |
245 requestedPermission.getName(), |
248 requestedPermission.getName(), |
246 requestedPermission.getActions())); |
249 requestedPermission.getActions())); |
247 return resolvedPermissions; |
250 return resolvedPermissions; |
272 permissionResolved = true; |
275 permissionResolved = true; |
273 // add the permission to the result only of not found among the existing ones |
276 // add the permission to the result only of not found among the existing ones |
274 PolicyBasedPermissionImpl permission1 = |
277 PolicyBasedPermissionImpl permission1 = |
275 getResolvedPermission(requestedPermission, |
278 getResolvedPermission(requestedPermission, |
276 policyPermission, |
279 policyPermission, |
|
280 p.getType(), |
277 p.getSettings(), |
281 p.getSettings(), |
278 requestedPermission.getClass().getName(), |
282 requestedPermission.getClass().getName(), |
279 requestedPermission.getName(), |
283 requestedPermission.getName(), |
280 actions[i]); |
284 actions[i]); |
281 if (permission1.getActionList() == null |
285 if (permission1.getActionList() == null |
305 { |
309 { |
306 // replace element at position k with another one having |
310 // replace element at position k with another one having |
307 // the combined actions |
311 // the combined actions |
308 resolvedPermissions.setElementAt(getResolvedPermission( |
312 resolvedPermissions.setElementAt(getResolvedPermission( |
309 permission1.getPromptDetails(), |
313 permission1.getPromptDetails(), |
|
314 p.getType(), |
310 p.getSettings(), |
315 p.getSettings(), |
311 requestedPermission.getClass().getName(), |
316 requestedPermission.getClass().getName(), |
312 requestedPermission.getName(), |
317 requestedPermission.getName(), |
313 permission2.getActionList() + "," + permission1.getActionList()), |
318 permission2.getActionList() + "," + permission1.getActionList()), |
314 k); |
319 k); |
356 { |
361 { |
357 PermisionInstanceAndSettings instance1 = |
362 PermisionInstanceAndSettings instance1 = |
358 (PermisionInstanceAndSettings)tmp.elementAt(0); |
363 (PermisionInstanceAndSettings)tmp.elementAt(0); |
359 tmp.removeElementAt(0); |
364 tmp.removeElementAt(0); |
360 Permission permission1 = (Permission)instance1.getPermissionInstance(); |
365 Permission permission1 = (Permission)instance1.getPermissionInstance(); |
|
366 int type = instance1.getType(); |
361 UserSecuritySettings settings1 = instance1.getSettings(); |
367 UserSecuritySettings settings1 = instance1.getSettings(); |
362 String compositeAction = ""; |
368 String compositeAction = ""; |
363 // put the individual actions into a vector so that the composite |
369 // put the individual actions into a vector so that the composite |
364 // action is made only by unique actions (duplicates are discarded) |
370 // action is made only by unique actions (duplicates are discarded) |
365 Vector uniqueActions = new Vector(); |
371 Vector uniqueActions = new Vector(); |
421 { |
427 { |
422 resolvedPermissions.addElement( |
428 resolvedPermissions.addElement( |
423 getResolvedPermission( |
429 getResolvedPermission( |
424 requestedPermission, |
430 requestedPermission, |
425 permission1, |
431 permission1, |
|
432 type, |
426 settings1, |
433 settings1, |
427 requestedPermission.getClass().getName(), |
434 requestedPermission.getClass().getName(), |
428 requestedPermission.getName(), |
435 requestedPermission.getName(), |
429 requestedPermission.getActions())); |
436 requestedPermission.getActions())); |
430 return resolvedPermissions; |
437 return resolvedPermissions; |
450 return resolvePermission(requestedPermission, permissionInstances); |
457 return resolvePermission(requestedPermission, permissionInstances); |
451 } |
458 } |
452 |
459 |
453 private static PolicyBasedPermissionImpl getResolvedPermission( |
460 private static PolicyBasedPermissionImpl getResolvedPermission( |
454 PermissionBase securityPromptDetails, |
461 PermissionBase securityPromptDetails, |
|
462 int type, |
455 UserSecuritySettings userSettings, |
463 UserSecuritySettings userSettings, |
456 String permissionName, |
464 String permissionName, |
457 String targetName, |
465 String targetName, |
458 String actionList) |
466 String actionList) |
459 { |
467 { |
477 } |
485 } |
478 return new PolicyBasedPermissionImpl( |
486 return new PolicyBasedPermissionImpl( |
479 permissionName, |
487 permissionName, |
480 targetName, |
488 targetName, |
481 actionList, |
489 actionList, |
|
490 type, |
482 userSettings, |
491 userSettings, |
483 securityPromptDetails2); |
492 securityPromptDetails2); |
484 } |
493 } |
485 |
494 |
486 private static PolicyBasedPermissionImpl getResolvedPermission( |
495 private static PolicyBasedPermissionImpl getResolvedPermission( |
487 Permission requestedPermission, |
496 Permission requestedPermission, |
488 Object policyPermission, |
497 Object policyPermission, |
|
498 int type, |
489 UserSecuritySettings userSettings, |
499 UserSecuritySettings userSettings, |
490 String permissionName, |
500 String permissionName, |
491 String targetName, |
501 String targetName, |
492 String actionList) |
502 String actionList) |
493 { |
503 { |
512 } |
522 } |
513 return new PolicyBasedPermissionImpl( |
523 return new PolicyBasedPermissionImpl( |
514 permissionName, |
524 permissionName, |
515 targetName, |
525 targetName, |
516 actionList, |
526 actionList, |
|
527 type, |
517 userSettings, |
528 userSettings, |
518 securityPromptDetails); |
529 securityPromptDetails); |
519 } |
530 } |
520 |
531 |
521 private static Vector getPolicyPermissionInstances(Uid msUID, PolicyBasedPermission[] policyPermissions) |
532 private static Vector getPolicyPermissionInstances(Uid msUID, PolicyBasedPermission[] policyPermissions) |
543 policyPermissions[i].getName(), |
554 policyPermissions[i].getName(), |
544 policyPermissions[i].getTarget(), |
555 policyPermissions[i].getTarget(), |
545 policyPermissions[i].getActionList()); |
556 policyPermissions[i].getActionList()); |
546 policyPermissionInstancesAndSettings.addElement( |
557 policyPermissionInstancesAndSettings.addElement( |
547 new PermisionInstanceAndSettings(p, |
558 new PermisionInstanceAndSettings(p, |
548 policyPermissions[i].getUserSecuritySettings())); |
559 policyPermissions[i].getType(), |
|
560 policyPermissions[i].getUserSecuritySettings())); |
549 } |
561 } |
550 catch (InstantiationException e) |
562 catch (InstantiationException e) |
551 { |
563 { |
552 // This should not be leaked outside |
564 // This should not be leaked outside |
553 Logger.logError("getPolicyPermissionInstances failed: " + e.toString()); |
565 Logger.logError("getPolicyPermissionInstances failed: " + e.toString()); |
588 grantedPermission.getName(), |
600 grantedPermission.getName(), |
589 grantedPermission.getTarget(), |
601 grantedPermission.getTarget(), |
590 grantedPermission.getActionList()); |
602 grantedPermission.getActionList()); |
591 grantedPermissionInstancesAndSettings.addElement( |
603 grantedPermissionInstancesAndSettings.addElement( |
592 new PermisionInstanceAndSettings(p, |
604 new PermisionInstanceAndSettings(p, |
593 grantedPermission.getUserSecuritySettings())); |
605 grantedPermission.getType(), |
|
606 grantedPermission.getUserSecuritySettings())); |
594 } |
607 } |
595 catch (InstantiationException e) |
608 catch (InstantiationException e) |
596 { |
609 { |
597 // This should not be leaked outside |
610 // This should not be leaked outside |
598 } |
611 } |
701 } |
714 } |
702 |
715 |
703 private static class PermisionInstanceAndSettings |
716 private static class PermisionInstanceAndSettings |
704 { |
717 { |
705 private Object permissionObject; |
718 private Object permissionObject; |
|
719 private int type; |
706 private UserSecuritySettings settings; |
720 private UserSecuritySettings settings; |
707 |
721 |
708 public PermisionInstanceAndSettings(Object permissionObject, UserSecuritySettings settings) |
722 public PermisionInstanceAndSettings(Object permissionObject, int type, UserSecuritySettings settings) |
709 { |
723 { |
710 this.permissionObject = permissionObject; |
724 this.permissionObject = permissionObject; |
|
725 this.type = type; |
711 this.settings = settings; |
726 this.settings = settings; |
712 } |
727 } |
713 |
728 |
714 public Object getPermissionInstance() |
729 public Object getPermissionInstance() |
715 { |
730 { |
718 |
733 |
719 public UserSecuritySettings getSettings() |
734 public UserSecuritySettings getSettings() |
720 { |
735 { |
721 return settings; |
736 return settings; |
722 } |
737 } |
|
738 |
|
739 public int getType() |
|
740 { |
|
741 return type; |
|
742 } |
723 } |
743 } |
724 } |
744 } |