To avoid the extra roundtrip redirect involves, you could also just dispath the request to your login action.
This code is taken from an heavily customized app so it might not work out of the box for you but you'll get the idea (it also adds the requested url as a dispatcher param so you can output it in a hidden field of your login form and redirect the user on successful login):
public function beforeDispatchLoop(Event $event, Dispatcher $dispatcher)
{
if (! $this->auth->hasIdentity() && ! $this->auth->authenticateViaRememberMe()) {
$dispatcher->setModuleName('login');
$dispatcher->setControllerName('Login');
$dispatcher->setActionName('login');
$dispatcher->setNamespaceName('Login\Controller');
$dispatcher->setParam('goto', ltrim($_SERVER["REQUEST_URI"], '/'));
$this->view->setViewsDir($this->registry->directories->modules . 'Login/View');
return $dispatcher->forward(array());
}
}