我正在设计一个用于在

Java应用程序中加载,处理和支持插件的系统.在我可以部署之前,我认为其中一个功能绝对至关重要的是能够建立一个安全环境,其中插件仅限于允许执行的操作.

我没有理解如何以编程方式使用策略文件而不在启动时运行-Djava.security.manager参数.所以这就是现在.

我的下一个想法是在我自己的SecurityManager子类中覆盖我在SecurityManager中关心的所有方法,并限制谁可以执行它们.

然后问题出现了,通过线程ID检查确定谁在询问此权限的唯一方法.因此,我设计了一个所有插件线程都驻留的系统,并且只能驻留在PluginThreads线程组中.

这工作……直到一切都开始爆炸.问题是被阻止的一些事情是由Sun的代码执行的内部操作.

因此,即使是打开窗口等最基本的操作也会失败,因为我的安全经理拒绝访问Sun的代码.使用我的线程检查方法没有任何关系,因为Sun的代码是在PluginThreads组中执行的.

所以我需要知道的是:

1)有没有办法可以找出使用当前线程调用的上下文?

2)有没有更好的方法来做这个我不知道的事情?

3)如果该方法涉及策略文件,如何将它们加载到代码中?

4)您是否可以考虑使用其他任何方法来阻止Sun的内部Java代码被阻止?

java安全插件_如何安全地实现Java插件安全性?相关推荐

  1. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  2. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  3. java session使用_使用Neo4j和Java进行大数据分析 第2部分

    本文的第一部分介绍了Neo4j及其Cypher查询语言.如果您已经阅读了第1部分,那么您已经了解了为什么Neo4j和其他图形数据库特别受社交图形或网络中用户之间关系建模的影响.您还在开发环境中安装了N ...

  4. 支持java虚拟主机_为何缺乏支持Java的虚拟主机

    现在很多站长们,都青睐于香港虚拟主机建站.现在常见的是asp和PHP的程序空间很多,但是Java的少之又少,下面小编我给大家聊一聊! 一.香港Java虚拟主机成本高 使用Java程序建站,就必须要用支 ...

  5. 做Java头发少_这35个Java代码优化细节,你用了吗

    链接:https://www.jianshu.com/p/6e472304b5ac 前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有 ...

  6. 我的世java途径错误_我的世界JAVA路径错误的解决方法分享

    我的世界JAVA路径错误该怎么解决呢?JAVA是Minecraft运行的虚拟环境必要条件,需要您安装后才开始游戏.很多童鞋在安装过程中都遇到了JAVA路径错误的提示,这是什么原因导致的?第一手游网必须 ...

  7. java编程赋值运算符_跟我学java编程—简单赋值运算符“=”

    赋值运算符是双目运算符,用在赋值表达式中.赋值运算符将值存储在运算符左边操作数指定的变量中.有两种赋值操作,简单赋值和复合赋值,简单赋值把运算符右边的操作数的值存储在运算符左边操作数指定的变量中:复合 ...

  8. java 异常信息_优雅的异常处理 -- Java中的异常

    处理异常自己处理 try-catch抛出让别人处理 throws 获得异常信息 直接打印异常对象 通过异常对象调用getMessage()方法获得 通过异常对象调用printStackTrace()方 ...

  9. java基础知识点_零基础学习Java语言,各个阶段需要掌握的知识点

    随社会的脚步的不断发展,Java技术在不断的与时俱进,这也是Java一直长盛不衰的原因之一.Java技术的学习,永远没有早晚之分,技不压身,对于21世纪的我们80后,90后,甚至00后,尤其适用! 那 ...

最新文章

  1. 1.Hello,World all the time
  2. 神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras 300 用我
  3. Attention的本质:从Encoder-Decoder(Seq2Seq)理解
  4. 解决Mysql无法导入存在null数据的问题
  5. 经典网页设计:20例与众不同的网页联系表单设计
  6. 计算机应用基础 试列出windows中运行一个程序的三种途径,2012-10-17——郑州大学远程教育学院2012计算机应用基础考试考题和答案.doc...
  7. .NET Core开发日志——Linux版本的SQL Server
  8. 2021-08-10 C3P0连接池
  9. python医疗_利用Python实现医疗在线问答机器人
  10. Ubuntu下面安装MySQL shell
  11. python无限锁屏_定时锁屏程序,Python祝你原理猝死!
  12. android遥控器:控制电脑上的暴风影音播放(C#作为服务端)
  13. SVM实现多分类的三种方案
  14. 新旧《西游记》人物造型大PK (转)
  15. Unity中使用Google.Protobuf3,获取dll文件
  16. select2回显操作
  17. abaqus Tie python脚本报错 原因令人震惊
  18. 分号与逗号的区别及举例_怎样区别顿号、逗号和分号
  19. 【1066】满足条件的数累加
  20. 一个人窝在摇椅里乘凉 我承认这样真的很安详 和楼下老爷爷一样

热门文章

  1. LOJ2586 APIO2018 选圆圈
  2. 使用ExpandableListView以及如何优化view的显示减少内存占用
  3. Android使用BroadCastRecevier广播实现接收短信,并利用Toast弹出显示内容
  4. 获取磁盘空间大小计算成看k,m,G
  5. [C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现
  6. 将socket设置为非阻塞(non-blocking) - 艾子的日志 - 网易博客
  7. SharePoint 2010 新体验5 - Office Web Applications
  8. RHEL5.1安装VM TOOL及中文乱码终极解决方案
  9. MYSQL5 表列更名删除等操作测试(更新中...)
  10. linux路由介绍,Linux的路由表详细介绍