EZProxy Navigator Configuration FAQ

From WCN

Jump to: navigation, search

Contents


[edit] I created a web service to return a HTML III API Response back to EZproxy and EZproxy is ignoring some of the values

The III interface starts each value at the beginning of a line and includes a newline after each br tag.  The tag 
is also expected to be in square brackets.  EZproxy expects all of these behaviorsl, so the server generating this
data will need to be changed so it is generating:
[p83]=07-02-09
[pn]=Test, WorldCat
[p43]=09-29-2009
[p53]=none
p47=0

[edit] Why are the backslashes in your RE's doubled up? I understand the ones preceding the dots are so we match a literal dot character, but what about the backslash that precedes the other backslash?

The regular expression is just a string, and within EZproxy strings, backslashes are an escape character, 
currently just to support quotation marks and apostrophes, but as a result, to get a single backslash, you have 
to use two of them.

[edit] I was looking at my listing in our campus LDAP using a browser and noticed that there were two "email" attributes, with different values. If my NRE/user.txt config has "Set session:emailAddress = auth:mail", how can I be certain that it will use the correct (the second one above) email attribute value? Does ezproxy have some built-in logic that selects the correct one?

If you don't specify, EZproxy will take the first value returned by LDAP, which is also available as 
auth:mail[0].  You can use auth:mail[1] to get the next value, auth:mail[2] for the next, and so on.
The AnyRE test provides a method to search through attribute values and return portions (or all) of the first attribute that matched, so if you wanted to find the first mail attribute that ended in @gwmail.cwu.edu, you could use:
If AnyRE(auth:mail, "/^.*@gwmail\\.cwu\\.edu/i") { set session:emailAddress = re:0 }
Please note that this regular expression was set up to insure it would match the entire string, as re:0 is the string that matched, so if you had use:
If AnyRE(auth:mail, "/@gwmail\\.cwu\\.edu/i") { set session:emailAddress = re:0
}
then re:0 would just have @gwmail.cwu.edu (the portion that matched).

[edit] I am trying to setup EZProxy to authenticate via ESIP to Voyager for the World Cat Local and running into some problems. I have what I believe to be the valid selfcheck username and password, but am stuck on the LoginLocation. I have tried a number of possibilities, but have not found any that worked for the login location or location code. Is there anyway to bypass the requirement for a LoginLocation in EZProxy or does anybody know where in Voyager the self check location code is located?

Some Voyager installations need an extra option for SIP to work.
If you are not doing so already, I definitely recommend that you perform your testing from the administration page option for "Test user.txt configuration". For information on how to reach the administration page, see http://www.oclc.org/support/documentation/ezproxy/url/admin/ and from there click "Test user.txt configuration".
On the test page, check "force debug" which will make EZproxy display information on everything it encounters during testing.
In the big box at the bottom, you enter test user.txt entry you are developing, such as:
::SIP
SupressNewline
Host sip.yourlib.org
SIP2
/SIP
(I double-spaced those options to try to keep email clients from running them together). The "SuppressNewline" option is the extra piece that some Voyager's sites need, so this would be a good thing to try.
At the top of this page, fill in the "User" field with whatever your SIP interface expects (typically barcode) and "Pass" (pin, etc.), and then click "Test". You can continue to manipulate things in the configuration until you get the expected results.

[edit] I don't know if any other libraries are using SIP as their EZProxy Authentication method, but I ran into a potential issue parsing names. SIP returns patron names as a single string that contains their full name. We use the ParseName method to determine first, middle, and last names. It looks like this: Set ParseName(auth:AE, "FMS", "login") I ran into a problem with users that have a last name that contains a space, but do not have a middle initial. The first word of their last name was being parsed as their middle name. We authenticate with barcode and last name (the same way Voyager does by default), so we ran into some authentication problems.

I've since resolved them and I address these issues here if anyone is interested:
http://bricestacey.com/2009/07/properly-parsing-last-name-from-ezproxy-authentication-via-sip/

This may also lead to potential problems wherever last names appear in WCL/NRE. Is this a serious concern? Or are
all the Von Schneiders, Da Silvas, and St. Peters already used to problems such as this? The more serious concern
are the Juniors and the Thirds. Their last name will appear simply as Jr and III.
In our database, approximately 250 active patrons are affected.
Free-form name parsing is really tricky and often depends on local conventions for name entry.  The ParseName
routine makes best efforts, but sometimes it needs a little help based on local convention.
If you've got suffixes on names, you can tell EZproxy with:
Set ParseName(auth:AE, "FMSX", "login")
The "X" indicates a suffix may appear at the end, and if so, it should be separated out. The suffixes understood by EZproxy are Junior, Jr, Jr., Senior, Sr, Sr., Esquire, Esq., II, III, IV, 2, 2nd, 3, 3rd, 4, and 4th.
If you have a series of two-part (or even multi-part) names that you know you enter frequently, you can use this logic like this to remove the suffix (if any), join the special last names together with _, split them up, take the _ back out, and pass on the suffix using:
::Common Set ParseName(auth:AE, "SX", "tmp") Set tmp:surname = REReplace("/ (von|da|st\\.) ([^ ]+)$/i", " $1_$2", tmp:surname) Set ParseName(tmp:surname, "FMS", "login") Set login:surname = REReplace("/_/", " ", login:surname) If tmp:NameSuffix ne ""; Set login:nameSuffix = tmp:nameSuffix /Common