当前位置: 首页 > 面试题库 >

webstart应用程序日志记录权限被拒绝

沈永新
2023-03-14
问题内容

是否可以使用java.util.Logging并登录到Java Webstart应用程序中的文件?我有以下记录代码:

 处理程序fh =新的FileHandler(“ myapp.log”);
 Logger.getLogger(MyApp.class.getName())。addHandler(fh);

并得到以下异常

java.security.AccessControlException:访问被拒绝(java.util.logging.LoggingPermission控件)
    在java.security.AccessControlContext.checkPermission(未知源)
    在java.security.AccessController.checkPermission(未知源)
    在java.lang.SecurityManager.checkPermission(未知源)
    在java.util.logging.LogManager.checkAccess(未知源)
    在java.util.logging.Handler.checkAccess(未知源)
    在java.util.logging.FileHandler。(未知来源)
    在whoisapiclient.WhoisAPIClientApp.main(WhoisAPIClientApp.java:80)
    在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
    在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
    在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
    在java.lang.reflect.Method.invoke(未知来源)
    在com.sun.javaws.Launcher.executeApplication(未知来源)
    在com.sun.javaws.Launcher.executeMainClass(未知来源)
    在com.sun.javaws.Launcher.doLaunchApp(未知来源)
    在com.sun.javaws.Launcher.run(未知来源)
    在java.lang.Thread.run(未知来源)

问题答案:

访问控制异常表明:

“访问被拒绝(java.util.logging.LoggingPermission控件)”

权限类的javadoc这样说:

“当前只有一个名为LoggingPermission的控件。这是“控件”,它具有控制日志记录配置的能力,例如通过添加或删除处理程序,通过添加或删除过滤器或更改日志记录级别。

您正在执行的操作显然属于“控制”权限。

如果要创建/添加自己的日志处理程序,则需要对应用程序进行签名。

顺便说一句,如果您确实设法解决了该LoggingPermission("control")问题,则在打开日志文件时会遇到另一个访问问题。

通过对应用程序签名解决了这两个问题。然后,您遇到了用户必须接受/信任您的签名密钥的问题。但这很公平!就Java安全沙箱所知,您正在执行的操作可能会损坏用户的计算机。



 类似资料:
  • 我的java应用程序可以独立运行。但是当我把它作为一个Java的网络启动应用程序运行时,它会启动,但是当我点击某个按钮时会失败。我不知道如何调试它,所以我想我应该添加日志记录。这导致了权限拒绝错误,甚至无法启动。 为了解决这个问题,我补充道 到C:\Program Files\Java\jre1。8.0-171\lib\security\java。策略文件和C:\Program Files\Jav

  • 我正在尝试使用 PHP 制作日期日志文件。我正在Macbook上的xampp上运行它。它一直说许可被拒绝。我该如何解决这个问题? 我收到的错误是: 警告: fopen(星期五-01-四月-16.txt): 无法打开流: 权限被拒绝 /Applications/XAMPP/xamppfiles/htdocs/aowigman/index.php 在第 6 行无法打开文件! 代码: 先谢谢!

  • 我有一个使用Spring Boot开发的微服务。应用程序部署在pivotal cloud Foundry。我已经在logback.xml中设置了日志级别,它是应用程序的一部分。为了更改日志级别,我必须更新logback.xml并重新构建/重新部署应用程序。有没有更好的方法做到这一点,而不必重新部署应用程序?有没有办法在PCF中将日志级别设置为env变量?

  • 需要帮助...我在这里做错了什么???我相信它确实从应用程序属性文件中读取路径和文件名。但我不认为它读取了logback.xml或logback-spring.xml 我做了一些研究,发现了许多问题/答案。但是我想每个人都说要把logback xml放在资源中,把路径和文件名放在application.properties.我知道这很简单,但是在某个地方遗漏了一些东西… 提前谢谢!! 应用程序属性

  • 为我的android应用程序使用MYSQL: 主要活动。 无法连接到mysql数据库 与IP地址和我的服务器有关吗?

  • 我正在尝试调用GCP应用程序引擎REST API-https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps/get来自API浏览器和邮递员。这就产生了http代码403。我可以使用相同的用户帐户使用cloud sdk从本地部署服务。不确定为什么只有REST API不起作用。其他任何机构都面临这个问题。 请求-G