@@ -55,7 +55,14 @@ def service(servlet_request, servlet_response)
55
55
headers [ name ] = servlet_request . get_headers ( name ) . to_a
56
56
end
57
57
58
- response_status , response_headers , response_body = rack_service ( request_uri , method , query_string , input , scheme , server_name , server_port , content_type , content_length , headers )
58
+ # Pass original attributes (e.g. to get access to killbill_tenant)
59
+ attributes = { }
60
+ servlet_request . attribute_names . each do |name |
61
+ value = servlet_request . get_attribute ( name )
62
+ attributes [ name ] = value || ''
63
+ end
64
+
65
+ response_status , response_headers , response_body = rack_service ( request_uri , method , query_string , input , scheme , server_name , server_port , content_type , content_length , headers , attributes )
59
66
60
67
# Set status
61
68
servlet_response . status = response_status
@@ -80,10 +87,10 @@ def service(servlet_request, servlet_response)
80
87
response_body . close if response_body . respond_to? :close
81
88
end
82
89
83
- def rack_service ( request_uri = '/' , method = 'GET' , query_string = '' , input = '' , scheme = 'http' , server_name = 'localhost' , server_port = 4567 , content_type = 'text/plain' , content_length = 0 , headers = { } )
90
+ def rack_service ( request_uri = '/' , method = 'GET' , query_string = '' , input = '' , scheme = 'http' , server_name = 'localhost' , server_port = 4567 , content_type = 'text/plain' , content_length = 0 , headers = { } , attributes = { } )
84
91
return 503 , { } , [ ] if @app . nil?
85
92
86
- rack_env = {
93
+ rack_env = attributes . merge ( {
87
94
'rack.version' => Rack ::VERSION ,
88
95
'rack.multithread' => true ,
89
96
'rack.multiprocess' => false ,
@@ -99,7 +106,7 @@ def rack_service(request_uri = '/', method = 'GET', query_string = '', input = '
99
106
'QUERY_STRING' => ( query_string || "" ) ,
100
107
'SERVER_NAME' => server_name ,
101
108
'SERVER_PORT' => server_port . to_s
102
- }
109
+ } )
103
110
104
111
rack_env [ 'CONTENT_TYPE' ] = content_type unless content_type . nil?
105
112
rack_env [ 'CONTENT_LENGTH' ] = content_length unless content_length . nil?
0 commit comments