In short, your application has no idea if the user has already logged into CAS, and it shouldn't care either. If the user does not have a local session and there is no "ticket" parameter in the URL for your service, then your service redirects the user to CAS. If the user is already logged in (because the user when to Blu 30 minutes ago), then the user is immediately redirected to your service with a ticket=something appended to the URL (this process is pretty transparent to the user).
Think it through for NRLF button. Think it through for explicit log in.