Agree with the consensus. The URI should be descriptive of the function, so any requests to /login should be from users who are attempting to... login. The home page should be housed under a separate URL (/home for example)

After the user has authenticated, the login module should redirect to the /home URI. Any links to the home page from within the application should likewise refer to /home. You should have security in place to redirect any unauthenticated users to /login before requests for /home (or any other part of your application) are processed.

If you for some reason simply MUST keep referring people to /login when they are expecting to see the home page, put code in your login module to check for authenticated users and redirect them to /home before displaying the login page. If the user doesn't have a session, then go ahead and display the login form.


On 11-07-11 03:14 PM, Jerry Pereira wrote:
Hi Edward,
I have the following design:
A single PerlResponseHandler for all requests. This handler based on the path decides the action to be taken For example, if the user submits to www.example.com/login <http://www.example.com/login>, then the handler delegates the request to authentication module, which will then either display the home page (throug home page template) or login page again, based on the success/failure of authentication mechanism. Since i am rendering the page via template, i am able to generate the content of home page which i then send back to the client, but the URL on the browser remails the same (i.e. www.example.com/login <http://www.example.com/login>), which is not true. Any suggestions to handle this scenario will be great.
Thanks,
Jerry

On Mon, Jul 11, 2011 at 12:03 PM, Szekeres, Edward <edward.szeke...@perkinelmer.com <mailto:edward.szeke...@perkinelmer.com>> wrote:

    If you are looking to do this for “cosmetic reasons”, I do this be
simply using frame sets and doing redirects in the child frame. The URL displayed in the location bar will always be constant for
    the parent frame.  I don’t think there is any way to do this at
    the core level or it would be a spoofers windfall.   The browser
    will always have the actual location in the info panel.

    *From:*Jerry Pereira [mailto:online.je...@gmail.com
    <mailto:online.je...@gmail.com>]
    *Sent:* Monday, July 11, 2011 2:48 PM
    *To:* modperl@perl.apache.org <mailto:modperl@perl.apache.org>
    *Subject:* Changing browser URL based on condition

    Hi All,

    I would like to know if there is a way to change the URL displayed on
    browser without using Redirect option. The URL visible on client
    browser
    must be based on some condition that is evaluated in my mod_perl
    handler.

    For example -

    1. User types the URL - www.example.com <http://www.example.com/>,
    this will display the login page.
    2. Once the user enters the credentials and hits submit, the
    request is
    posted to www.example.com/login <http://www.example.com/login> action.
    3. If the credentials entered by the user is valid then i would
    like to show
    the home page..uri
    4. I am able to show the homw page, but the URL does not change to
    www.example.com/home <http://www.example.com/home>, instead it
    remains the same (i.e.
    www.example.com/login <http://www.example.com/login>). I am using
    Template toolkit to render my pages. I
    tried $req->url('/home'), but that does not change the browser URI.

    Any help will be appreciated.


    Thanks,
    Jerry




--
Your clothes may be the latest in style but you aint completely dressed until you wear a smile!
Keep smiling : )

Reply via email to