| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > JAAS: секьюрити |
| Автор: Domestic Cat 15.3.2005, 07:52 | ||||||||
| JAAS 1. Что такое JAAS? Java Authentication and Authorization Services. Этот сервис был интегрирован в Java 1.4. JAAS позволяет ограничить доступ к системным ресурсам. 2. В качестве примера рассмотрим доступ к ресурсу "os.name" 3. Код для авторизации выглядит следующим образом:
Отмечу несколько моментов. Во-первых, DialogCallbackHandler - это ГУИ хендлер на случай, если требуется аутентификация. Для модуля com.sun.security.auth.module.NTLoginModule этот хендлер вызываться не будет. Для com.sun.security.auth.module.Krb5LoginModule - будет. Во-вторых, Subject - это любой, кто пытается получить доступ к ресурсам. Каждый Subject содержит лист Principalов, которым и даются определеные права. Наконец, Subjectу сопоставлено PrivilegedAction, код которого приведен ниже
4. Кроме этого, требуется 2 файла. Первый из них называется jaas.conf и содержит информацию об используемых модулях аутентификации.
(Krb5LoginModule можно написать для интереса - чтоб посмотреть как выглядит диалог хендлер. Керберос все равно доступа не даст). Ве это означает, что для успешного выполнения действия нужно пройти две аутентификации - стандартную Виндовс НТ и Керберос. required - означает, что следующий модуль будет вызван независимо от того, успешна аутентификация или нет. 5. Полиси файл - jaas.policy.
Этот файл позволяет ограничить круг разрешенных действий для кода. Например, если нехороший человек заменит "os.name" в GetOsName на другое свойство, эму в этом дествии будет отказано. 6. Теперь компилим и пакуем все в архивы: javac *.java jar -cvf GetOsName.jar GetOsName.class jar -cvf JaasTest.jar JaasTest.class 7. Запускаем: C:\projects>java -cp GetOsName.jar;JaasTest.jar -Djava.security.manager -Djava.s ecurity.auth.login.config=jaas.conf -Djava.security.policy=jaas.policy JaasTest Login successful Your OS is Windows 2000 |