javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerImpl.java
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerImpl.java Wed Jun 09 09:34:07 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerImpl.java Mon Jun 21 15:32:50 2010 +0300
@@ -21,6 +21,7 @@
import java.util.Vector;
import java.security.AccessControlException;
import com.nokia.mj.impl.utils.Uid;
+import com.nokia.mj.impl.security.midp.common.PolicyBasedPermission;
import com.nokia.mj.impl.security.midp.common.PolicyBasedPermissionImpl;
import com.nokia.mj.impl.security.midp.common.UserPermission;
import com.nokia.mj.impl.security.midp.common.UserSecuritySettings;
@@ -256,7 +257,7 @@
*/
private void handleUserPermission(
Permission checkedPermission,
- UserPermission resolvedPermission,
+ PolicyBasedPermissionImpl resolvedPermission,
SecurityStorage storage)
{
UserSecuritySettings settings = resolvedPermission
@@ -300,6 +301,14 @@
new java.security.AccessControlException(
"Permission " + checkedPermission + " not allowed"));
}
+
+ // if the permission was assigned or the settings were not active,
+ // then activate the user settings
+ if (resolvedPermission.getType() != PolicyBasedPermission.USER_TYPE
+ || !settings.isActive())
+ {
+ storage.activateUserSecuritySettings(iAppUID, resolvedPermission);
+ }
// if settings have not changed, still do one check on the current
// interaction mode: if it's blanket, mark down that the prompt in