(Quick post)
Searched the fine web and didn't find a quick answer to how to redirect an http request to https in Mojolicious. I wanted to insure that logins were always secure. Finally cobbled together a solution and thought I should share and maybe get some improvements.
- Run 2 webservers: one to handle http and the other to handle https, which for me is two incantations of hypnotoad
- Add a route in your http App
$r->get('/login')->to('MyApp#https_redirect');
- Add a sub to the http Controller
sub https_redirect { my $self = shift; my $secure = $self->req->url->to_abs->scheme('https')->port(443); $self->redirect_to($secure); }
- Profit!
All the sub does is redirect the request to the new protocol at the same url. I've seen a method in the docs to a is_secure method which could be useful somewhere. Also, I tried using $r->any('/login'), but it doesn't work for me and I'm moving on.
Yes, I probably could've gotten a better answer inside 2 minutes on IRC (people are so very helpful), but it never occurs to me until afterwards.
Sometimes I can think of 6 impossible LDAP attributes before breakfast.
http://act.yapc.eu/lpw2016/ It's that time of year again!
Back to
Cool Uses for Perl