Проблема: я пытаюсь ввести ограничение (занести в черный список) все и разрешить только то, что предоставил, когда мы выполняем groovy с помощью GroovyClassLoader.
Я могу выполнять пользовательскую политику с ограниченным разрешением только для GroovyClassLoader.
Теперь я пытаюсь предоставить ограничение пакета, которое будет использоваться как часть выполнения groovy. Скажем, если я разрешил com.x.y этот пакет, если какой-либо пакет, отличный от этого, используемый в groovy, должен вызвать SecurityException
Я пытался добиться того же с помощью пользовательского диспетчера безопасности и переопределения checkPackageAccess
, но не добился успеха.
public TestSecurityManager extends SecurityManager{
List<String> whiteListedPkgList;
public void checkPackageAccess(String pkg){
if(!pkg.startWith(any of given white list pkg)){
throw new SecurityException("Access Denied");
}
//If package not belong to whilelisted package list throw security exception
}
}
Когда я пытался использовать описанный выше подход, нам нужно предоставить все пакеты для выполнения например, com, java и т. д. вместо java.nio.file. в белом списке
ОБНОВЛЕНИЕ
Если мы попытаемся разрешить такой пакет, как com.x.y, используя сравнение белого списка, используя запуск с проверкой доступа pkg, он разрешит этот пакет, но позже он выдаст исключение безопасности для < пакет strong>com.
Может ли кто-нибудь помочь тому же, как мы можем этого достичь?
заранее спасибо
pkg
значения не работают должным образом) - person cfrick   schedule 28.01.2020