`
kdong_lin
  • 浏览: 1396 次
文章分类
社区版块
存档分类
最新评论

AccessController.doPrivileged的理解备忘

    博客分类:
  • java
阅读更多
    有了doPrivileged,低权限的代码就可以调用高权限的代码来做一些需要高特权才能做的事情,是这样吗?那低权限的代码岂不是啥权限都有了?
    按相关文档理解,doPrivileged 这个特权操作是为解决一个奇怪现象:高权限代码被低权限代码调用时,它的高权限竟然失效了。就好比,一个公司员工被亲戚委托问问公司HR最近还招不招人,结果,从接受委托的那一刻起,这个员工的行为处处受到约束,连在公司喝杯咖啡,都要被连带检查他的亲戚是否有喝咖啡的权限,如果亲戚没有权限,他这咖啡就喝不成了;而这员工有个习惯,不喝杯咖啡就没精神办事,那完了,亲戚委托的事情办不了了。。。
    其实该员工在公司的权限挺大的,咋会这样呢,那能不能这样:凡是接受委托办事,就宣告做特权处理(doPrivileged),喝咖啡的事情就不受影响了。那不行!亲戚委托你把公司电脑带回家给他,难道你就给带回去了,那只说明你这个“高权限代码”实现不当。 你应该这么干:人家委托你的事情呢,碰到公司有人检查你做该事情的权限,该怎么检查就怎么检查(会连带检查委托人的权限),而在办理委托事项的过程中的其他行为,你尽可以宣告以你自己的权限处理(跟委托人无关),也就是说喝咖啡和办事情是两个调用分支。嗯,你就是个“高权限代码”。
分享到:
评论

相关推荐

    aop面向切面需要的jar包

    at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc....

    AccessController.rar_Windows编程_Unix_Linux_

    此外,对于需要以管理员权限运行的任务,AccessController的DoPrivileged块则允许在保持现有权限的同时暂时提升权限,以完成高权限操作。 转向Unix/Linux环境,虽然其安全模型与Windows有所不同,但Access...

    门禁access controller说明书

    门禁Access Controller是一种用于...通过理解和掌握这些知识点,您可以有效地管理和维护门禁Access Controller,确保其在实际应用中的高效和安全。请参考提供的门禁系统文件,以获取更具体的操作指南和详细配置步骤。

    com.ibm.ws.security.util.AccessController not Found

    NULL 博文链接:https://haroldxie.iteye.com/blog/691117

    Oracle.DataAccess.dll 2.112.3.0

    Oracle.DataAccess.dll 2.112.3.0

    Oracle.DataAccess.dll_86位_64位

    总的来说,Oracle.DataAccess.dll是Oracle数据库开发中的核心组件,对于理解.NET环境下的Oracle数据库编程至关重要。开发者需要熟悉其使用方法和注意事项,才能有效地进行数据库操作,避免运行时出现错误。同时,...

    swing-worker-1.1.jar

    at java.security.AccessController.doPrivileged(NativeMethod) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) at java....

    Oracle.DataAccess.Client_dll

    Oracle.DataAccess.Client.dll是Oracle公司为.NET开发者提供的一个关键组件,它是Oracle数据提供程序的一部分,用于在C#等.NET环境中与Oracle数据库进行交互。这个库包含了丰富的Oracle类和接口,使得开发人员可以...

    Oracle.DataAccess 2.112.1.0 for .net 2.0

    开发者可以使用ADO.NET的数据提供者模式,通过Oracle.DataAccess.Client命名空间中的类来操作数据库,如OracleConnection、OracleCommand、OracleDataReader等。这些类提供了对SQL查询的执行、参数化命令、事务控制...

    Oracle.DataAccess.dll

    Oracle.DataAccess.Client是Oracle自己本身自带的,一般要安装Oracle了才有Oracle.DataAccess.Client.dll文件

    hda_controller.rar_HDA_The Common

    此外,还会涉及中断处理机制、DMA(Direct Memory Access,直接内存访问)的使用,以及如何在多线程环境中保证音频流的连续性和实时性。 总的来说,这个压缩包中的内容对于想要深入理解和开发Linux音频驱动的工程师...

    activiti-sandbox-script:如何使用沙盒脚本引擎运行Activiti

    该实现重写受保护的方法my.seoj.activiti.sandbox.script.Main.PrivilegedScriptingEngines.evaluate(String,String,Bindings) 重写的方法应该将super.evaluate()包装在AccessController.doPrivileged()中。...

    Microsoft.Office.Interop.Access.dll

    《Microsoft.Office.Interop.Access.dll与DAO在编程中的应用》 在IT行业中,开发人员常常需要与已存在的应用程序进行交互,以实现特定的功能或自动化任务。在处理Microsoft Office应用程序时,如Access数据库,`...

    较全的oracle.dataaccess.dll

    Oracle.DataAccess.dll是...总之,Oracle.DataAccess.dll是.NET开发人员连接Oracle数据库的重要工具,理解和熟练使用它可以大大提高开发效率。在实际应用中,要根据具体需求选择合适的版本,并注意解决可能出现的问题。

    sdram_controller.zip

    SDRAM(Synchronous Dynamic Random-Access Memory)控制器是FPGA设计中的关键部分,它负责管理与SDRAM芯片的通信,确保数据的正确读写。在本压缩包"sdram_controller.zip"中,包含的资源主要涉及SDRAM控制器的实现...

    iDRAC Integrated Dell Remote Access Controller 9 用户指南

    iDRAC 的主要功能包括: 遥测数据流。 查看受管服务器的运行状况 资源清册和监测网络适配器与存储子系统(PERC 和直接连接存储),不含任何操作系统代理。 查看和导出系统资源清册。 查看传感器信息,例如温度、电压...

    jsp与access数据库 .doc求就jsp与access数据库 .doc

    在本例中,`JDBCAccess.java`是一个JavaBean,封装了与数据库的连接操作。 6. JSP Bean的使用:在JSP页面中,`<jsp:useBean>`标签用于声明和初始化Bean。`id`属性指定了Bean的唯一标识,`scope`属性定义了Bean的...

    DM365 DM368应用手册文档

    Enhanced Direct Memory Access Controller Users Gu.pdf Ethernet Media Access Controller.pdf General-Purpose InputOutput.pdf Inter-Integrated Circuit.pdf Multichannel Buffered Serial Port.pdf Multimedia...

    JSP连接access数据库.htm

    教你如何用JSP连接access数据库.....

Global site tag (gtag.js) - Google Analytics