猿问

Java JSSE RMI SSL 文件被拒绝访问

对于大学安全实验室的工作,我必须使用 RMI 创建一个简单的客户端/服务器应用程序。对于客户端和服务器之间的安全通信,我想使用 SSL。Oracle 有示例,所以我尝试使用它。我得到错误。我尝试启动使用 rmi.RMISSLServerSocketFactory.java 的服务器 rmi.HelloImpl.java,其中定义了错误中提到的文件。我收到了这个错误

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.5\lib\idea_rt.jar=54269:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_191\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar;C:\Users\Agne\IdeaProjects\jssesamples\out\production\jssesamples" rmi.HelloImpl


我检查了我的 Java 是 8 版本,我使用 IntelliJ IDEA,我以管理员身份运行它。我也遇到了同样的错误,当我尝试在这段代码中创建文件时,在它进入 testkeys 之前。然后几乎与新文件名相同的错误和访问被拒绝写入。我错过了什么?


喵喵时光机
浏览 140回答 1
1回答

智慧大石

安装 RMISecurityManager 后,您需要有一个策略文件,该文件指定您的应用程序在安全策略文件中所需的权限。我认为曾经有一个策略工具应用程序可以帮助您编写该文件,并且错误消息会告诉您需要向该文件添加什么权限。在您的情况下,它看起来像:grant {    filePermission "testKeys", "read" }将需要成为您的安全策略的一部分。
随时随地看视频慕课网APP

相关分类

Java
我要回答