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

📄 jdbcsystemdatabase.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    public List getReplacementsForContent(String username, int replaceType, String mimeType, String site) throws Exception {
        String cacheKey = (username == null ? "" : username) + "_" + replaceType + "_" + (mimeType == null ? "" : mimeType) + "_"
                        + (site == null ? "" : site);
        synchronized (replacementsCache) {
            if (replacementsCache.contains(cacheKey)) {
                return (List) replacementsCache.retrieve(cacheKey);
            }
        }
        JDBCPreparedStatement ps = null;

        // global=SELECT * FROM replacements WHERE username=? AND mime_type=?
        // AND replace_type=? AND MATCHES(?,site_pattern=?) = ?
        // ORDER BY username,replace_type,mime_type,sequence ASC
        // user=SELECT * FROM replacements WHERE ( username=? OR username=? )
        // AND mime_type=? AND replace_type=? AND MATCHES(?,site_pattern=?) = ?
        // ORDER BY username,replace_type,mime_type,sequence ASC

        String sitePattern = site == null || site.equals("") ? ".*" : site;
        if (site == null || site.equals("")) {
            ps = db.getStatement("getReplacementsForContent.select.allSites");
            ps.setString(3, "");

        } else {
            ps = db.getStatement("getReplacementsForContent.select");
            ps.setString(3, sitePattern);
            ps.setString(4, sitePattern);
        }
        ps.setString(1, mimeType == null ? "" : mimeType);
        ps.setInt(2, replaceType);

        try {
            ResultSet rs = ps.executeQuery();
            CacheList v = new CacheList();
            try {
                while (rs.next()) {
                    v.add(new DefaultReplacement(rs.getString("mime_type"), replaceType, rs.getInt("sequence"), rs
                                    .getString("site_pattern"), rs.getString("match_pattern"), rs.getString("replace_pattern")));
                }
                replacementsCache.store(cacheKey, v, new Long(Long.MAX_VALUE), null);
                return v;
            } finally {
                rs.close();
            }
        } finally {
            ps.releasePreparedStatement();
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#deleteReplacement(int)
     */
    public void deleteReplacement(int sequence) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("deleteReplacements.delete");
        try {
            ps.setInt(1, sequence);
            ps.execute();
        } finally {
            ps.releasePreparedStatement();
        }
        replacementsCache.clear();
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#updateReplacement(com.sslexplorer.services.Replacement)
     */
    public void updateReplacement(Replacement replacement) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("updateReplacements.update");
        try {
            ps.setString(1, replacement.getMimeType());
            ps.setString(2, replacement.getSitePattern());
            ps.setString(3, replacement.getMatchPattern());
            ps.setString(4, replacement.getReplacePattern());
            ps.setInt(5, replacement.getReplaceType());
            ps.setInt(6, replacement.getSequence());
            ps.execute();
        } finally {
            ps.releasePreparedStatement();
        }
        replacementsCache.clear();
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#createReplacement(com.sslexplorer.services.Replacement)
     */
    public Replacement createReplacement(Replacement replacement) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("createReplacement.insert");
        try {
            ps.setInt(1, replacement.getReplaceType());
            ps.setString(2, replacement.getMimeType());
            ps.setString(3, replacement.getSitePattern());
            ps.setString(4, replacement.getMatchPattern());
            ps.setString(5, replacement.getReplacePattern());
            ps.execute();
            return new DefaultReplacement(replacement.getMimeType(), replacement.getReplaceType(), db.getLastInsertId(ps,
                "createReplacement.lastInsertId"), replacement.getSitePattern(), replacement.getMatchPattern(), replacement
                            .getReplacePattern());
        } finally {
            replacementsCache.clear();
            ps.releasePreparedStatement();
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#getReplacements()
     */
    public List getReplacements() throws Exception {
        JDBCPreparedStatement ps = db.getStatement("getReplacements.select");
        try {
            ResultSet rs = ps.executeQuery();
            try {
                List v = new ArrayList();
                while (rs.next()) {
                    v.add(new DefaultReplacement(rs.getString("mime_type"), rs.getInt("replace_type"), rs.getInt("sequence"), rs
                                    .getString("site_pattern"), rs.getString("match_pattern"), rs.getString("replace_pattern")));
                }
                return v;
            } finally {
                rs.close();
            }
        } finally {
            ps.releasePreparedStatement();
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#getReplacement(int)
     */
    public Replacement getReplacement(int sequence) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("getReplacement.select");
        ps.setInt(1, sequence);
        try {
            ResultSet rs = ps.executeQuery();
            try {
                if (rs.next()) {
                    return new DefaultReplacement(rs.getString("mime_type"), rs.getInt("replace_type"), rs.getInt("sequence"), rs
                                    .getString("site_pattern"), rs.getString("match_pattern"), rs.getString("replace_pattern"));
                }
            } finally {
                rs.close();
            }
        } finally {
            ps.releasePreparedStatement();
        }
        return null;
    }

    //
    // Authentication Schemes
    //

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#getAuthenticationSchemeSequences()
     */
    public List getAuthenticationSchemeSequences() throws Exception {
        JDBCPreparedStatement ps = db.getStatement("getAuthenticationSchemeSequences.select");
        try {
            ResultSet rs = ps.executeQuery();
            try {
                List sequences = new ArrayList();
                while (rs.next()) {
                    AuthenticationSchemeSequence sequence = buildAuthenticationSchemeSequence(rs);
                    if (sequence != null) {
                        sequences.add(sequence);
                    }
                }
                return sequences;
            } finally {
                rs.close();
            }
        } finally {
            ps.releasePreparedStatement();
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#getAuthenticationSchemeSequence(int)
     */
    public AuthenticationSchemeSequence getAuthenticationSchemeSequence(int id) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("getAuthenticationSchemeSequence.select");
        try {
            ps.setInt(1, id);
            ResultSet rs = ps.executeQuery();
            try {
                if (rs.next()) {
                    return buildAuthenticationSchemeSequence(rs);
                }
            } finally {
                rs.close();
            }
        } finally {
            ps.releasePreparedStatement();
        }
        return null;
    }

    public AuthenticationSchemeSequence createAuthenticationSchemeSequence(String name, String description, String[] modules,
                                                                           Calendar dateCreated, Calendar dateAmended,
                                                                           boolean enabled) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("createAuthenticationSchemeSequence.insert");
        try {
            ps.setString(1, name);
            ps.setString(2, description);
            Calendar now = Calendar.getInstance();
            ps.setString(3, db.formatTimestamp(now));
            ps.setString(4, db.formatTimestamp(now));
            ps.setInt(4, enabled ? 1 : 0);
            ps.execute();
            int id = db.getLastInsertId(ps, "createAuthenticationSchemeSequence.lastInsertId");
            AuthenticationSchemeSequence seq = getAuthenticationSchemeSequence(id);
            for (int i = 0; i < modules.length; i++) {
                seq.addModule(modules[i]);
            }
            updateSequence(seq);
            return seq;
        } finally {
            ps.releasePreparedStatement();
        }

    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#updateAuthenticationSchemeSequence(com.sslexplorer.security.AuthenticationSchemeSequence)
     */
    public void updateAuthenticationSchemeSequence(AuthenticationSchemeSequence sequence) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("updateAuthenticationSchemeSequence.update");
        try {
            ps.setString(1, sequence.getResourceName());
            ps.setString(2, sequence.getResourceDescription());
            Calendar now = Calendar.getInstance();
            ps.setString(3, db.formatTimestamp(now));
            ps.setInt(4, sequence.getEnabled() ? 1 : 0);
            ps.setInt(5, sequence.getResourceId());
            ps.execute();
            updateSequence(sequence);
        } finally {
            ps.releasePreparedStatement();
        }
    }

    void updateSequence(AuthenticationSchemeSequence sequence) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("updateSequence.delete");
        try {
            ps.setInt(1, sequence.getResourceId());
            ps.execute();
        } finally {
            ps.releasePreparedStatement();
        }
        int seq = 0;
        ps = db.getStatement("updateSequence.insert");
        try {
            for (Iterator i = sequence.modules(); i.hasNext();) {
                String module = (String) i.next();
                ps.setInt(1, sequence.getResourceId());
                ps.setString(2, module);
                ps.setInt(3, seq);
                ps.execute();
                seq += 10;
                ps.reset();
            }
        } finally {
            ps.releasePreparedStatement();
        }

    }

    /*
     * (non-Javadoc)
     * 
     * @see com.sslexplorer.security.SystemDatabase#deleteAuthenticationSchemeSequence(java.lang.String)
     */
    public void deleteAuthenticationSchemeSequence(int id) throws Exception {
        JDBCPreparedStatement ps = db.getStatement("deleteAuthenticationSchemeSequence.delete.authSchemes");
        try {
            ps.setInt(1, id);
            ps.execute();
        } finally {
            ps.releasePreparedStatement();
        }
        ps = db.getStatement("deleteAuthenticationSchemeSequence.delete.authSequence");
        try {
            ps.setInt(1, id);
            ps.execute();
        } finally {
            ps.releasePreparedStatement();
        }
    }

    // 
    // Supporting methods
    //

    Tunnel buildTunnel(ResultSet rs) throws Exception {
        Timestamp cd = rs.getTimestamp("date_created");
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(cd == null ? System.currentTimeMillis() : cd.getTime());
        Timestamp ad = rs.getTimestamp("date_amended");
        Calendar a = Calendar.getInstance();
        a.setTimeInMillis(ad == null ? System.currentTimeMillis() : ad.getTime());
        return new DefaultTunnel(rs.getString("name"), rs.getString("description"), rs.getInt("tunnel_id"), rs.getInt("type"), rs
                        .getBoolean("auto_start"), rs.getString("transport"), rs.getString("username"), rs.getInt("source_port"),
                        new HostService(rs.getString("destination_host"), rs.getInt("destination_port")), rs
                                        .getBoolean("allow_external_hosts"), rs.getInt("parent_resource_permission"), c, a);
    }

    WebForward buildWebForward(ResultSet rs) throws Exception {

        int type = rs.getInt("type");
        int id = rs.getInt("id");
        Timestamp cd = rs.getTimestamp("date_created");
        Calendar created = Calendar.getInstance();
        created.setTimeInMillis(cd == null ? System.currentTimeMillis() : cd.getTime());
        Timestamp ad = rs.getTimestamp("date_amended");
        Calendar amended = Calendar.getInstance();
        amended.setTimeInMillis(ad == null ? System.currentTimeMillis() : ad.getTime());
        int parentResourcePermission = rs.getInt("parent_resource_permission");
        String category = rs.getString("category");
        String name = rs.getString("short_name");
        String description = rs.getString("description");
        String url = rs.getString("destination_url");
        if (type == WebForward.TYPE_REVERSE_PROXY) {
            JDBCPreparedStatement ps2 = db.getStatement("getWebForward.reverseProxy.selectById");
            try {
                ps2.setInt(1, id);
                ResultSet rs2 = ps2.executeQuery();
                try {
                    StringBuffer paths = new StringBuffer();
                    String hostHeader = "";
                    while (rs2.next()) {
                        if (paths.length() > 0) {
                            paths.append('\n');
                        }
                        paths.append(rs2.getString("path"));
                    }
                    JDBCPreparedStatement ps3 = db.getStatement("getWebForward.reverseProxyOptions.selectById");
                    try {
                        ps3.setInt(1, id);
   

⌨️ 快捷键说明

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