<%@ page language="java" import="java.security.*, java.util.Date, java.net.URLEncoder" %> <%! public class EZproxyURL { private String myEzproxyUrl; private String myEzproxyKey; private String myStartingPointUrl; private String getKeyedDigest(String buffer) { try { MessageDigest d = MessageDigest.getInstance("MD5"); byte [] b = d.digest(buffer.getBytes("UTF8")); StringBuffer sb = new StringBuffer(); for (int i = 0; i < b.length; i++) { sb.append(Integer.toHexString((b[i] & 0xf0) >> 4) + Integer.toHexString(b[i] & 0x0f)); } return sb.toString(); } catch (NoSuchAlgorithmException e) { } catch (java.io.UnsupportedEncodingException e) { } return null; } public EZproxyURL(String ezproxyUrl, String ezproxyKey, String user, String groups) { myEzproxyUrl = ezproxyUrl; myEzproxyKey = ezproxyKey; Date now = new Date(); String packet = "$u" + ((int) (now.getTime() / 1000)); if (groups != null && groups.length() > 0) { packet = packet + "$g" + groups; } packet = packet + "$e"; myStartingPointUrl = ezproxyUrl + "/login?user=" + URLEncoder.encode(user) + "&ticket=" + URLEncoder.encode(getKeyedDigest(ezproxyKey + user + packet) + packet); } public EZproxyURL(String ezproxyUrl, String ezproxyKey, String user) { this(ezproxyUrl, ezproxyKey, user, ""); } public String SPU(String url) { return myStartingPointUrl + "&qurl=" + URLEncoder.encode(url); } } %> <% // For logUser, you might use getHeader("REMOTE_USER") String logUser = "someuser"; EZproxyURL ezp = new EZproxyURL("http://ezproxy.yourlib.org", "shhhh", logUser); %> ezproxy ticket example

">Some Database
">Other Database