// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) // Source File Name: HttpUserNameCallback.java package com.vignette.tas.util; import java.util.Locale; import javax.servlet.http.*; import org.apache.log4j.Category; // Referenced classes of package com.vignette.tas.util: // RemoteDataException, UserNameCallback public class HttpUserNameCallback implements UserNameCallback { public HttpUserNameCallback() { userNameHeader = System.getProperty("com.vignette.tas.sso.user.header.name", "sm_user"); useIdentifier = true; identifierHeaderName = System.getProperty("com.vignette.tas.sso.identifier.header.name"); identifierHeaderValue = System.getProperty("com.vignette.tas.sso.identifier.header.value"); String useIdentifierString = System.getProperty("com.vignette.tas.sso.identifier.enable"); if(useIdentifierString != null && "false".equals(useIdentifierString)) useIdentifier = false; } public String getMappedServletContext(HttpServletRequest request) { String contextPath = request.getContextPath(); LOG.debug("Context path is " + contextPath); return contextPath; } public boolean needsAuthentication(HttpServletRequest request, HttpServletResponse response) { String userName = null; try { userName = getUserName(request); } catch(Exception e) { LOG.error("Getting the user name caused an error", e); } return userName != null; } public String getUserName(HttpServletRequest request) throws RemoteDataException { if(useIdentifier) { String identifierHeaderCheck = request.getHeader(identifierHeaderName); if(identifierHeaderCheck != null && identifierHeaderCheck.equals(identifierHeaderValue)) LOG.debug("Identifier passed security check"); else throw new RemoteDataException("user_not_authenticated_error_label", "The user cannot be authenticated"); } String userName = request.getHeader(userNameHeader); if(userName == null) userName = request.getRemoteUser(); LOG.debug("Getting " + userName + " from the request"); return userName; } public boolean isProxyRequest(HttpServletRequest request) throws RemoteDataException { String path = request.getPathInfo(); if(path == null) path = request.getServletPath(); if(path != null) { int pos = path.indexOf("common/logout.jsp"); if(pos > -1) return false; } return true; } public void doNonProxyActivity(HttpServletRequest request, HttpServletResponse response) throws RemoteDataException { String logoutURL = getLogoutURL(request); if(logoutURL != null) { LOG.debug("Redirecting to the logoutURL: " + logoutURL); try { response.sendRedirect(logoutURL); } catch(Exception e) { } } else { response.setHeader("Authorization", null); Cookie cookie = new Cookie("JSESSIONID", ""); cookie.setMaxAge(0); response.addCookie(cookie); try { response.sendRedirect("/AppConsole"); } catch(Exception e) { } } } public Locale getLocale(HttpServletRequest request) { return request.getLocale(); } public String getLogoutURL(HttpServletRequest request) { String headerProp = System.getProperty("com.vignette.tas.sso.logout.url.header.name"); String logoutURL = null; if(headerProp != null) logoutURL = request.getHeader(headerProp); if(logoutURL == null) logoutURL = System.getProperty("com.vignette.tas.sso.logout.url"); return logoutURL; } static Class _mthclass$(String x0) { return Class.forName(x0); ClassNotFoundException x1; x1; throw new NoClassDefFoundError(x1.getMessage()); } private static final Category LOG; private static final String DEFAULT_HTTP_USER_NAME_FIELD = "sm_user"; private static final String HTTP_USER_NAME_FIELD = "com.vignette.tas.sso.user.header.name"; private static final String HTTP_IDENTIFIER_NAME_FIELD_PROP = "com.vignette.tas.sso.identifier.header.name"; private static final String HTTP_IDENTIFIER_VALUE_FIELD_PROP = "com.vignette.tas.sso.identifier.header.value"; private static final String HTTP_IDENTIFIER_CHECK_PROP = "com.vignette.tas.sso.identifier.enable"; private static final String HTTP_LOGOUT_URL_PROP = "com.vignette.tas.sso.logout.url"; private static final String HTTP_LOGOUT_URL_HEADER_NAME_PROP = "com.vignette.tas.sso.logout.url.header.name"; private String userNameHeader; private boolean useIdentifier; private String identifierHeaderName; private String identifierHeaderValue; static { LOG = Category.getInstance(com.vignette.tas.util.HttpUserNameCallback.class); } }