亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
成人免费在线观看入口| 亚洲成年人网站在线观看| 一区二区三区 在线观看视频| 午夜不卡在线视频| caoporm超碰国产精品| 日韩一卡二卡三卡国产欧美| 中文字幕在线不卡一区| 国产一区二区导航在线播放| 欧美人与z0zoxxxx视频| 自拍偷拍欧美精品| 成人午夜在线播放| 亚洲精品一区二区三区蜜桃下载| 亚洲午夜精品一区二区三区他趣| 99视频一区二区三区| 久久精品无码一区二区三区| 蜜臀av一区二区在线免费观看| 在线免费av一区| 中文字幕在线不卡| 国产精品一级在线| 制服.丝袜.亚洲.另类.中文| 日本一区二区三区在线不卡| 亚洲美女一区二区三区| caoporn国产精品| 日韩欧美自拍偷拍| 麻豆一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩精品一区二区三区视频播放 | 精品一区二区三区av| 欧美性感一类影片在线播放| 26uuu国产电影一区二区| 国产精品二区一区二区aⅴ污介绍| 国v精品久久久网| 3d动漫精品啪啪| 蜜桃av一区二区在线观看| 91免费视频大全| 欧美日韩aaaaaa| 日韩专区中文字幕一区二区| 丁香婷婷综合网| 亚洲视频 欧洲视频| 麻豆精品久久久| 欧美在线播放高清精品| 天涯成人国产亚洲精品一区av| 99re热这里只有精品视频| 亚洲午夜视频在线| 99精品国产91久久久久久| 久久99日本精品| 精品久久久久香蕉网| 亚洲第一狼人社区| 亚洲精品一区二区三区蜜桃下载| 亚洲.国产.中文慕字在线| 欧美视频在线一区二区三区 | 中文字幕制服丝袜一区二区三区 | 成人中文字幕合集| 宅男噜噜噜66一区二区66| 日本vs亚洲vs韩国一区三区| 欧美日韩色综合| 久久亚洲影视婷婷| 不卡的av网站| 国产精品色哟哟| 欧美日韩午夜在线| 亚洲午夜私人影院| 欧美日韩美少妇| 亚洲国产乱码最新视频| 欧美午夜在线一二页| 一区二区三区欧美日| 欧美三片在线视频观看| 黄网站免费久久| 久久精品在线免费观看| 日本怡春院一区二区| 日韩欧美一区中文| 麻豆91在线播放免费| 成人免费一区二区三区在线观看| 99久久99久久免费精品蜜臀| 日韩二区在线观看| 久久蜜臀精品av| 亚洲综合久久av| 777精品伊人久久久久大香线蕉| 国产精品美女久久久久aⅴ国产馆| 国产成人精品免费网站| 国产精品久久久久三级| 日本不卡一区二区三区高清视频| 91麻豆精品国产无毒不卡在线观看| 欧美精品一区二区三区高清aⅴ | 午夜精品久久久久久久99樱桃| 国产91丝袜在线观看| 日韩电影在线观看电影| 日韩午夜精品电影| 国产电影精品久久禁18| 国产精品美女久久福利网站| 欧美一级免费大片| 国产一区二区成人久久免费影院| 久久久久国产精品麻豆| 制服丝袜亚洲网站| 风间由美性色一区二区三区| 美女精品一区二区| 国产精品污污网站在线观看| 欧美精品乱人伦久久久久久| 六月婷婷色综合| 欧美tickle裸体挠脚心vk| 欧美色倩网站大全免费| 国产毛片精品视频| 久久国产尿小便嘘嘘| 亚洲国产精品成人综合色在线婷婷| 91精选在线观看| 成人h动漫精品一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 欧美不卡123| 在线欧美一区二区| 色拍拍在线精品视频8848| 久久机这里只有精品| 免费成人av资源网| 亚洲欧美偷拍三级| 日韩视频123| 精品日韩99亚洲| 欧美性生活一区| 欧美日韩国产色站一区二区三区| 国产成人av福利| 裸体在线国模精品偷拍| 国产精品久久久久久久久免费樱桃| 国产亚洲欧美色| 精品国产一区二区三区不卡 | 亚洲高清不卡在线观看| 欧美系列日韩一区| 欧美高清一级片在线| 色综合婷婷久久| 欧美日韩在线观看一区二区| 高清beeg欧美| 91首页免费视频| 成人黄色小视频| 色婷婷综合久久久| 99国产精品久久久| 精品一二三四区| 成人av资源在线| 国产成人99久久亚洲综合精品| 成人av电影在线| 国产精品一区二区黑丝| 91看片淫黄大片一级| 成人h动漫精品一区二区| 97精品国产露脸对白| 国产凹凸在线观看一区二区| 爽爽淫人综合网网站| 国产精品99久久久久久久vr| 久久国产精品72免费观看| zzijzzij亚洲日本少妇熟睡| 国产91精品久久久久久久网曝门| 99久久99久久综合| 99久久精品99国产精品| 欧美三级在线看| 在线成人免费观看| 成人免费观看av| 国产精品一区二区三区乱码| 九一九一国产精品| 91福利社在线观看| 色女孩综合影院| 精品少妇一区二区三区在线播放 | 日本一区二区视频在线| 久久―日本道色综合久久| 欧美精彩视频一区二区三区| 国产精品毛片久久久久久| 欧美精选午夜久久久乱码6080| 久久久久久久久97黄色工厂| 日韩欧美综合在线| 亚洲另类一区二区| 性做久久久久久免费观看欧美| 国产精品一区2区| av毛片久久久久**hd| 欧美日韩国产美女| 在线播放一区二区三区| 欧美专区日韩专区| 制服丝袜在线91| 欧美视频三区在线播放| 日本一区二区三区四区在线视频| 国产欧美中文在线| 狠狠色丁香婷婷综合久久片| 国产一二三精品| 色综合久久天天| 8x福利精品第一导航| 欧美日韩成人一区| 亚洲摸摸操操av| 蜜臀av国产精品久久久久| 国产成人精品影院| 欧美日韩国产欧美日美国产精品| 精品视频一区三区九区| 欧美三级韩国三级日本一级| 精品av久久707| 日韩一区二区免费电影| 奇米影视7777精品一区二区| 成人网在线播放| 欧美国产激情二区三区| 亚洲丶国产丶欧美一区二区三区| 在线免费精品视频| 精品区一区二区| 激情综合网激情| 色噜噜狠狠色综合中国| 一区二区三区在线免费视频| 日本成人在线视频网站| 91精品国产综合久久精品| 国产精品国产精品国产专区不片| 9i在线看片成人免费| 日韩欧美电影一二三|