为什么我没有从Spring Security获得日志?

为什么我没有从Spring Security获得日志?,spring,spring-security,logback,Spring,Spring Security,Logback,我正在尝试测试放置在Spring控制器中方法上的@PreAuthorize标记。我没有得到任何关于Spring是否允许调用的决定的日志信息。目前我被允许进入一个方法,我想调试为什么我被允许,即使我没有这个角色 我使用的是SpringFramework 3.2.3、SpringSecurity 3.1.4、Logback 1.0.13、LogbackSpring0.1.1 这是我的日志文件: ... <appender name="MAIN" class="ch.qos.logback.co

我正在尝试测试放置在Spring控制器中方法上的@PreAuthorize标记。我没有得到任何关于Spring是否允许调用的决定的日志信息。目前我被允许进入一个方法,我想调试为什么我被允许,即使我没有这个角色

我使用的是SpringFramework 3.2.3、SpringSecurity 3.1.4、Logback 1.0.13、LogbackSpring0.1.1

这是我的日志文件:

...
<appender name="MAIN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>/logs/main_log.txt</file>
  <append>true</append>
  <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
     <level>TRACE</level>
  </filter>
  <encoder>
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} | %p | %c %M | %m%n</pattern>
  </encoder>
  <rollingPolicy>
     <fileNamePattern>/logs/main_log.txt.%d</fileNamePattern>
  </rollingPolicy>
</appender>

<logger name="org.springframework" level="TRACE"/>

<logger name="my.package" level="TRACE"/>

<root level="WARN">
   <appender-ref="MAIN"/>
</root>
。。。
/日志/main_log.txt
真的
痕迹
%d{yyyy-MM-dd HH:MM:ss.SSS}|%p |%c%M |%M%n
/logs/main_log.txt。%d
我已在web.xml文件中正确设置了侦听器。我知道这一点,因为我从包my.package获取日志消息,以及从第三方软件获取警告消息


关于如何查看@PreAuthorize注释所做的决定,我有什么想法吗?

为了使用Pre-posauthorize注释,有必要在spring配置中启用它们,因为它们在默认情况下是关闭的

这是如何在使用
全局方法安全性
XML元素时启用这些注释(有关更多详细信息,请参阅):


您的配置看起来不错,但Spring不幸使用了commons日志记录。遵循有关如何使用SLF4J(+log4j或logback)的官方文档

只是不要添加commons日志jar,或者如果您使用Maven,请按照文档中所示排除它。然后,您需要在commons日志和SLF4J(jcl-over-SLF4J.jar)之间搭建一座桥梁

从我的(工作)配置中删除:

<logger name="org.springframework" level="DEBUG" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
</logger>

pom.xml:

    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.5</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.0.13</version>
        <scope>runtime</scope>
    </dependency>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring-version}</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

org.slf4j
slf4j api
1.7.5
org.slf4j
jcl-over-slf4j
1.7.5
运行时
回写
回归经典
1.0.13
运行时
回写
回溯堆芯
1.0.13
运行时
org.springframework
弹簧芯
${spring版本}
公用记录
公用记录
    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.5</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.0.13</version>
        <scope>runtime</scope>
    </dependency>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring-version}</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>