def service(*a)
app = Kernel.const_get self.class.name.gsub(/^(\w+)::.+$/, '\1')
unless app.respond_to? :authenticate
raise "Basic authentication is enabled but the 'authenticate' method has not been defined."
end
@credentials = read_credentials || {}
if app.authenticate(@credentials)
s = super(*a)
else
@status = 401
@headers['Content-type'] = @headers['Content-type'] || 'text/plain'
@headers['Status'] = 'Unauthorized'
@headers['WWW-Authenticate'] = "Basic realm=\"#{app}\""
@body = 'Unauthorized'
s = self
end
s
end