Что с Java Security?

Есть Java код. Запускается без SecurityManager'а

    public static void main(String[] args)
    {
        Permissions ps = new Permissions();
        ps.add(new AllPermission());
        ProtectionDomain domain = new ProtectionDomain(null, ps);
        AccessControlContext context = new AccessControlContext(new ProtectionDomain[]{domain});

        AccessController.doPrivileged(new PrivilegedAction<Object>()
        {
            @Override
            public Object run()
            {
                AccessController.checkPermission(new FilePermission("/home/user/file.txt", SecurityConstants.FILE_READ_ACTION));
                return null;
            }
        }, context); // java.security.AccessControlException: access denied (java.io.FilePermission /home/user/file.txt read)
    }


Почему access denied? Все права текущему контексту ведь дал.
  • Вопрос задан
  • 2942 просмотра
Пригласить эксперта
Ответы на вопрос 1
vip_delete
@vip_delete Автор вопроса
Java
Просто запускается. через java Не аплет. Кажется разобрался. Права в *.policy файле по умолчанию стояли «по умолчанию», и в них не было чтения произвольного файла, а AccessController.checkPermission берет пересечение прав, поэтому и возникает access denied
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы