Fix improperly configured host in generated urls #9838

Closed
wants to merge 1 commit into
from
Commits on Mar 20, 2013
  1. @schneems

    Fix improperly configured host in generated urls

    schneems committed Mar 20, 2013
    If the host in `default_url_options` is accidentally set with a protocol such as 
    
    ```
    host: "http://example.com"
    ``` 
    
    then the generated url will have the protocol twice `http://http://example.com` which is not what the user intended. Likely they wanted to define a host `host: "example.com"` and a `protocol: "http://"` but did not know the convention.
    
    This may not the most common problem, but when it happens it can go undetected for a while. I accidentally added `http://` out of habit recently only to find all the links in my emails were broken after deploying a demo site to production. Rather than allow this accident go undetected, we can fix the problem in line by properly setting the protocol and host.
    
    
    I was able to find this related question on stack overflow: http://stackoverflow.com/questions/5878329/rails-3-devise-how-do-i-make-the-email-confirmation-links-use-secure-https-n where the answer was highly upvoted.
    
    This is based off of work in #7415 cc/ @pixeltrix
    
    back port of #9794
    
    ATP Action Mailer and Action Pack