亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? remoteverifyservlet.java

?? 一套JAVA的CA證書簽發系統.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************* *                                                                       * *  EJBCA: The OpenSource Certificate Authority                          * *                                                                       * *  This software is free software; you can redistribute it and/or       * *  modify it under the terms of the GNU Lesser General Public           * *  License as published by the Free Software Foundation; either         * *  version 2.1 of the License, or any later version.                    * *                                                                       * *  See terms of license at gnu.org.                                     * *                                                                       * *************************************************************************/ package se.anatom.ejbca.samples;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.apache.log4j.Logger;/** * Servlet to authenticate a user. Simple database using a file to keep users in format: * instance;username;password;DN DN is in form: dn-c:dn-o:dn-ou:dn-ln:dn-gn:dn-cn where parts can * be left out as desired. Expects these parameters when called: (error 500 if any missing) *  * <ul> * <li> * user=&lt;username&gt; * </li> * <li> * password=&lt;password&gt; * </li> * <li> * version=&lt;major&gt;.&lt;minor&gt; * </li> * </ul> *  * <p> * Returns a logic token stating that user is authenticated followed by the information to use for * this user's certificate. * </p> * * @author Original code by Peter Neemeth * @version $Id: RemoteVerifyServlet.java,v 1.7 2004/04/16 07:39:02 anatom Exp $ */public class RemoteVerifyServlet extends HttpServlet {    private static Logger log = Logger.getLogger(RemoteVerifyServlet.class);    /** Status code for successful communication */    public static final String MSG_OK = "200 OK";    /** Status code for failed communication */    public static final String MSG_PROTOCOL_MISMATCH = "400 Wrong protocol version";    /** Status code for generic error */    public static final String MSG_GENERIC_ERROR = "500 ERROR (Missing parameter?) : ";    /** Name of user id parameter */    public static final String REQUEST_USERNAME = "username";    /** Name of password parameter */    public static final String REQUEST_PASSWORD = "password";    /** Name of version parameter */    public static final String REQUEST_VERSION = "version";    /** Token for protocol */    public static final String RESPONSE_END = "end";    /** Token for protocol */    public static final String RESPONSE_STATUS = "status";    /** Token for protocol */    public static final String RESPONSE_RESULT = "result";    /** Token for protocol */    public static final String RESPONSE_MESSAGE = "message";    /** Status code for granting of certificate. */    public static final String GRANT = "grant";    /** Status code for rejecting certificate request. */    public static final String REJECT = "reject";    /** Version of the protocol used when communicating back to requestor */    protected static final int PROTOCOL_VERSION_MAJOR = 1;    /** Version of the protocol used when communicating back to requestor */    protected static final int PROTOCOL_VERSION_MINOR = 0;    /**     * Basic structure containing users. Top level keyed on instance gives new Hashtable keyed on     * username with String[] = { password, result } as data.     */    protected static Hashtable users;    /**     * Delimiter between parts in DN     *      * <p>     * Can be controlled via properties file.     * </p>     */    protected static final String DNPART_DELIMITER = ":";    /**     * Separator between name and value in DN name = value     *      * <p>     * Can be controlled via properties file.     * </p>     */    protected static final String DNPART_NAME_VALUE_SEPARATOR = "=";    /**     * For easy export from Excel and others.     *      * <p>     * Can be controlled via properties file.     * </p>     */    protected static final String RECORD_SEPARATOR = ";";    /**     * Ignored lines in DBUSER_file start with this character.     *      * <p>     * Can be controlled via properties file.     * </p>     */    protected static final String LINE_COMMENT = ";";    /** What parameter to send when using GET to show status. */    protected static final String STATUS_KEY = "status";    /** Count total accesses */    protected static int countAccess = 0;    /** Count granted accesses */    protected static int countGranted = 0;    /** Count rejected accesses */    protected static int countRejected = 0;    /**     * Updates result with name-value-pairs extracted from dnPartsString     *     * @param result where the result is stuffed     * @param dnPartsString name-value-pairs separated by delimiter     */    void addUserDataToResult(AuthResult result, final String dnPartsString) {        if (dnPartsString == null) {            return;        }        Enumeration dnParts = new StringTokenizer(dnPartsString, DNPART_DELIMITER);        while (dnParts.hasMoreElements()) {            String dnPart = (String) dnParts.nextElement();            int separatorPosition = dnPart.indexOf(DNPART_NAME_VALUE_SEPARATOR);            String dnName = dnPart.substring(0, separatorPosition);            String dnValue = dnPart.substring(separatorPosition + 1); // skip separator            result.add(dnName, dnValue);            debugLog("addUserDataToResult: result=" + result);        }    }    /**     * Authenticate a user given a querystring. <b>This is the only method a customer should have     * to rewrite/override.</b>     *     * @param username containing parsed username from requestor     * @param password containing parsed password from requestor     *     * @return status + certificate contents in an AuthResult     */    protected AuthResult authenticateUser(String username, String password) {        AuthResult result = new AuthResult();        String[] userData = findUserData(username);        if (userData == null) {            result.reject();            result.setReason("Failed to authenticate credentials.");            debugLog("authenticateUser: No such user. REJECTING");        } else {            debugLog("authenticateUser: Got userData for user '" + username + "'");            if (password.equals(userData[0])) {                debugLog("authenticateUser: Password matched. GRANTING");                result.grant();                addUserDataToResult(result, userData[1]);            } else {                debugLog("authenticateUser: Password missmatch. REJECTING");                result.reject();                result.setReason("Failed to authenticate credentials.");            }        }        return result;    }    /**     * Logs extensively to the log.     *     * @param s What to log     */    protected void debugLog(final String s) {        log.debug(s);    }    /**     * logs info.     *     * @param s What to log     */    protected void infoLog(final String s) {        log.info(s);    }    /**     * logs error     *     * @param s What to log     */    protected void errorLog(final String s) {        log.error(s);    }    /**     * logs error and stacktrace.     *     * @param s What to log     * @param e DOCUMENT ME!     */    protected void errorLog(final String s, java.lang.Exception e) {        log.error(s, e);    }    /**     * Allows for checking status of.     *     * @param req javax.servlet.http.HttpServletRequest     * @param res javax.servlet.http.HttpServletResponse     *     * @exception javax.servlet.ServletException The exception description.     */    protected void doGet(HttpServletRequest req, HttpServletResponse res)        throws ServletException, IOException {        res.setContentType("text/plain");        ServletOutputStream out = res.getOutputStream();        // Keep this for logging.        String remoteAddr = req.getRemoteAddr();        // Extract information about request type and how we were called.        // Also suitable for logging.        String method = req.getMethod();        String path = req.getServletPath();        out.print("You called from " + remoteAddr);        out.println(" using " + method + " as method.");        try {            Hashtable params = HttpUtils.parseQueryString(req.getQueryString());            if (params.containsKey(STATUS_KEY)) {                out.println("\n");                out.println((new Date()).toString() + " RemoteVerify status: ");                out.println("Accesses: " + countAccess);                out.println("Granted: " + countGranted);                out.println("Rejected: " + countRejected);                if (users != null) {                    out.println("Number of users in database: " + users.size());                } else {                    out.println("No users in database.");                }                out.println("\n");                out.println("Protocol version: " + PROTOCOL_VERSION_MAJOR + "." +                    PROTOCOL_VERSION_MINOR);                out.println("Database loaded from: " + getInitParameter("dbfilename"));                out.println((new Date()).toString() + " DONE.");            }        } catch (IllegalArgumentException ignored) {            out.println("Couldn't parse that request. Check parameters and try again.");        }        out.println("Request done.");    }    /**     * Accepts requests and dispatches to authenticateUser in this object.     *      * <p>     * Returns one of the following cases. (Apart from status being the first line, order is not     * specified.)     *      * <ul>     * <li>     * A granted reply:     * <pre>     *   status=200 OK

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线视频你懂得| 欧美日高清视频| 男女男精品视频| 色综合久久久久综合体桃花网| 精品久久国产老人久久综合| 国产一区二区三区精品欧美日韩一区二区三区 | 99热精品一区二区| 国产成人精品影视| 久久蜜桃av一区精品变态类天堂| 国产毛片精品视频| 亚洲图片欧美视频| 日本精品视频一区二区三区| 久久精品国产99| 亚洲欧美自拍偷拍| 欧美电影在线免费观看| 精品写真视频在线观看| 亚洲伦理在线免费看| 日韩欧美123| 成人app软件下载大全免费| 国产一区二区主播在线| 亚洲精品成a人| 91黄色免费看| 国产精品亚洲第一区在线暖暖韩国 | 亚洲精品一区二区精华| 97se亚洲国产综合自在线观| 蜜臀av一区二区在线免费观看| 亚洲色图制服诱惑| 欧美大度的电影原声| 717成人午夜免费福利电影| 国产一区二区三区电影在线观看| 一区二区国产盗摄色噜噜| 中文字幕一区二区三区在线播放| 在线视频国内自拍亚洲视频| 国产成人亚洲精品青草天美| 国产成人高清在线| 久久66热偷产精品| 日韩精品国产精品| 日韩中文字幕一区二区三区| 91在线视频免费91| 不卡视频在线看| 国产精品996| 麻豆视频观看网址久久| 国产精品538一区二区在线| 首页国产欧美久久| 亚洲一区二区在线播放相泽| 中文字幕+乱码+中文字幕一区| 国产精品毛片高清在线完整版| 亚洲精品在线三区| 成人手机在线视频| 国产高清无密码一区二区三区| 精品午夜久久福利影院| 韩国欧美国产一区| 国产成人一区在线| 91网页版在线| 精品日韩在线观看| 欧美国产欧美亚州国产日韩mv天天看完整 | 久久亚洲影视婷婷| 日本一区二区电影| 日韩专区欧美专区| 国产毛片精品国产一区二区三区| 99精品国产99久久久久久白柏 | 日本欧美一区二区三区| 久久国产免费看| 97国产精品videossex| 日韩欧美视频在线| 成人免费在线播放视频| 美日韩一区二区三区| 91久久精品一区二区三| 97久久超碰国产精品| 欧美一区二区福利在线| 精品久久免费看| 欧美日韩精品一区二区三区四区| 国产精品女主播在线观看| 日本不卡一二三| 国产成人综合亚洲网站| 在线成人小视频| 亚洲免费av网站| 美女在线视频一区| 欧美三级电影网| 亚洲欧美一区二区不卡| 久久国产成人午夜av影院| 亚洲精品在线免费观看视频| 亚洲亚洲精品在线观看| 欧美日韩亚洲国产综合| 中文字幕日本不卡| 成人av资源下载| 中文字幕精品一区二区三区精品| 国产麻豆精品在线| 亚洲免费资源在线播放| 奇米影视一区二区三区| 成人免费视频caoporn| 精品国产乱码久久久久久蜜臀 | 国产精品免费aⅴ片在线观看| 国产精品亚洲第一区在线暖暖韩国| 91精品国产综合久久精品麻豆| 国产精品天干天干在线综合| 成人性生交大合| 中文在线资源观看网站视频免费不卡| 极品少妇xxxx精品少妇| 欧美一区二区福利在线| 国产精品一区一区三区| 一本到高清视频免费精品| 亚洲午夜视频在线| 欧美性猛交一区二区三区精品| 亚洲美女屁股眼交3| 日韩av不卡一区二区| 久久久精品日韩欧美| 91免费国产在线| 亚洲一区在线观看网站| 欧美日韩国产高清一区二区| 在线播放中文字幕一区| 国产一区二区三区四区五区入口| 中文字幕日韩av资源站| 欧美日韩免费视频| 91在线精品一区二区| 精品中文av资源站在线观看| 亚洲国产日日夜夜| 26uuu另类欧美亚洲曰本| 色视频成人在线观看免| 中文字幕第一区二区| 欧美日韩不卡一区二区| www.日本不卡| 韩国欧美国产一区| 亚洲男同性视频| 亚洲欧洲精品成人久久奇米网| 欧美性猛交一区二区三区精品 | 国产99久久久精品| 婷婷夜色潮精品综合在线| 亚洲品质自拍视频| 亚洲品质自拍视频| 国产精品成人一区二区三区夜夜夜| 91精品国产手机| 亚洲欧美色图小说| 91一区一区三区| 欧美撒尿777hd撒尿| 色综合久久六月婷婷中文字幕| 91久久精品一区二区二区| 欧洲色大大久久| 欧洲视频一区二区| 欧美大片在线观看一区二区| 日韩欧美国产综合| 国产精品网站导航| 欧美激情综合五月色丁香| 日韩一区二区高清| 日韩在线观看一区二区| 亚洲高清在线精品| 日韩在线一二三区| 国内精品免费**视频| 国产一区二区调教| 成人免费va视频| 成人av网址在线| 色综合网站在线| 在线播放/欧美激情| 国产99精品国产| 91色.com| 国产日韩精品一区二区三区在线| 欧美tickling挠脚心丨vk| 国产日韩欧美a| 国产精品久99| 久久99久久99小草精品免视看| 国产精品亚洲视频| 欧美久久一二三四区| 久久久美女毛片| 亚洲精品伦理在线| 福利视频网站一区二区三区| 51久久夜色精品国产麻豆| 国产亚洲精品福利| 偷窥国产亚洲免费视频| 久久精品免视看| 蜜臀久久久久久久| 在线观看一区二区视频| 国产日产欧美一区| 亚洲一二三级电影| 色综合天天综合在线视频| 欧美性感一区二区三区| 亚洲男人天堂av| 国产一区美女在线| 337p亚洲精品色噜噜| 中文字幕亚洲一区二区av在线| 国产精品一区二区久久精品爱涩| 日韩视频国产视频| 蜜臀av一区二区在线免费观看| 成人高清视频在线观看| 欧美国产日韩精品免费观看| 亚洲一级二级在线| 成人午夜伦理影院| 中文字幕亚洲区| av在线不卡观看免费观看| 国产欧美精品日韩区二区麻豆天美| 亚洲一区影音先锋| 欧美猛男超大videosgay| 日本视频一区二区三区| 欧美日韩一区二区三区视频| 亚洲午夜电影网| 91久久香蕉国产日韩欧美9色| 欧美丝袜第三区| 日韩vs国产vs欧美| 精品国产乱码久久久久久久| 久久66热re国产| 国产精品理论片在线观看|