<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -26,6 +26,10 @@ module Sinatra
     rescue EOFError, Errno::ESPIPE
       self.GET
     end
+
+    def secure?
+      (@env['HTTP_X_FORWARDED_PROTO'] || @env['rack.url_scheme']) == 'https'
+    end
   end
 
   # The response object. See Rack::Response and Rack::ResponseHelpers for</diff>
      <filename>lib/sinatra/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,4 +15,19 @@ class RequestTest &lt; Test::Unit::TestCase
     )
     assert_equal 'bar', request.params['foo']
   end
+
+  it 'is secure when the url scheme is https' do
+    request = Sinatra::Request.new('rack.url_scheme' =&gt; 'https')
+    assert request.secure?
+  end
+
+  it 'is not secure when the url scheme is http' do
+    request = Sinatra::Request.new('rack.url_scheme' =&gt; 'http')
+    assert !request.secure?
+  end
+
+  it 'respects X-Forwarded-Proto header for proxied SSL' do
+    request = Sinatra::Request.new('HTTP_X_FORWARDED_PROTO' =&gt; 'https')
+    assert request.secure?
+  end
 end</diff>
      <filename>test/request_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8ab1690064495723055c714f35ca9f41098c7ff2</id>
    </parent>
  </parents>
  <author>
    <name>Adam Wiggins</name>
    <email>adam@heroku.com</email>
  </author>
  <url>http://github.com/bmizerany/sinatra/commit/0f030b6d1ff1d3b6b73a9bd4b995516627c8cb41</url>
  <id>0f030b6d1ff1d3b6b73a9bd4b995516627c8cb41</id>
  <committed-date>2009-08-18T04:48:46-07:00</committed-date>
  <authored-date>2009-08-14T14:51:58-07:00</authored-date>
  <message>request.secure? to check for ssl encrypted connection

Signed-off-by: Simon Rozet &lt;simon@rozet.name&gt;</message>
  <tree>e384d23fbd98ef7505d8e16311eac4e90f940f3f</tree>
  <committer>
    <name>Simon Rozet</name>
    <email>simon@rozet.name</email>
  </committer>
</commit>
