Can't get applet to read text file

好久不见. 提交于 2019-12-20 06:47:37

问题


I've tried to get my Java Applet to read from my text file, but I do not have sufficient privaleges to read the file when i run the applet in my browser. I have tried to use policy files but I cannot seem to get them to work.

I later tried

System.setProperty("java.security.policy", "*filelocation*");

but i got this error

java.security.AccessControlException: access denied (java.util.PropertyPermission        java.security.policy write)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.System.setProperty(Unknown Source)
at BIT.init(BIT.java:35)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

What ways can I get my applet to run in my browser? It works fine in Eclipse's applet viewer.


回答1:


The reason is specified within the What Applets Can and Cannot Do. It clearly specifies that:

Applets that are not signed are restricted to the security sandbox, and run only if the user accepts the applet. Applets that are signed by a certificate from a recognized certificate authority can either run only in the sandbox, or can request permission to run outside the sandbox. In either case, the user must accept the applet's security certificate, otherwise the applet is blocked from running.

Later it states that:

Sandbox applets cannot perform the following operations:

  • They cannot access client resources such as the local filesystem, executable files, system clipboard, and printers.
  • They cannot connect to or retrieve resources from any third party server (any server other than the server it originated from).
  • They cannot load native libraries.
  • They cannot change the SecurityManager.
  • They cannot create a ClassLoader.
  • They cannot read certain system properties. See System Properties for a list of forbidden system properties.

To know about how to sign an Applet look here : How to Sign Applets Using RSA-Signed Certificates




回答2:


You really ought to consider signing the applet.

This (short!) FAQ discusses both policies and signing:

  • http://www.coderanch.com/how-to/java/HowCanAnAppletReadFilesOnTheLocalFileSystem

Here is the offician documentation:

  • http://docs.oracle.com/javase/6/docs/technotes/guides/security/doprivileged.html

  • http://docs.oracle.com/javase/tutorial/deployment/applet/security.html

And here is a good (albeit old) tutorial:

  • http://faculty.kutztown.edu/spiegel/CSc421/SigningAnApplet.htm


来源:https://stackoverflow.com/questions/16255472/cant-get-applet-to-read-text-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!