所以我正在开发一个java applet。 applet使用有效证书进行签名,清单文件包含“权限:所有权限”,但是当我尝试访问smartcardio时收到错误消息。我收到提示,指出applet具有对系统的完全访问权限。即没有沙盒
我在这里缺少什么? 注意到只有在我尝试连接到卡时问题才会发生。我可以枚举读者并获取事件,但我无法连接到卡片这里是权限检查代码
Permission CardPermission;
try {
Class<?> MyCardPermissionClass = Class.forName("javax.smartcardio.CardPermission");
Constructor<?> MyCardPermConst = MyCardPermissionClass.getConstructor(String.class, String.class);
CardPermission = (Permission) MyCardPermConst.newInstance("*", "*");
} catch (Exception e) {
console.putln("javax.smartcardio not available: " + e.getMessage());
return;
}
try {
securityManager.checkPermission(CardPermission, securityContext);
} catch (SecurityException e) {
console.putln("error " + e.getMessage());
return;
}
这是清单
Manifest-Version: 1.0.1
Ant-Version: Apache Ant 1.9.4
Created-By: Test
Bundle-Name: Test Applet
Bundle-Version: 1.01
Bundle-Date: 2015-06-18 14:19:42 AST
Implementation-Title: BBAB
Implementation-Version: 1.01
Implementation-URL: Test Applet
Permissions: all-permissions
Main-Class: Testpkg.TestClass
Codebase: *
Application-Name: Test application
Application-Library-Allowable-Codebase: *
Caller-Allowable-Codebase: *
HTML代码
<script src="file:///someplace//javadeploy.js"></script>
<script>
var attributes = { id:'TestApplet', archive:'file:///Somplace//Testpkg.jar', code:,
width:1, height:1} ;
var parameters = { parameters:'all-permission', codebase_lookup:'false','main-class':'Testpkg.TestClass'};
deployJava.runApplet(attributes, parameters, '1.0.1');
</script>