JDBC Весенняя безопасность, Apache Commons DBBC - PullRequest
4 голосов
/ 28 июня 2011

В Spring Security я определил менеджер проверки подлинности jdbc:

<security:authentication-manager>
    <security:authentication-provider>
        <security:jdbc-user-service data-source-ref="securityDataSource"/>
    </security:authentication-provider>
</security:authentication-manager>

<bean id="securityDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.postgresql.Driver"/>
    <property name="url" value="jdbc:postgresql://127.0.0.1:5432/mydb"/>
    ... user and password props ...
</bean>

В этот момент я обнаружил, что мне нужен DBCP Jakarta Commons. Я добавил commons-dbcp-1.4, я получаю следующее исключение:

...java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory

Этот путь в действительности не включен в dbcp 1.4.
Что мне снова не хватает?

отредактировано
Хорошо, добавил зависимость в общий пул, он работает, потому что с правильными учетными данными я больше не получаю страницу «плохие учетные данные» Но я получаю HTTP-статус 403 - Доступ запрещен.
Похоже, мой пользователь аутентифицирован, но не авторизован.
Любая идея...? :-)

Мой http-элемент:

<security:http auto-config="true" >
    <security:intercept-url pattern="/**" access="ROLE_USER"/>
</security:http>

и у меня есть «тестовый» пользователь, который связан с ролью «ПОЛЬЗОВАТЕЛЬ» в таблице «полномочия».

спасибо

Ответы [ 4 ]

9 голосов
/ 28 июня 2011

Commons DBCP опирается на библиотеки Commons Pools, поэтому вам действительно нужно скачать файлы jar commons-pool и включить их в свой путь.

Загрузки Commons Pool

Вам также может понадобиться загрузить пакет commons-collection.

2 голосов
/ 28 июня 2011

Попробуйте изменить права доступа вашего тестового пользователя на ROLE_USER.

2 голосов
/ 28 июня 2011

Файл jar commons-dbcp-1.4 не содержит класс org.apache.commons.pool.keyedobjectpoolfactory
Вам необходимо добавить еще один jar в путь к классам вашего проекта - commons-pool-1.4.
Вы можете скачать commons-pool-1.4 здесь http://commons.apache.org/pool/download_pool.cgi

1 голос
/ 28 июня 2011

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

...