Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Об API безопасности Java EE

Java EE включает поддержку JSR 375, которая определяет переносимые подключаемые интерфейсы для аутентификации и хранилищ идентификаторов, а также новый интерфейс SecurityContext инъецируемого типа, который обеспечивает точку доступа для программной безопасности. Вы можете использовать встроенные реализации этих API или определить кастомные реализации.

API безопасности Java EE содержит следующие пакеты:

  • Пакет javax.security.enterprise является основным пакетом API безопасности Java EE и содержит классы и интерфейсы, которые охватывают вопросы аутентификации, авторизации и идентификации. Таблица 51-1 перечисляет основные классы и интерфейсы в этом пакете.

  • Пакет javax.security.enterprise.authentication.mechanism.http содержит классы и интерфейсы, связанные с механизмами аутентификации на основе HTTP, которые могут взаимодействовать с вызывающим субъектом или третьими сторонами в рамках протокола аутентификации. Таблица 51-2 перечисляет основные классы и интерфейсы в этом пакете.

  • Пакет javax.javax.security.enterprise.credential содержит классы и интерфейсы для различных представлений учётных данных пользователя. Таблица 51-3 перечисляет основные классы и интерфейсы в этом пакете.

  • Пакет javax.security.enterprise.identitystore содержит классы и интерфейсы, связанные с хранилищами идентификаторов, которые проверяют учётные данные вызывающего субъекта и определяют группы, в которых он состоит. Таблица 51-4 перечисляет основные классы и интерфейсы в этом пакете.

Таблица 51-1 Основные классы и интерфейсы в javax.security.enterprise

Класс или интерфейс

Описание

SecurityContext

Интерфейс инъецируемого типа, который обеспечивает точку доступа для программной безопасности, предназначенную для использования кодом приложения для взаимодействия с API безопасности Java EE.

CallerPrincipal

Основной тип, который может представлять идентификационную информацию вызывающего приложение субъекта.

AuthenticationStatus

Enum используется для указания возвращаемого значения из механизма аутентификации.

AuthenticationException

Указывает, что в процессе аутентификации возникла проблема.

Таблица 51-2 Основные классы и интерфейсы в javax.security.enterprise.authentication.mechanism.http

Класс или интерфейс

Описание

HttpAuthenticationMechanism

Интерфейс, представляющий механизм аутентификации HTTP. Разработчики могут предоставить собственную реализацию этого интерфейса или использовать один из нескольких встроенных механизмов HTTP-аутентификации.

HttpMessageContext

Интерфейс, представляющий параметры, передаваемые в/из методов HttpAuthenticationMechanism во время выполнения.

AuthenticationParameters

Класс, который содержит параметры, переданные методу SecurityContext.authenticate().

HttpMessageContextWrapper

Разработчики абстрактных классов могут расширить возможности для настройки поведения HttpMessageContext.

Примечание: Пакет javax.security.enterprise.authentication.mechanism.http также включает ряд классов аннотаций, которые используются для настройки/включения встроенных механизмов аутентификации или изменить поведение механизма аутентификации.

Таблица 51-3 Основные классы и интерфейсы в javax.security.enterprise.credential

Класс или интерфейс

Описание

Credential

Интерфейс, который представляет общие учётные данные и определяет несколько методов для работы с учётными данными. Все остальные классы в этом пакете являются реализациями интерфейса Credential.

AbstractClearableCredential

Абстрактный класс, реализующий поведение, общее для всех типов учётных данных, значение которых поддерживает очистку.

BasicAuthenticationCredential

Класс, расширяющий UsernamePasswordCredential для представления учётных данных, используемых базовой аутентификацией HTTP.

CallerOnlyCredential

Учётные данные, которые содержат только имя вызывающего субъекта. Может использоваться для подтверждения личности, но не для аутентификации пользователя из-за отсутствия каких-либо секретных или других учётных данных, которые могут использоваться для проверки.

Password

Класс, представляющий текстовый пароль.

RememberMeCredential

Класс, представляющий учётные данные, представленные в виде токена, для явного использования с функцией JSR 375 RememberMe.

UsernamePasswordCredential

Класс, представляющий учётные данные, обычно используемые аутентификацией по имени пользователя и его паролю.

Таблица 51-4 Основные классы и интерфейсы в javax.security.enterprise.identitystore

Класс или интерфейс

Описание

IdentityStore

Интерфейс, представляющий хранилище идентификаторов. Разработчики могут предоставить собственную реализацию этого интерфейса или использовать одно из встроенных хранилищ идентификаторов.

IdentityStoreHandler

Интерфейс, который определяет методы, используемые приложениями для взаимодействия с хранилищами идентификаторов. Приложения могут использовать встроенный IdentityStoreHandler или предоставлять собственную реализацию, если требуется поведение, отличающееся от поведения встроенного.

PasswordHash

Интерфейс, определяющий методы для генерации и проверки хэшей паролей, необходимых для безопасной проверки паролей при использовании встроенного хранилища идентификаторов базы данных. Разработчики могут реализовать этот интерфейс для генерации/проверки хэшей паролей с использованием любого желаемого алгоритма.

Pbkdf2PasswordHash

Интерфейс маркера реализуется во встроенной реализации PBKDF2 PasswordHash. Разработчики могут использовать этот интерфейс для выбора встроенного алгоритма PBKDF2 при настройке хранилища идентификаторов базы данных.

RememberMeIdentityStore

Интерфейс, определяющий специальный тип хранилища идентификаторов, используемый в сочетании с аннотацией RememberMe и обеспечивающий поведение RememberMe в приложении.

CredentialValidationResult

Класс, представляющий результат попытки проверить учётные данные.

IdentityStorePermission

Требуется разрешение для вызова метода getGroups в IdentityStore, когда настроен SecurityManager.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)