【问题标题】:How Tomcat is Picking remote user that was authenticatedTomcat 如何选择经过身份验证的远程用户
【发布时间】:2018-05-12 03:50:08
【问题描述】:

如果我通过 logback 启用 tomcat 访问日志,如下所示

logback.access:
  enabled: true

compile group: 'net.rakugakibox.spring.boot', name: 'logback-access-spring-boot-starter', version: '2.5.0'

如下配置

<configuration>
    <property name="LOG_HOME" value="${LOG_FILE_LOCATION:-/var/log/RSP}/${HOST_NAME}}"/>
    <appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/reservation_access.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/reservation_access-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>5MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%h %l %u [%{TraceId}i] %t "%r" %s %b %D</pattern>
        </encoder>
    </appender>
    <appender-ref ref="ACCESS" />

</configuration>

它工作正常,但我无法理解它是如何选择 %u 的,在 documentation 它被称为 Remote user that was authenticated 所以 tomcat 如何知道谁是经过身份验证的用户,或者任何人都可以提供这些的源代码会生成访问日志。(我已经看过基础文章what is Access Log Valve

如果我使用下面的 Spring Boot 属性启用访问日志

server.tomcat.accesslog.pattern: '%h %l %u [%{TraceId}i] %t "%r" %s %b %D'
server.tomcat.accesslog.prefix: reservation_access
server.tomcat.accesslog.enabled: true
server.tomcat.accesslog.directory: /var/log/RSP/
server.tomcat.accesslog.suffix: .log

那么 %u 不工作,

  • 那么这两个版本有什么区别?
  • 什么时候会为每个请求打印访问日志,即在执行所有过滤器之后或一旦请求到达服务器就会打印?

    谢谢

【问题讨论】:

    标签: tomcat spring-boot logback


    【解决方案1】:

    logback-access-spring-boot-starterHttpServletRequest#getRemoteUser() 中读取%u 的值。

    在 Spring 世界中,HttpServletRequest.remoteUser() 通常由 Spring Security 填充。

    【讨论】:

    • 那么在这种情况下,如果我在 %u 不来时启用使用此属性server.tomcat.accesslog.enabled: true
    • 可能HttpServletRequest.remoteUser 没有填充。
    猜你喜欢
    • 2017-09-11
    • 2020-11-15
    • 2016-01-17
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多