⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sslutil.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
字号:
package org.roller.presentation.util;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.roller.config.RollerConfig;/** * SslUtil utility class Good ol' copy-n-paste from  <a * href="http://www.javaworld.com/javaworld/jw-02-2002/ssl/utilityclass.txt"> * http://www.javaworld.com/javaworld/jw-02-2002/ssl/utilityclass.txt</a> * which is referenced in the following article: <a * href="http://www.javaworld.com/javaworld/jw-02-2002/jw-0215-ssl.html"> * http://www.javaworld.com/javaworld/jw-02-2002/jw-0215-ssl.html</a> */public class SslUtil {    //~ Static fields/initializers =============================================    public static final String HTTP = "http";    public static final String HTTPS = "https";    public static final String HTTP_PORT_PARAM = "listenPort_http";    public static final String HTTPS_PORT_PARAM = "listenPort_https";    private static String HTTP_PORT = null;    private static String HTTPS_PORT = null;    public static final String STD_HTTP_PORT = "80";    public static final String STD_HTTPS_PORT = "443";    //~ Methods ================================================================    public static String getRedirectString(HttpServletRequest request,                                           ServletContext ctx, boolean isSecure) {        // get the port numbers from the application context        HTTP_PORT = RollerConfig.getProperty("securelogin.http.port");        HTTPS_PORT = RollerConfig.getProperty("securelogin.https.port");        // get the scheme we want to use for this page and        // get the scheme used in this request        String desiredScheme = isSecure ? HTTPS : HTTP;        String usingScheme = request.getScheme();        // Determine the port number we want to use        // and the port number we used in this request        String desiredPort = isSecure ? HTTPS_PORT : HTTP_PORT;        String usingPort = String.valueOf(request.getServerPort());        String urlString = null;        // Must also check ports, because of IE multiple redirect problem        if (!desiredScheme.equals(usingScheme) ||                !desiredPort.equals(usingPort)) {            urlString =                buildNewUrlString(request, desiredScheme, usingScheme,                                  desiredPort, usingPort);            // Temporarily store attributes in session            RequestUtil.stowRequestAttributes(request);        } else {            // Retrieve attributes from session            RequestUtil.reclaimRequestAttributes(request);        }        return urlString;    }    /**     * Builds the URL that we will redirect to     *     * @param request DOCUMENT ME!     * @param desiredScheme DOCUMENT ME!     * @param usingScheme DOCUMENT ME!     * @param desiredPort DOCUMENT ME!     * @param usingPort DOCUMENT ME!     *     * @return DOCUMENT ME!     */    private static String buildNewUrlString(HttpServletRequest request,                                            String desiredScheme,                                            String usingScheme,                                            String desiredPort, String usingPort) {        StringBuffer url = request.getRequestURL();        url.replace(0, usingScheme.length(), desiredScheme);        // Find the port used within the URL string        int startIndex = url.toString().indexOf(usingPort);        if (startIndex == -1) { // Port not found in URL            if ((!(STD_HTTPS_PORT.equals(desiredPort) &&                    HTTPS.equals(desiredScheme))) &&                    (!(STD_HTTP_PORT.equals(desiredPort) &&                    HTTP.equals(desiredScheme)))) {                startIndex =                    url.toString().indexOf("/",                                           url.toString().indexOf("/",                                                                  url.toString()                                                                     .indexOf("/") +                                                                  1) + 1);                url.insert(startIndex, ":" + desiredPort);            }        } else { // Port found in URL            if ((STD_HTTPS_PORT.equals(desiredPort) &&                    HTTPS.equals(desiredScheme)) ||                    (STD_HTTP_PORT.equals(desiredPort) &&                    HTTP.equals(desiredScheme))) {                url.delete(startIndex - 1, startIndex + usingPort.length());            } else { // desired port is not a default port                // Replace requested port with desired port number in URL string                url.replace(startIndex, startIndex + usingPort.length(),                            desiredPort);            }        }        // add query string, if any        String queryString = request.getQueryString();        if ((queryString != null) && (queryString.length() != 0)) {            url.append("?" + queryString);        } else {            queryString = RequestUtil.getRequestParameters(request);            if ((queryString != null) && (queryString.length() != 0)) {                url.append("?" + queryString);            }        }        return url.toString();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -