Как я понимаю, javax.security.auth - это API для аутентификации и авторизации.EJB 3.1 - реализация javax.security.auth
Я понимаю, что безопасность должна быть реализована поставщиком контейнера, и поставщик bean-компонентов может просто использовать его в своем компоненте в моих простых аннотациях (, @PermitAll
и т. Д.), Как рекомендовано JSR.
Мой вопрос: Это просто означает, что безопасность не может быть протестирована без развертывания в контейнере. Есть ли способ использовать внешнюю 3-ю реализацию javax.security, которая может каким-то образом быть введена в компонент из теста, из которого можно также распространять и тестировать безопасность?
Это почти аналогичный подход, в котором мы вводим реализацию JPA или внешний диспетчер транзакций из модульного теста в компонент для тестирования.
P.S: Я просто хочу проверить, возможно ли это, и если это возможно, это может открыть способы для какой-либо другой разработки. Я понимаю, что это тестирование можно легко выполнить, развернув компонент в встроенном контейнере, таком как OpenEJB или Arquillian.
Большое спасибо за подробный ответ. Я понимаю ваши чувства, но теперь я изучаю различные возможности и на данный момент не могу развиваться. Как только я закончил свое исследование, я буду держать вас в курсе любой новой функции, которая может украсить OpenEJB, если я найду ее. На данный момент моя единственная проблема заключается в том, что OpenEJB поддерживает тестирование интеграции, а не «модульное тестирование». Конечно, это может быть причиной его постройки. По моему мнению, издевательство не может быть единственным решением для модульного тестирования EJB. Итак, я изучаю другие области. Любые предложения для меня, они будут наиболее желанными. Thank – Bala
Не беспокойтесь. Узнайте и изучите. Что касается более унифицированного тестирования, ознакомьтесь с этим методом http://stackoverflow.com/a/8716630/190816 Кроме того, у нас есть экспериментальный код, который позволяет вам поместить RunAs и TransactionAttribute на методы тестирования. Парень, который работал на нем, переключился на работу, и он сидел здесь. Идея по принципу «запускать этот метод n раз и ожидать различных результатов» более или менее гарантирует, что эти 5 пользовательских ролей имеют доступ, и эти 3 не одинаковы для разных состояний транзакций. Здесь есть некоторые опрятные идеи, которые могут заставить творческие соки течь. –