Class: Rex::Proto::Kerberos::KerberosLoggerSubscriber
- Inherits:
-
KerberosSubscriber
- Object
- KerberosSubscriber
- Rex::Proto::Kerberos::KerberosLoggerSubscriber
- Defined in:
- lib/rex/proto/kerberos/kerberos_logger_subscriber.rb
Overview
Logs Kerberos requests/responses
Constant Summary collapse
- TRACE_MODE_OFF =
'off'- TRACE_MODE_METADATA =
'metadata'- TRACE_MODE_TICKET =
'ticket'- TRACE_MODE_FULL =
'full'- TRACE_MODES =
[ TRACE_MODE_OFF, TRACE_MODE_METADATA, TRACE_MODE_TICKET, TRACE_MODE_FULL ].freeze
Instance Method Summary collapse
-
#initialize(logger:) ⇒ KerberosLoggerSubscriber
constructor
A new instance of KerberosLoggerSubscriber.
- #on_credential(credential, source: nil) ⇒ Object
- #on_request(request) ⇒ Object
- #on_response(response) ⇒ Object
Constructor Details
#initialize(logger:) ⇒ KerberosLoggerSubscriber
Returns a new instance of KerberosLoggerSubscriber.
27 28 29 30 31 32 |
# File 'lib/rex/proto/kerberos/kerberos_logger_subscriber.rb', line 27 def initialize(logger:) super() raise 'Incompatible logger' unless logger.respond_to?(:print_line) && logger.respond_to?(:datastore) @logger = logger end |
Instance Method Details
#on_credential(credential, source: nil) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/rex/proto/kerberos/kerberos_logger_subscriber.rb', line 58 def on_credential(credential, source: nil) return unless credential_trace_enabled? return if credential.nil? print_credential_header(source) @logger.print_line(format_credential_for_trace_mode(credential)) end |
#on_request(request) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/rex/proto/kerberos/kerberos_logger_subscriber.rb', line 35 def on_request(request) return unless request_color, _response_color = trace_colors print_header('Request', request) @logger.print_line("%clr#{request_color}#{(request)}%clr") end |
#on_response(response) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/rex/proto/kerberos/kerberos_logger_subscriber.rb', line 44 def on_response(response) return unless _request_color, response_color = trace_colors print_header('Response', response) if response.nil? @logger.print_line('No response received') return end @logger.print_line("%clr#{response_color}#{(response)}%clr") end |