summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/servlet/csadmin/GetCookie.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/servlet/csadmin/GetCookie.java')
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/csadmin/GetCookie.java315
1 files changed, 0 insertions, 315 deletions
diff --git a/pki/base/common/src/com/netscape/cms/servlet/csadmin/GetCookie.java b/pki/base/common/src/com/netscape/cms/servlet/csadmin/GetCookie.java
deleted file mode 100644
index e6810ff42..000000000
--- a/pki/base/common/src/com/netscape/cms/servlet/csadmin/GetCookie.java
+++ /dev/null
@@ -1,315 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.csadmin;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.util.Locale;
-import java.util.Random;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.authentication.IAuthToken;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.base.IArgBlock;
-import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.ISecurityDomainSessionTable;
-import com.netscape.certsrv.logging.ILogger;
-import com.netscape.certsrv.usrgrp.IUGSubsystem;
-import com.netscape.cms.servlet.base.CMSServlet;
-import com.netscape.cms.servlet.base.UserInfo;
-import com.netscape.cms.servlet.common.CMSRequest;
-import com.netscape.cms.servlet.common.CMSTemplate;
-import com.netscape.cms.servlet.common.CMSTemplateParams;
-import com.netscape.cms.servlet.common.ECMSGWException;
-
-public class GetCookie extends CMSServlet {
-
- /**
- *
- */
- private static final long serialVersionUID = 2466968231929541707L;
- private static Random mRandom = null;
- private final static int SESSION_MAX_AGE = 3600;
- private String mErrorFormPath = null;
- private String mFormPath = null;
-
- private final static String LOGGING_SIGNED_AUDIT_SECURITY_DOMAIN_UPDATE =
- "LOGGING_SIGNED_AUDIT_SECURITY_DOMAIN_UPDATE_1";
- private final static String LOGGING_SIGNED_AUDIT_ROLE_ASSUME =
- "LOGGING_SIGNED_AUDIT_ROLE_ASSUME_3";
-
- public GetCookie() {
- super();
- }
-
- /**
- * initialize the servlet.
- *
- * @param sc servlet configuration, read from the web.xml file
- */
- public void init(ServletConfig sc) throws ServletException {
- super.init(sc);
-
- CMS.debug("GetCookie init");
- mTemplates.remove(CMSRequest.SUCCESS);
- mRandom = new Random();
- mErrorFormPath = sc.getInitParameter("errorTemplatePath");
- if (mOutputTemplatePath != null) {
- mFormPath = mOutputTemplatePath;
- }
- }
-
- /**
- * Process the HTTP request.
- *
- * @param cmsReq the object holding the request and response information
- */
- protected void process(CMSRequest cmsReq) throws EBaseException {
- HttpServletRequest httpReq = cmsReq.getHttpReq();
- HttpServletResponse httpResp = cmsReq.getHttpResp();
-
- CMS.debug("GetCookie start");
- IAuthToken authToken = null;
- IConfigStore cs = CMS.getConfigStore();
-
- IArgBlock header = CMS.createArgBlock();
- IArgBlock ctx = CMS.createArgBlock();
- CMSTemplateParams argSet = new CMSTemplateParams(header, ctx);
-
- CMSTemplate form = null;
- Locale[] locale = new Locale[1];
-
- String url = httpReq.getParameter("url");
- CMS.debug("GetCookie before auth, url =" + url);
- String url_e = "";
- URL u = null;
- try {
- url_e = URLDecoder.decode(url, "UTF-8");
- u = new URL(url_e);
- } catch (Exception eee) {
- throw new ECMSGWException(
- "GetCookie missing parameter: url");
- }
-
- int index2 = url_e.indexOf("subsystem=");
- String subsystem = "";
- if (index2 > 0) {
- subsystem = url.substring(index2 + 10);
- int index1 = subsystem.indexOf("&");
- if (index1 > 0)
- subsystem = subsystem.substring(0, index1);
- }
-
- try {
- authToken = authenticate(cmsReq);
- } catch (Exception e) {
- CMS.debug("GetCookie authentication failed");
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("CMSGW_ERR_BAD_SERV_OUT_STREAM", "",
- e.toString()));
- header.addStringValue("sd_uid", "");
- header.addStringValue("sd_pwd", "");
- header.addStringValue("host", u.getHost());
- header.addStringValue("sdhost", CMS.getEESSLHost());
- header.addStringValue("subsystem", subsystem);
- header.addStringValue("url", url_e);
- header.addStringValue("errorString", "Failed Authentication");
- String sdname = cs.getString("securitydomain.name", "");
- header.addStringValue("sdname", sdname);
-
- CMS.debug("mErrorFormPath=" + mErrorFormPath);
- try {
- form = getTemplate(mErrorFormPath, httpReq, locale);
- } catch (IOException eee) {
- CMS.debug("GetCookie process: cant locate the form");
- /*
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("CMSGW_ERR_GET_TEMPLATE", e.toString()));
- throw new ECMSGWException(
- CMS.getUserMessage("CMS_GW_DISPLAY_TEMPLATE_ERROR"));
- */
- }
-
- if (form == null) {
- CMS.debug("GetCookie::process() - form is null!");
- throw new EBaseException("form is null");
- }
-
- try {
- ServletOutputStream out = httpResp.getOutputStream();
-
- cmsReq.setStatus(CMSRequest.SUCCESS);
- httpResp.setContentType("text/html");
- form.renderOutput(out, argSet);
- } catch (IOException ee) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("CMSGW_ERR_OUT_STREAM_TEMPLATE", ee.toString()));
- throw new ECMSGWException(
- CMS.getUserMessage("CMS_GW_DISPLAY_TEMPLATE_ERROR"));
- }
- return;
- }
-
- String cookie = "";
- String auditMessage = "";
-
- if (authToken != null) {
- String uid = authToken.getInString("uid");
- String groupname = getGroupName(uid, subsystem);
-
- if (groupname != null) {
-
- auditMessage = CMS.getLogMessage(
- LOGGING_SIGNED_AUDIT_ROLE_ASSUME,
- uid,
- ILogger.SUCCESS,
- groupname);
- audit(auditMessage);
-
- // assign cookie
- long num = mRandom.nextLong();
- cookie = num + "";
- ISecurityDomainSessionTable ctable = CMS.getSecurityDomainSessionTable();
- String addr = "";
- try {
- addr = u.getHost();
- } catch (Exception e) {
- }
- String ip = "";
- try {
- ip = InetAddress.getByName(addr).toString();
- int index = ip.indexOf("/");
- if (index > 0)
- ip = ip.substring(index + 1);
- } catch (Exception e) {
- }
-
- String auditParams = "operation;;issue_token+token;;" + cookie + "+ip;;" + ip +
- "+uid;;" + uid + "+groupname;;" + groupname;
-
- int status = ctable.addEntry(cookie, ip, uid, groupname);
- if (status == ISecurityDomainSessionTable.SUCCESS) {
- auditMessage = CMS.getLogMessage(
- LOGGING_SIGNED_AUDIT_SECURITY_DOMAIN_UPDATE,
- uid,
- ILogger.SUCCESS,
- auditParams);
- audit(auditMessage);
- } else {
- auditMessage = CMS.getLogMessage(
- LOGGING_SIGNED_AUDIT_SECURITY_DOMAIN_UPDATE,
- uid,
- ILogger.FAILURE,
- auditParams);
- audit(auditMessage);
- }
-
- try {
- if (!url.startsWith("$")) {
- try {
- form = getTemplate(mFormPath, httpReq, locale);
- } catch (IOException e) {
- CMS.debug("GetCookie process: cant locate the form");
- /*
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("CMSGW_ERR_GET_TEMPLATE", e.toString()));
- throw new ECMSGWException(
- CMS.getUserMessage("CMS_GW_DISPLAY_TEMPLATE_ERROR"));
- */
- }
-
- header.addStringValue("url", url);
- header.addStringValue("session_id", cookie);
-
- try {
- ServletOutputStream out = httpResp.getOutputStream();
-
- cmsReq.setStatus(CMSRequest.SUCCESS);
- httpResp.setContentType("text/html");
- form.renderOutput(out, argSet);
- } catch (IOException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("CMSGW_ERR_OUT_STREAM_TEMPLATE", e.toString()));
- throw new ECMSGWException(
- CMS.getUserMessage("CMS_GW_DISPLAY_TEMPLATE_ERROR"));
- }
- }
- } catch (Exception e) {
- }
- } else {
- auditMessage = CMS.getLogMessage(
- LOGGING_SIGNED_AUDIT_ROLE_ASSUME,
- uid,
- ILogger.FAILURE,
- "Enterprise " + subsystem + " Administrators");
- audit(auditMessage);
- }
- }
- }
-
- private String getGroupName(String uid, String subsystemname) {
- IUGSubsystem subsystem =
- (IUGSubsystem) (CMS.getSubsystem(IUGSubsystem.ID));
- if (subsystem.isMemberOf(uid, "Enterprise CA Administrators") &&
- subsystemname.equals("CA")) {
- return "Enterprise CA Administrators";
- } else if (subsystem.isMemberOf(uid, "Enterprise KRA Administrators") &&
- subsystemname.equals("KRA")) {
- return "Enterprise KRA Administrators";
- } else if (subsystem.isMemberOf(uid, "Enterprise OCSP Administrators") &&
- subsystemname.equals("OCSP")) {
- return "Enterprise OCSP Administrators";
- } else if (subsystem.isMemberOf(uid, "Enterprise TKS Administrators") &&
- subsystemname.equals("TKS")) {
- return "Enterprise TKS Administrators";
- } else if (subsystem.isMemberOf(uid, "Enterprise RA Administrators") &&
- subsystemname.equals("RA")) {
- return "Enterprise RA Administrators";
- } else if (subsystem.isMemberOf(uid, "Enterprise TPS Administrators") &&
- subsystemname.equals("TPS")) {
- return "Enterprise TPS Administrators";
- }
-
- return null;
- }
-
- /**
- * Retrieves locale based on the request.
- */
- protected Locale getLocale(HttpServletRequest req) {
- Locale locale = null;
- String lang = req.getHeader("accept-language");
-
- if (lang == null) {
- // use server locale
- locale = Locale.getDefault();
- } else {
- locale = new Locale(UserInfo.getUserLanguage(lang),
- UserInfo.getUserCountry(lang));
- }
- return locale;
- }
-}