Module: Aikido::Zen::Sinks::Net::HTTP::Helpers
- Defined in:
- lib/aikido/zen/sinks/net_http.rb
Class Method Summary collapse
-
.build_outbound(http) ⇒ Aikido::Zen::OutboundConnection
Maps a Net::HTTP connection to an Aikido OutboundConnection, which our tooling expects.
- .scan(request, connection, operation) ⇒ Object
- .wrap_request(req, session) ⇒ Object
- .wrap_response(response) ⇒ Object
Class Method Details
.build_outbound(http) ⇒ Aikido::Zen::OutboundConnection
Maps a Net::HTTP connection to an Aikido OutboundConnection, which our tooling expects.
19 20 21 22 23 24 |
# File 'lib/aikido/zen/sinks/net_http.rb', line 19 def self.build_outbound(http) OutboundConnection.new( host: http.address, port: http.port ) end |
.scan(request, connection, operation) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/aikido/zen/sinks/net_http.rb', line 59 def self.scan(request, connection, operation) SINK.scan( request: request, connection: connection, operation: operation ) end |
.wrap_request(req, session) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/aikido/zen/sinks/net_http.rb', line 26 def self.wrap_request(req, session) uri = req.uri if req.uri.is_a?(URI) if uri.nil? request_uri = URI.parse(req.path) uri = URI.parse( URI::Generic.build( scheme: session.use_ssl? ? "https" : "http", host: session.address, port: session.port, path: request_uri.path, query: request_uri.query ).to_s ) end Scanners::SSRFScanner::Request.new( verb: req.method, uri: uri, headers: req.to_hash, header_normalizer: ->(val) { Array(val).join(", ") } ) end |
.wrap_response(response) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/aikido/zen/sinks/net_http.rb', line 51 def self.wrap_response(response) Scanners::SSRFScanner::Response.new( status: response.code.to_i, headers: response.to_hash, header_normalizer: ->(val) { Array(val).join(", ") } ) end |