Я использую аннотации безопасности JEE6 @RolesAllowed("Admin")
и программный логин:
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
request.login(loginUser.getUserName(), loginUser.getPassword());
Однако для тестирования я хотел бы иметь возможность "симулировать" логин пользователя и обманутьприложение, в которое пользователь вошел, без фактического выполнения вышеуказанного кода.request.login(...)
будет проверять контейнер для входа в систему, я просто хочу сообщить контейнеру, что пользователь foo вошел в систему, и нет необходимости проверять пароль.Я действительно не хочу решения, которое включает в себя написание модуля входа или изменение настроек всего контейнера.
Спасибо, ребята!
РЕДАКТИРОВАТЬ # 1: Какой сервер приложений я использую?
Я использую GlassFish 3.1.1.Однако, если возможно, я бы хотел, чтобы решение было «независимым от контейнера» с использованием любого доступного API JEE6.
РЕДАКТИРОВАТЬ # 2: Мистер Балус (известный эксперт) не знает ни о каком api-нейтральном способеминуя фактический логин.Я предположил, что мог бы написать свой собственный модуль входа в систему "Да-Человек", но мне любопытно, если кто-нибудь знает, как обойти ограничение, особенно в среде GlassFish.
Спасибо!
РЕДАКТИРОВАТЬ # 3: Для любого, кто найдет этот вопрос позже, я переключился на Apache Shiro.Я использовал Spring Security в прошлом, но это приложение излишне.