javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerTests.java
changeset 78 71ad690e91f5
parent 64 0ea12c182930
equal deleted inserted replaced
72:1f0034e370aa 78:71ad690e91f5
   136         SecurityStorage storage = new SecurityStorage();
   136         SecurityStorage storage = new SecurityStorage();
   137         Vector grantedPermissions;
   137         Vector grantedPermissions;
   138         storage.removeGrantedPermissions(appUID);
   138         storage.removeGrantedPermissions(appUID);
   139         ac = AccessControllerFactoryImpl.getAccessController(appUID, appName);
   139         ac = AccessControllerFactoryImpl.getAccessController(appUID, appName);
   140         // check null values
   140         // check null values
   141         PermissionResolver.testClearCache();
   141         PermissionResolver.cleanup();
   142         try
   142         try
   143         {
   143         {
   144             ac.checkPermission((Permission)null);
   144             ac.checkPermission((Permission)null);
   145             assertWithTrace(false);
   145             assertWithTrace(false);
   146         }
   146         }
   148         {
   148         {
   149             assertWithTrace(true);
   149             assertWithTrace(true);
   150         }
   150         }
   151         assertWithTrace(ac.checkPermission((String)null) == 0);
   151         assertWithTrace(ac.checkPermission((String)null) == 0);
   152         // check permission which is not granted
   152         // check permission which is not granted
   153         PermissionResolver.testClearCache();
   153         PermissionResolver.cleanup();
   154         try
   154         try
   155         {
   155         {
   156             ac.checkPermission(new CommProtocolPermission("comm://"));
   156             ac.checkPermission(new CommProtocolPermission("comm://"));
   157             assertWithTrace(false);
   157             assertWithTrace(false);
   158         }
   158         }
   168         catch (AccessControlException e)
   168         catch (AccessControlException e)
   169         {
   169         {
   170             assertWithTrace(true);
   170             assertWithTrace(true);
   171         }
   171         }
   172         // check allowed permission which is granted
   172         // check allowed permission which is granted
   173         PermissionResolver.testClearCache();
   173         PermissionResolver.cleanup();
   174         grantedPermissions = new Vector();
   174         grantedPermissions = new Vector();
   175         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   175         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   176                                           "javax.microedition.io.CommProtocolPermission",
   176                                           "javax.microedition.io.CommProtocolPermission",
   177                                           "comm://",
   177                                           "comm://",
   178                                           null,
   178                                           null,
   189         {
   189         {
   190             assertWithTrace(true);
   190             assertWithTrace(true);
   191         }
   191         }
   192         storage.removeGrantedPermissions(appUID);
   192         storage.removeGrantedPermissions(appUID);
   193         // check permission not allowed
   193         // check permission not allowed
   194         PermissionResolver.testClearCache();
   194         PermissionResolver.cleanup();
   195         grantedPermissions = new Vector();
   195         grantedPermissions = new Vector();
   196         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   196         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   197                                           "com.nokia.mj.impl.security.midp.authorization.CommProtocolPermissionImpl",
   197                                           "com.nokia.mj.impl.security.midp.authorization.CommProtocolPermissionImpl",
   198                                           "comm://",
   198                                           "comm://",
   199                                           null,
   199                                           null,
   215         {
   215         {
   216             assertWithTrace(true);
   216             assertWithTrace(true);
   217         }
   217         }
   218         storage.removeGrantedPermissions(appUID);
   218         storage.removeGrantedPermissions(appUID);
   219         // check user permission with NO as interaction mode -> security exception thrown
   219         // check user permission with NO as interaction mode -> security exception thrown
   220         PermissionResolver.testClearCache();
   220         PermissionResolver.cleanup();
   221         grantedPermissions = new Vector();
   221         grantedPermissions = new Vector();
   222         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   222         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   223                                           "com.nokia.mj.impl.security.midp.authorization.HttpProtocolPermissionImpl",
   223                                           "com.nokia.mj.impl.security.midp.authorization.HttpProtocolPermissionImpl",
   224                                           "http://",
   224                                           "http://",
   225                                           null,
   225                                           null,
   252         }
   252         }
   253         storage.removeGrantedPermissions(appUID);
   253         storage.removeGrantedPermissions(appUID);
   254         // check the named permissions: unknown permission
   254         // check the named permissions: unknown permission
   255         assertWithTrace(ac.checkPermission("unknownPermission") == 0);
   255         assertWithTrace(ac.checkPermission("unknownPermission") == 0);
   256         // check the named permissions: allowed permission
   256         // check the named permissions: allowed permission
   257         PermissionResolver.testClearCache();
   257         PermissionResolver.cleanup();
   258         grantedPermissions = new Vector();
   258         grantedPermissions = new Vector();
   259         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   259         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   260                                           "com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl",
   260                                           "com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl",
   261                                           "socket://*",
   261                                           "socket://*",
   262                                           null,
   262                                           null,
   263                                           null));
   263                                           null));
   264         storage.removeGrantedPermissions(appUID);
   264         storage.removeGrantedPermissions(appUID);
   265         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   265         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   266         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.socket") == 1);
   266         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.socket") == 1);
   267         // check the named permissions: user permission with NO interaction mode
   267         // check the named permissions: user permission with NO interaction mode
   268         PermissionResolver.testClearCache();
   268         PermissionResolver.cleanup();
   269         grantedPermissions = new Vector();
   269         grantedPermissions = new Vector();
   270         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   270         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   271                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   271                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   272                                           "http://",
   272                                           "http://",
   273                                           null,
   273                                           null,
   280                                                                                  })));
   280                                                                                  })));
   281         storage.removeGrantedPermissions(appUID);
   281         storage.removeGrantedPermissions(appUID);
   282         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   282         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   283         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == 0);
   283         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == 0);
   284         // check the named permissions: user permission with ONESHOT interaction mode
   284         // check the named permissions: user permission with ONESHOT interaction mode
   285         PermissionResolver.testClearCache();
   285         PermissionResolver.cleanup();
   286         grantedPermissions = new Vector();
   286         grantedPermissions = new Vector();
   287         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   287         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   288                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   288                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   289                                           "http://",
   289                                           "http://",
   290                                           null,
   290                                           null,
   297                                                                                  })));
   297                                                                                  })));
   298         storage.removeGrantedPermissions(appUID);
   298         storage.removeGrantedPermissions(appUID);
   299         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   299         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   300         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
   300         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
   301         // check the named permissions: user permission with BLANKET interaction mode (blanket prompt not shown yet)
   301         // check the named permissions: user permission with BLANKET interaction mode (blanket prompt not shown yet)
   302         PermissionResolver.testClearCache();
   302         PermissionResolver.cleanup();
   303         grantedPermissions = new Vector();
   303         grantedPermissions = new Vector();
   304         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   304         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   305                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   305                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   306                                           "http://",
   306                                           "http://",
   307                                           null,
   307                                           null,
   314                                                                                  })));
   314                                                                                  })));
   315         storage.removeGrantedPermissions(appUID);
   315         storage.removeGrantedPermissions(appUID);
   316         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   316         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   317         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
   317         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
   318         // check the named permissions: user permission with BLANKET interaction mode (blanket prompt shown already)
   318         // check the named permissions: user permission with BLANKET interaction mode (blanket prompt shown already)
   319         PermissionResolver.testClearCache();
   319         PermissionResolver.cleanup();
   320         grantedPermissions = new Vector();
   320         grantedPermissions = new Vector();
   321         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   321         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   322                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   322                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   323                                           "http://",
   323                                           "http://",
   324                                           null,
   324                                           null,
   332         storage.removeGrantedPermissions(appUID);
   332         storage.removeGrantedPermissions(appUID);
   333         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   333         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   334         storage.writeUserSecuritySettingsPromptFlag(appUID, "Net Access", true);
   334         storage.writeUserSecuritySettingsPromptFlag(appUID, "Net Access", true);
   335         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == 1);
   335         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == 1);
   336         // check the named permissions: user permission with SESSION interaction mode (session prompt not shown already)
   336         // check the named permissions: user permission with SESSION interaction mode (session prompt not shown already)
   337         PermissionResolver.testClearCache();
   337         PermissionResolver.cleanup();
   338         grantedPermissions = new Vector();
   338         grantedPermissions = new Vector();
   339         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   339         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   340                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   340                                           "com.nokia.mj.impl.gcf.protocol.http.HttpPermissionImpl",
   341                                           "http://",
   341                                           "http://",
   342                                           null,
   342                                           null,
   350         storage.removeGrantedPermissions(appUID);
   350         storage.removeGrantedPermissions(appUID);
   351         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   351         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
   352         storage.writeUserSecuritySettingsPromptFlag(appUID, "Net Access", true);
   352         storage.writeUserSecuritySettingsPromptFlag(appUID, "Net Access", true);
   353         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
   353         assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
   354         // check the named permissions: denied permission
   354         // check the named permissions: denied permission
   355         PermissionResolver.testClearCache();
   355         PermissionResolver.cleanup();
   356         grantedPermissions = new Vector();
   356         grantedPermissions = new Vector();
   357         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   357         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
   358                                           "com.nokia.mj.impl.gcf.protocol.datagram.DatagramPermissionImpl",
   358                                           "com.nokia.mj.impl.gcf.protocol.datagram.DatagramPermissionImpl",
   359                                           "datagram://",
   359                                           "datagram://",
   360                                           null,
   360                                           null,