Chúng tôi có một ứng dụng lò xo khởi động độc lập, nơi mà chúng tôi muốn thiết lập quyền truy cập đăng nhập mô hình như vậy màCách đặt yêu cầu thuộc tínhThuộc tínhĐược bật cho AccessLogValve trong Apache Tomcat, trong ứng dụng khởi động vào mùa xuân?
- X-Forwarded-For tiêu đề tồn tại trong yêu cầu: Nó nên được bao gồm trong các bản ghi như trường đầu tiên
- X chuyển tiếp-cho- tiêu đề không tồn tại trong yêu cầu: cần thay thế bằng địa chỉ iP từ xa
Khi chúng ta chạy ứng dụng của chúng tôi với các thiết lập sau đây, chúng tôi chỉ nhận được ip từ xa địa chỉ
server.tomcat.accesslog.directory=<path_to_log_director>
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.suffix=.log
ví dụ:
192.168.25.265 - - - [12/Sep/2016:10:20:56 +0200] "GET /myapp HTTP/1.1" 200 125922
Chúng tôi cũng đã cố gắng để thiết lập server.tomcat.accesslog.pattern tài sản để
%h %{X-Forwarded-For}i %l %u %t "%r" %s %b
sau đó chúng ta có được cả hai địa chỉ IP từ xa và X-Forwarded-For giá trị tiêu đề.
ví dụ:
192.168.25.265 192.168.21.65 - - - [12/Sep/2016:10:20:56 +0200] "GET /myapp HTTP/1.1" 200 125922
Tuy nhiên, dựa vào liên kết https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html, tomcat hỗ trợ yêu cầu này bao gồm địa chỉ IP từ xa khi x-chuyển-cho không tồn tại. Điều này có thể đạt được bằng cách thêm thuộc tính 'requestAttributesEnabled'
Chúng tôi đã cố gắng thêm thuộc tính server.tomcat.accesslog.requestAttributesEnabled nhưng không có hiệu lực nào diễn ra.
Nó không xuất hiện để được thực hiện kể từ khi nó không được trình bày ở đây: http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
Chúng tôi thực hiện một cách giải quyết bằng một thực hiện EmbeddedServletContainerCustomizer, như đã đề cập trong How do I configure the location and name of tomcat access log in spring-boot?, nơi chúng tôi đã thêm:
accessLogValve.setRequestAttributesEnabled(true);
và nó hoạt động như mong đợi.
Tuy nhiên chúng tôi muốn để có thể thiết lập các requestAttributesEnabled như một thuộc tính cấu hình thông qua lò xo khởi động, như:
server.tomcat.accesslog.requestAttributesEnabled=true
chứ không có nhu cầu sử dụng tùy biến này trong tất cả các dịch vụ của chúng tôi.
Có giải pháp nào tốt hơn cho vấn đề này không, có một thuộc tính nào khác được sử dụng hay đó là tính năng có thể được mong đợi sẽ được phân phối trong tương lai gần?
Bạn đang sử dụng khung ghi nhật ký nào? –