Home About Contact Archives
Validate the HTML of this page

Tomcat WebVoyáge

External Authentication Changes

External authentication works with the new Tomcat version of WebVoyáge. However because of changes to the underlying architecture, legacy external authentication adaptors cannot be used without some (mostly minor) modifications.

Authentication adaptors tend to be locally written programs so each one will be a little bit different. Identifying the specifics of the modifications needed will depend on testing in the new environment.

New redirect URL

Tomcat WebVoyáge doesn't use Pwebrecon.cgi, so obviously your external authentication script will have to redirect somewhere else after authentication.

The redirect URL syntax for classic WebVoyáge was/is:

http://voyager.at-ur-univ.edu/cgi-bin/Pwebrecon.cgi?{$query_string&authenticate=[Y|N]}
The redirect URL syntax for Tomcat WebVoyáge is:
http://voyager.at-ur-univ.edu/vwebv/externalLogin.do?{$query_string&authenticate=[Y|N]}

Apache setup

Also, be aware that your Tomcat Apache instance may not come configured to run CGI programs. So if your external authentication depends on a CGI script, you will want to look into Apache configuration for CGI.

My understanding is that with Voyager 7.0, Ex Libris will be including an SSL-enabled Apache in their third-party software distribution (/m1/shared/apache2).

No bypass (yet)

Version 7.0.1 of Voyager does not appear to allow for bypassing the default WebVoyáge login screen. This is slated for a fix in version 7.0.2(?).

No bypass fix

Courtesy of Jim Robinson, Tarrant County College

[This is] my JavaScript workaround based on the referrer. -- Jim

function doRedirect(URL)
{
    var refer = document.referrer;
    if(refer.indexOf("http://library.tccd.edu",0) != -1) {
       window.location=URL;
   }
}

This JavaScript is called from {skin}/xsl/contentLayout/cl_login.xsl with
these little bits of xml:

<xsl:template name="buildLoginPage">
   <xsl:for-each select="/page:page/page:pageBody">
       <div id="extPatAuth">
         <xsl:call-template name="buildRedirectLinkType">
            <xsl:with-param name="eleName" select="'page.logIn.actions.extAuth.link'"/>
         </xsl:call-template>
      </div>
    ...more...
   </xsl:for-each>
</xsl:template>

<xsl:template name="buildRedirectLinkType">
<xsl:param name="eleName"/>
   <xsl:for-each select="/page:page//page:element[@nameId=$eleName]">
        <xsl:if test="string-length(page:URL)">
            <script type="JavaScript">doRedirect('<xsl:value-of select="page:URL"/>');</script>
      </xsl:if>
   </xsl:for-each>
</xsl:template>