Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ACEGI Adapter Authentication Provider 
:(
    Опции темы
Foo
Дата 19.5.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



Всем Привет. 
Мне необходимо реализовать в своем проекте Adapter Authentication Provider для ACEGI Security. На эту тему есть оффициальная документация 
http://acegisecurity.org/guide/springsecurity.html#ca.

Сделал по доке, но есть 1 ньюанс, они просят скопировать в томкат ряд jar-ок:
Цитата

Copy the following files into $CATALINA_HOME/common/lib:

    *

      aopalliance.jar
    *

      spring.jar
    *

      commons-codec.jar
    *

      burlap.jar
    *

      hessian.jar

None of the above JAR files (or acegi-security-XX.jar) should be in your application's WEB-INF/lib. The realm name indicated in your web.xml does not matter with Catalina.


Причем ни оной из этих jar файлов недолжно быть в самом приложении, но у меня приложение использует Spring. C помощью Spring я создаю бины, соответственно использую классы из своего приложения, а также hibernate классы и т.д. При запуске томката acegi нормально запускается, а потом начинатеся создание бинов внутри моего приложения, и тут начинаются проблемы ClassNotFoundException. Как можно решить это не вынося hibernate и остальные классы в томкат?
--------------------
qip
PM MAIL   Вверх
Zamuta
Дата 20.5.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Foo, совсем не обязательно копировать эти либы в $CATALINA_HOME/common/lib, это делается если ты хочешь, чтобы они были доступны всем приложениям запущенным под этим томкатом, иначе же можешь держать нужные либы внутри приложения ( WEB-INF/lib/ ). Это единственная известная мне разница.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
Foo
Дата 21.5.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



Дело в том, что мне необходимо вынести настройку acegi из приложения в томкат. Для этого я как и написано в документации копирую acegisequrity.xml в томкат/conf. Также я прописываю в server.xml что реалим нужно настраивать по этому файлу. Если я напимер скопирую spring.jar в свое приложение и в common/lib его небудет то я получу java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException в момент старта сервера. Может есть возможность сказать томкату чтобы он к своему класпасу добавил jar-ки из моего приложения? или ещё какието варианты.

--------------------
qip
PM MAIL   Вверх
Foo
Дата 21.5.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



может быть у кого нибудь есть хоть какойто пример использования Adapter Authentication Provider?  smile 
--------------------
qip
PM MAIL   Вверх
Zamuta
Дата 21.5.2008, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Foo, Adapter Authentication Provider это хорошо. Дело вот в чём. У томката есть своя система аутентификации/авторизации основанная на JAAS (доки) . В основе Acegi тоже лежит JAAS. С Acegi ты получаешь гибкость настройки и использования плюс ещё полезные модули. В твоём случае думаю нужно выбрать что-то одно.

Цитата

Container Adapters enable Acegi Security to integrate directly with the containers used to host end user applications. This integration means that applications can continue to leverage the authentication and authorization capabilities built into containers (such as isUserInRole() and form-based or basic authentication), whilst benefiting from the enhanced security interception capabilities provided by Acegi Security (it should be noted that Acegi Security also offers ContextHolderAwareRequestWrapper to deliver isUserInRole() and similar Servlet Specification compatibility methods).


Т.е. тот же isUserInRole() и похожие методы из спецификации сервлета реализованиы и в Acegi.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
Foo
Дата 21.5.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



Ок, я попытаюсь описать что мне нужно сделать.

В своем приложении я использую спринг для создания бинов, также в спринге у меня конфигурируется acegi. Я описал там несколько провайдеров нужных мне - база данных, ин-мемори и др. Проблема в том, что конфиг в котором я описал провайдеры и AuthenticationManager находится внутри war фала. Мне нужно вынести это настройик из war файла, для чего я хочу использовать Container Adapter Authentication. Судя по документации, если я сделаю это, то смогу положить конфиг файл с настройками провайдеров кудато в томкат, также я пропишу в томкате реалм, который будет брать данный из acegi 
Код

 <Realm className="org.acegisecurity.adapters.catalina.CatalinaAcegiUserRealm"
             appContextLocation="conf/acegisecurity.xml"
             key="my_password" />

после чего в приложении я буду использовать AuthByAdapterProvider
Код

<bean id="authByAdapterProvider" class="org.acegisecurity.adapters.AuthByAdapterProvider">
  <property name="key"><value>my_password</value></property>
</bean>

и это решит мою проблему.

Покачто мне неудалось сделать это, както уж слишком поверхностно написано все в документации, может вы делали чтото подобное и можете расказать как это сделать.
--------------------
qip
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0640 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.