jdbc spring security,apache commons dbcp

Ago*_*noX 4 java spring-security java-ee apache-commons-dbcp

在Spring Security中,我定义了一个jdbc auth管理器:

<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>
Run Code Online (Sandbox Code Playgroud)

此时我发现我需要Jakarta Commons DBCP.我添加了commons-dbcp-1.4,我得到以下异常:

...java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedObjectPoolFactory
Run Code Online (Sandbox Code Playgroud)

实际上,此路径不包含在公共dbcp 1.4中.
我又错过了什么?

编辑
确定,将依赖项添加到公共池,它的工作原理是因为使用正确的凭据我不再获得"错误的凭据"页面.但我得到一个HTTP状态403 - 访问被拒绝.
好像我的用户已通过身份验证,但未经授权.
任何的想法...?:-)

我的http元素是:

<security:http auto-config="true" >
    <security:intercept-url pattern="/**" access="ROLE_USER"/>
</security:http>
Run Code Online (Sandbox Code Playgroud)

我有一个"测试"用户绑定到"权限"表中的"USER"角色.

谢谢

El *_*apo 9

Commons DBCP依赖于Commons Pools库,因此,您实际上需要下载commons-pool jar文件,并将它们包含在您的路径中.

Commons Pool下载

您可能还需要下载commons-collections包.