在java中读取System.in的权限
发布时间:2020-12-14 19:23:48 所属栏目:Java 来源:网络整理
导读:我有一些代码使用下面的代码从控制台读取用户输入. Console console = System.console();String input = console.readLine(); 但是,此代码应在非常安全的环境中运行,其中每个操作的权限都通过策略文件控制. 所以我用策略文件测试了java代码 grant codeBase "
我有一些代码使用下面的代码从控制台读取用户输入.
Console console = System.console(); String input = console.readLine(); 但是,此代码应在非常安全的环境中运行,其中每个操作的权限都通过策略文件控制. 所以我用策略文件测试了java代码 grant codeBase "file:/myjar.jar" { permission java.security.AllPermission; }; 我不知道我应该使用什么权限来授予console.readLine()的权限. 解决方法
如果您在启用了SecurityManager的JVM中使用System.console,则需要以下RuntimePermissions:
permission java.lang.RuntimePermission "readFileDescriptor"; permission java.lang.RuntimePermission "writeFileDescriptor"; 为什么? System.in和System.out文件描述符(0和1,其中2表示System.err)已经对JVM开放. SecurityManager通过 虽然“writeFileDescriptor”可能看起来多余,但是有必要初始化Console对象(至少在Oracle Java 7运行时中). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |