I actually have a similiar requirement, but only a few pages where it is a requirement for the user to be logged in.
When the action is called that directs to a sensitive spot, it checks for a login as yours does. If that check fails, it sets a session value describing a
struts target - which forwards back to this action after the user has logged in.
After the login action verifies the user, it checks to see if this session target value is set. If so, it then forwards the user to that target value, as opposed to the standard page after a login.
HTH.
Paul