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, |