Класс HighScore (Учебные руководства Java™> Средства защиты в Java SE> Реализация Вашего Собственного Разрешения)


След: Средства защиты в Java SE
Урок: Реализация Вашего Собственного Разрешения
Класс HighScore
Домашняя страница > Средства защиты в Java SE > Реализация Вашего Собственного Разрешения

Класс HighScore

HighScore class хранит и защищает доступ к высокому счету пользователя для ExampleGame (и любые другие игры, которые вызывают это). Для простоты этот class сохраняет высокое значение счета в файл, вызванный .highscore, в корневом каталоге пользователя. Однако, перед разрешением ExampleGame получить или обновить высокое значение счета пользователя, этот class проверки, чтобы удостовериться, что пользователь предоставил ExampleGame разрешение, чтобы получить доступ к высокому счету в его/ее файле политики безопасности.

Проверка этого ExampleGame имеет HighScorePermission

Проверять действительно ли ExampleGame имеет разрешение, чтобы получить доступ к высокому счету пользователя, HighScore class должен:

  1. Вызвать System.getSecurityManager() получить в настоящий момент установленного менеджера безопасности.
  2. Если результатом не является нуль (то есть, есть менеджер безопасности, в противоположность вызывающей стороне, являющейся приложением, которое неограниченно), то
    1. Создайте a HighScorePermission объект, и
    2. Вызовите менеджера безопасности checkPermission метод, и передача это недавно созданный HighScorePermission объект.

Вот код:

SecurityManager sm = System.getSecurityManager();
if (sm != null) {
    sm.checkPermission(
        new HighScorePermission(gameName));
}

checkPermission метод по существу спрашивает менеджера безопасности если ExampleGame имеет указанное HighScorePermission. Другими словами это спрашивает менеджера безопасности если ExampleGame имеет разрешение, чтобы обновить высокое значение счета пользователя для указанной игры (ExampleGame). Базовая платформа безопасности будет консультироваться с политикой безопасности пользователя, чтобы видеть если ExampleGame действительно имеет это разрешение.

Код HighScore

Here полный исходный код для HighScore class.

Отметьте: doPrivileged вызовы метода используются, чтобы включить HighScore ко временно ресурсам доступа, которые доступны этому, но которые не доступны коду, который вызывает это (ExampleGame). Например, ожидается, что файл политики предоставит HighScore разрешение к доступу .highscore файл в корневом каталоге пользователя, но это не будет предоставлять это разрешение играм, такой как ExampleGame.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: ExampleGame
Следующая страница: Класс HighScorePermission



Spec-Zone.ru - all specs in one place