database - 带有数据库 : java. lang.ClassNotFoundException : org. springframework.security.core.userdetails.jdbc.JdbcDaoImpl 的 Spring Security 应用程序

标签 database spring postgresql security

我正在使用 postgres 数据库开发一个 spring 安全应用程序,但我无法解决这个错误:

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)   [rt.jar:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  [rt.jar:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.lang.NoClassDefFoundError: org/springframework/security/core/userdetails/jdbc/JdbcDaoImpl
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_25]
  at java.lang.ClassLoader.defineClass(ClassLoader.java:792) [rt.jar:1.7.0_25]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_25]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
... 110 more
Caused by: java.lang.ClassNotFoundException: org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl from [Module "deployment.SpringSecurityTest8.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120   )
... 115 more

这是 spring-security-configuration.xml

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">




 <http auto-config="true" use-expressions="true">
    <intercept-url pattern="/admin**" access="ROLE_ADMIN" />
    <intercept-url pattern="/emp**" access="ROLE_EMP" />
 </http>


<beans:bean id='dataSource' 
  class='org.springframework.jdbc.datasource.DriverManagerDataSource'>
<beans:property name='driverClassName' value='org.postgresql.Driver' />
<beans:property name='url' value='jdbc:postgresql://localhost:5432/postgres' />
<beans:property name='username' value='postgres' />
<beans:property name='password' value='po' />

<authentication-manager>
  <authentication-provider>
    <jdbc-user-service
data-source-ref="dataSource"
users-by-username-query='SELECT username, "password", true FROM "DataB".users where username=?'
authorities-by-username-query='select u1.username, u2.authority from "DataB"."users" u1, 
"DataB"."authorities" u2 where u1.username = u2.username and u1.username     =?' />

  </authentication-provider>
</authentication-manager>

有人可以识别问题吗?我花了很多时间来解决这个问题,但仍然能找出问题所在。

最佳答案

确保你的类路径中有 spring-security-core-$version

如果你使用maven,添加这个依赖

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>${spring.security.version}</version>
</dependency>

关于database - 带有数据库 : java. lang.ClassNotFoundException : org. springframework.security.core.userdetails.jdbc.JdbcDaoImpl 的 Spring Security 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28990686/

相关文章:

php - 如果表单为空则不提交表单

java - Spring Boot 电子邮件发送抛出 SocketTimeoutException : Read timed out

spring - 如何使用 Mockito 在 Spring 中只模拟一个 bean 的方法?

java - jOOQ 在 PostgreSQL 中选择不同的数组聚合

postgresql - 如何使用 beego/orm 解决 'no LastInsertId available'

php - 无法使用 PHP 在 MySQL 数据库中插入多个图像

python - SQL炼金术: "create schema if not exists"

java - 如何在我的类中获取 spring bean 类中的属性值?

sql - 如何修复 GROUP BY 中不允许的聚合函数?

python - SQLAlchemy 声明一对多未定义错误