Reputation: 7336
Is there a way to know if the request has been redirected or forwarded in the doGet
method of a Servlet?
In my application, when a user (whose session has timed out) clicks on a file download link, they're shown the login page, which is good. When they login, they are immediately sent the file they requested, without updating the page they see, which is bad. Basically, they get stuck on the login screen (a refresh is required).
What I want to do is interrupt this and simply redirect to the page with the link, when a file is requested as a result of a redirect.
Perhaps there are better ways to solve this?
Upvotes: 0
Views: 1729
Reputation: 597274
The redirect happens client-side. The browser is instructed by the previous request to send a new request, so to the server it does not make a difference. The Referer
header might contain some useful information, but it's not certain.
When redirecting you can append some parameter, like ?targetPage=dowloadpage
and then check if the parameter exists. You may have to put this in a hidden
field on the login page if you want it to be transferred through multiple pages.
Upvotes: 2
Reputation: 20371
If you're using container managed authentication, then I don't believe you can detect this since the server will only involve your resource once authentication has been completed successfully.
If you're managing authentication differently, please explain.
Upvotes: 0