2012-04-23 1 views
2

Я развертываю два веб-приложения на одном экземпляре jboss as7. Одно приложение основано на Spring/Maven и использует весеннюю безопасность для аутентификации. Другое приложение - это веб-приложение birt, которое не требует прямой аутентификации входа. Эти два приложения объединены одной ссылкой меню, которая отображается только тогда, когда зарегистрированный пользователь имеет роль управления. Таким образом, приложение Spring является основным приложением, и оно предоставляет ссылку на веб-приложение birt, если пользователь является менеджером. Моя проблема заключается в том, что приложение Spring безопасно (нет прямого доступа к url, пользователя, необходимого для входа в систему и т. Д.), Но приложение birt может быть доступно без входа в систему, если кто-то знает URL-адрес приложения. Я не хочу иметь две отдельные страницы входа. Я хочу, чтобы проверка подлинности в Spring также определяла доступ к приложению birt, но я не понимаю, как это сделать. Я добавил ограничение безопасности в файл web.xml моего приложения birt и файл jboss-web.xml, чтобы установить домен безопасности для приложения. Ограничение безопасности не имеет значения, существует ли оно или нет, но домен безопасности ограничивает доступ к приложению birt по URL-адресу. Итак, каков следующий шаг отсюда? Как получить аутентификацию из приложения Spring (jsessionid?) И использовать его, чтобы позволить пользователю получить доступ к домену безопасности, содержащему приложение birt?Множественная дезинсекция безопасности веб-приложений

Оба приложения находятся в одном домене ... например, "domain/springApp или domain/birtApp", если кто-то задавался вопросом.

ответ

1

Та же проблема здесь, так как birt.war это вообще отдельный WebApp .. не имеет свою собственную сессию, так что кто-нибудь знает ур имя birt.war & имя отчета через URL, они могут работать только отчеты без аутентификации, но также могут загружать ур-отчеты, которые снова являются проблемой безопасности (здесь загрузка отчетов означает файлы .rptdesign, в которых они могут видеть запросы ur).

возможные решения: -

1> Интеграция отчетов BIRT двигатель 3.7 в Уре веб-приложение, & использовать сервлеты для создания отчетов HTML страницы, то показать, что в ур применения. в этом недостаток заключается в том, что он создает HTML-файлы для каждого отчета у запуска & не получит веб-зрителям АЯКС функциональность & функциональность экспорта, как Excel, PDF и т.д.

2> Это не работает для меня, но и может дать это попытка. Интеграция веб-просмотра BIRT 3.7 в ur webapp. я сделал это & смог показать веб-просмотрщик в моем webapp, но эта ссылка также работала: report = report1.rptdesign "> http: // localhost: 7110/myapp/frameset? _report = report1.rptdesign

Я думал что он перенаправит эту ссылку на мою страницу входа в webapp, как и для других страниц моего веб-приложения, но я получил большое ОТНОШЕНИЕ. Причина была в отдельных сеансах.

Заключение состояло в том, чтобы извлечь веб-просмотрщик с birt & изменить его, чтобы подключиться к моему webapp, который напоминает создание birt снова.

Oh !! здесь ссылка для интеграции birt 3.7: http://wiki.eclipse.org/Birt_3.7_Migration_Guide

+0

Спасибо за ответ. Я решил проблему, интегрировав приложение birt в мое приложение-приложение. Странно, однако; Я могу запустить интегрированное приложение на пристани без проблем, но я получаю исключение, когда я запускаю отчет по jboss как 7. Исключение возникает, когда я пытаюсь запустить отчет. – mblPrgr

0

Одним из вариантов было бы защитить веб-приложение birt посредством защиты от пружины (так что в приложении для birt требуется другая конфигурация безопасности весны). Весенние фильтры безопасности в приложении birt проверили бы объект UserDetails из входящего сеанса, чтобы определить, разрешен ли пользователю доступ к веб-приложению birt.

Весна безопасности -> app1 -> весна безопасность -> BIRT приложение

Это довольно большая дискуссия по переполнению стека ответ :)

+0

Спасибо за быстрый ответ. Если я понимаю, что вы предлагаете правильно, тогда я должен установить весеннюю безопасность в приложении birt и подключить app1 к приложению birt с помощью весенней безопасности. Я могу попробовать это, но я не понимаю, с чего начать. Есть ли урок, связанный с этим? BTW, объем обсуждения не сравнится с размером головной боли, которую эта проблема дает мне;) Мне нужна вся помощь, которую я могу получить! – mblPrgr