PeopleSoft Signout Page Modifications
Jim Marion has a good writeup on his blog with some ideas for customizing the PeopleSoft signout page, but it doesn't directly cover a common use case that I get asked about a lot, which is redirecting the user somewhere else at signout time.
A common reason for doing that is if you have a primary portal, such as the Oracle Portal, that provides access into your PeopleSoft applications. When the PeopleSoft session is done, you want the user to return to the main portal home page. Another reason is that you have some sort of single signon external to PeopleSoft, so you don't want the PeopleSoft users to see the PeopleSoft signon page.
How to do it
The process for doing this is pretty straightforward. The HTML that gets displayed at signout time is defined in the "Look and Feel" page of the Web Profile. One common source of confusion with the values defined on this page is that they are not URLs, but they are references to files in the web server. So you can't set a different URL here, you need to have the redirection logic in the appropriate file on the web server.
By default, the file that gets displayed at signout time is called signin.html. We'll want to make a copy of this since by default it gets used for the signon page as well as the signout page. You can give it a name like signout_redirect.html ; end users will never see this name though so just name it so that you remember it's purpose later. Whatever name that you call it, you'll want to reference that name for the logout page in your Web Profile.
For example, if you wanted to send your users to the Grey Sparling home page with a 0 second delay when they log out from PeopleSoft, you would add the following line immediately after the <HEAD> tag at the top of your new file.
<meta equiv="REFRESH" content="0;url=http://www.greysparling.com/">
The contents of these files are read into memory when the web server starts up, so you'll need to bounce the web server in order to get that to take effect.
Preventing Page Flash at Signout Time
What I've outlined above is the simplest way to solve the problem. One small usability issue exists though. In spite of the fact that we have specified 0 seconds for the delay, the browser will still render all of the HTML onscreen before sending the user to the new home page. The best course of action here is to remove everything between the <BODY> tags. That saves the browser from having to render the page so it can get to the redirect quicker. There is still a quick page flash, but it is quicker and it is just a blank screen so it doesn't look quite as bad.
The HTTP gurus in the crowd are probably wondering why this isn't solved with an HTTP level redirect, which would make the whole page flash issue go away. The answer is that you don't have easy access to do this. You can use some of the options that Jim mentions in his blog (we do something similar in our ERP Firewall for PeopleSoft product) if it is really a big deal to you though.
Upgrade Issues
Each time you install PIA (whether from an upgrade or just adding a new web server) you'll need to copy this newly created file from an existing web server (since you no longer care about what new features/layout changes that Oracle might add to these pages in new releases).
If you install a lot of web server instances, you can put this file in the setup program so that you always end up with your custom one instead of the default. Just search for the file PTSitePsftdocs.jar in your PSHOME\setup directory. That has the source files that get put into the web server.
Session Expiration
Thankfully there is a separate page that gets displayed when a session expires vs someone signing out. That file is called expire.html. You may want to setup some separate handling for this one so that the user does see a message about their session having timed out instead of just being redirected to a different page.
Where are the files?
The actual files to edit in the web server are stored in WEB-INF\psftdocs\<sitename>. I'd list the whole path, but it's so incredibly deeply nested that you'd need a special wide monitor for the browser to be able to scroll that far :-) That's a subject for another blog post some day though.
Can I change signout behaviour based on the user?
By the time the signout page is displayed, the user's session has already been wiped out. You no longer even know who the user is/was. There are no PeopleCode events that run at signout time by default (although it can be done).
Read Jim's blog post or talk to us about ideas for getting around this.
Any other tips?
If you want to change the label/text of the Signout link, it is defined in the Message Catalog. The message set number is 95, and the message id is 408. Don't forget to update any other languages that you may be using with your PeopleSoft applications.


Subscribe Now!





5Comments:
Hi Chris,
I think that the very first objective of setting a timeout is for management resource raison (and security of course). Releasing unused session and save the web server memory. From this, there is a way to release the PIA resource without rejecting the user from the system. The "HTTP Session Inactivity" parameter under the security feature of the Web Profile ensures it. Isn't it? The user would then seemlessly be on the system while his iddle session is freed. The user regain access to the application by clicking a link. I of course don't consider the possible security issues, but just the situation when user accesses PeopleSoft on his personal desktop.
Yes, when the sessions timeout, then they will free up server resources.
Unfortunately, there is no (PeopleSoft supported) way to save off the user's session to long term storage (in the database for example) and allow them to restart the session later.
If that were possible, then you could be more aggressive at recovering server resources with shorter timeouts.
As it stands right now, you can create a custom expires page so that when someone's session expired that they can at least get back to the same transaction page that they were on, but if they were in the middle of typing something up and then left (go to lunch or a meeting), then they would lose what they had typed up.
During some PeopleTools release scoping meetings several years ago I had tried to push to get the PeopleTools component processor to have a "save as draft" mode which would have been handy for this sort of thing (I was pushing for that in the context of making workflow development easier, but it would have been useful for this as well). But, it didn't happen though.
Moufid, another option is to just keep the session alive and not log the user out until the user closes his/her browser. See page 45 of PeopleTools Advanced Tips and Techniques from Collaborate '08. The approach discussed in this presentation has a timeout setting of 10 minutes and a warning of 5 minutes. It uses Ajax to reset the timeout based on the timeout warning interval.
Hi Chris,
Have you come across a requirement wherein we do not want the user to be able to log out if there is a pending worklist entry. Any idea how to implement this?
Thanks,
Vikas
@Vikas, what do you propose doing if the user's session expires? What if the worklist entry cannot be worked yet because there is other required documentation that hasn't reached the user yet (receipts for expense approvals, etc)? I would like to know of a signout hook as well, but requiring users to work all worklist items prior to logging out seems harsh at best and a violation of security policies (session timeout) at worst.
Post a Comment
<< Home