jjzjj

securityManager

全部标签

java - 为什么 java 安全管理器既不禁止创建 new Thread() 也不禁止启动它?

您知道为什么Java安全管理器不禁止创建或启动新线程的解释吗?newFileWriter在安全管理器下,但newThread()和threadInstance.start()都不是在安全管理器下,可以调用。禁止它不是很有用吗?会不会很难实现?或者创建和启动新线程与禁止它无关紧要? 最佳答案 无法定义安全策略来阻止代码使用标准JavaSecurityManager创建和启动新线程。假设您有以下代码:publicclassTest{publicstaticvoidmain(String[]args){System.out.println

Shiro框架:Shiro SecurityManager安全管理器解析

目录1. SecurityManager介绍1.1 Authenticator1.2 Authorizer1.3 SessionManager2.DefaultWebSecurityManager解析2.1 Destroyable2.2 CacheManagerAware2.3 EventBusAware2.4 CachingSecurityManager(聚合缓存管理和事件监听管理功能)2.5 RealmSecurityManager(聚合Realm管理功能)2.6 AuthenticatingSecurityManager(聚合登录认证功能)2.7 AuthorizingSecurityM

java - 禁止调用 System.exit

我试图禁止在某些jar中调用System.exit(int);。这些jar将由外部团队开发并由我们的“容器”应用程序加载。我的第一react是使用java安全管理器:-Djava.security.manager-Djava.security.debug=all使用最简单的${user.home}/.java.policy文件:grant{};虽然我不能再调用诸如System.getProperties()(因为我没有java.util.PropertyPermission),但我可以执行System.exit(0)!!选项java.security.debug=all提供以下控制台:

java - 使用 AllPermission 启用 Java SecurityManager

我试图让自己熟悉SecurityManager但即使是这个简单的场景也会失败。当我从我的IDE内部或命令行运行以下命令时,我得到以下exception;accessdenied("java.util.PropertyPermission""java.home""read")我以为我允许了这段代码的一切:Policy.setPolicy(newPolicy(){@OverridepublicPermissionCollectiongetPermissions(CodeSourcecodesource){Permissionsperm=newPermissions();perm.add(n

【项目实战】Java中的安全管理器SecurityManager入门介绍

一、SecurityManager是什么?Java中的一个安全管理器一个允许应用程序实现安全策略的类。应用程序可以允许或不允许该操作。通过SecurityManager,可以限制Java应用程序对以下资源的访问:文件系统:包括读、写、执行等操作。网络:包括建立连接、发送和接收数据等操作。反射:包括调用私有方法、修改final字段等操作。类加载器:包括设置类加载器、定义安全上下文等操作。二、SecurityManager能做什么?允许应用程序在执行一个可能不安全或敏感的操作前确定该操作是什么,以及是否是在允许执行该操作的安全上下文中执行它。保护Java虚拟机(JVM)不受恶意代码的攻击。提供了一

java - 为什么我不能在 SecurityManager 下关闭我自己的 ExecutorService?

在默认安全管理器下,如果我创建一个ExecutorService(在这种情况下为ThreadPoolExecutor),我无法将其关闭,shutdown()只是调用checkPermission("modifyThread")并因此立即死亡:importjava.util.concurrent.*;classA{publicstaticvoidmain(String[]args){Threadct=Thread.currentThread();System.out.println("currentthread:"+ct);ct.checkAccess();//wehaveaccesst

java - 当 SecurityManager.checkExit 抛出异常时,System.exit(0) 不会阻止最终被调用

System.exit(0);有问题。当我尝试下面的代码时,由于System.exit(0);:没有任何输出Stringnumber="12345M";try{System.exit(0);}catch(Exceptione){System.out.println("Exceptioncaught");}finally{System.out.println("insidefinally");}但是当我尝试下面的代码时:System.setSecurityManager(newSecurityManager(){@OverridepublicvoidcheckExit(intstatus

【Java技术专题】「盲点追踪」突破知识盲点分析Java安全管理器(SecurityManager)

前提介绍Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性;二是Java语言开发的应用程序的安全性。由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我们考虑。其中第二个安全性是我们重点考虑的问题,一般我们可以通过安全管理器机制来完善安全性,安全管理器是安全的实施者,可对此类进行扩展,它提供了加在应用程序上的安全措施,通过配置安全策略文件达到对网络、本地文件和程序其它部分的访问限制的效果。安全管理器的作用当Java应用程序运行时,它们可以访问计算机上的资源,例如文件系统、网络、系统属性等。SecurityManager是Java中的一个类,它允许开

java - 在 Java 中限制文件访问

问题:在我的Java应用程序(不是小程序)中,我希望将某些文件操作限制为所有类,但不应限制的类的列表/组/包除外。具体来说,我想限制...文件读取文件写入文件创建文件删除...这样它们只能在当前工作目录中完成,但不受限制的类除外。SecurityManager尝试:我试图实现实现此行为的SecurityManager类的子类,但是似乎在进行检查时,提供的file信息不仅仅提供文件名(除非我遗漏了什么?)。另外,我不太明白在这种情况下我如何找出调用的类,以允许我确定是允许操作还是抛出异常。有什么方法可以让我获得让这种方法发挥作用所需的所有信息?基于策略的尝试:我还知道Java策略旨在限制

java - 在 Java 中限制文件访问

问题:在我的Java应用程序(不是小程序)中,我希望将某些文件操作限制为所有类,但不应限制的类的列表/组/包除外。具体来说,我想限制...文件读取文件写入文件创建文件删除...这样它们只能在当前工作目录中完成,但不受限制的类除外。SecurityManager尝试:我试图实现实现此行为的SecurityManager类的子类,但是似乎在进行检查时,提供的file信息不仅仅提供文件名(除非我遗漏了什么?)。另外,我不太明白在这种情况下我如何找出调用的类,以允许我确定是允许操作还是抛出异常。有什么方法可以让我获得让这种方法发挥作用所需的所有信息?基于策略的尝试:我还知道Java策略旨在限制