代码之家  ›  专栏  ›  技术社区  ›  Mark Baijens

在tomcat中显示Spring安全性的SQL错误

  •  4
  • Mark Baijens  · 技术社区  · 14 年前

    我得到了一个使用spring安全框架的web应用程序。我设置了一个数据库来存储用户及其角色,但是tomcat给出了以下错误。

    17-sep-2010 11:56:14 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
    17-sep-2010 11:56:14 org.springframework.jdbc.support.SQLErrorCodesFactory <init>
    INFO: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
    

    Im使用tomcat 7.0.2和MySQL5.1

    添加了log4j.properties

    log4j.rootLogger=warn, stdout
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    
    log4j.logger.org.springframework.security=DEBUG
    # log4j.logger.org.springframework.target=System.out
    

    以及网站.xml

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
    

    还没有成功

    2 回复  |  直到 14 年前
        1
  •  2
  •   matt b    14 年前

    此消息与应用程序运行时发生的错误无关:

    INFO: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
    

    Spring framework's JDBC support 记录这样一个事实,即它已经加载了对转换每个SQL数据库本机错误代码的支持,这些SQL数据库将转换为Spring的DataAccessException层次结构。此处的日志消息中未发生错误。

    如果您希望能够记录有关Spring正在做什么等的更多信息,框架 uses commons-logging

        2
  •  0
  •   Eragonz91    10 年前

    更改为select*from user。。而且很有效

        3
  •  0
  •   chiranth    5 年前

    我得到上述错误的原因是由于我错过了这个事实 1已启用 第一个sql查询中的属性 u、 用户名 属性。

     <authentication-manager>
            <authentication-provider>
                <password-encoder hash="md5"/>
                <jdbc-user-service 
                    data-source-ref="dataSource"
                    users-by-username-query="select username, password, 1 as enabled from users where username = ?"
                    authorities-by-username-query="select u.username, ur.user_role from USERS u, USERS_ROLE ur where u.sl_no = ur.user_id and u.username = ?"/>
              </authentication-provider>
            </authentication-manager>
    
            <b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                <b:property name="driverClassName" value="org.hsqldb.jdbcDriver" />
                <b:property name="url" value="jdbc:hsqldb:hsql://localhost/" />
                <b:property name="username" value="SA" />
                <b:property name="password" value="" />
            </b:bean>