国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

使用 Java 連接處于proxy(or 防火墻)之外的HTTP服務(wù)器

2019-11-18 13:46:15
字體:
供稿:網(wǎng)友

  我到sun站點上,發(fā)現(xiàn)他們的java Applet聊天室能夠突破PRoxy,
我在公司的局域網(wǎng)可以使用的,而一般的java程序是不能夠的。
大家可以去分析一下他們的程序


本技巧將向您講述如何編寫可通過代理訪問因特網(wǎng)上的 Web 服務(wù)器的 Java 應(yīng)用程序。在 Java 應(yīng)用程序中加入代理支持只需額外編寫幾行代碼,且不依靠任何安全性“漏洞”。
幾乎所有的公司都十分關(guān)注保護(hù)自己的內(nèi)部網(wǎng)絡(luò),以防黑客及入竊者。一種常見的安全措施是完全斷開與因特網(wǎng)的連接。假如黑客們不能連接到您的任何一臺機器,他們就不能非法進(jìn)入您的系統(tǒng)。這種策略產(chǎn)生的不利副作用是,內(nèi)部用戶無法訪問外部的因特網(wǎng)服務(wù)器,如 Yahoo 或 JavaWorld。為了解決這一問題,網(wǎng)絡(luò)治理員通常安裝“代理服務(wù)器”。實際上,代理是安裝于因特網(wǎng)和內(nèi)部網(wǎng)之間的一種服務(wù),用來治理這兩個領(lǐng)域之間的連接。代理有助于減少安全性的外部威脅,同時還答應(yīng)內(nèi)部用戶訪問因特網(wǎng)服務(wù)。盡管 Java 使得編寫因特網(wǎng)客戶機不再困難,但是假如客戶機不能通過代理,則它們毫無用處。幸運的是,Java 使得使用代理支持不再困難 -- 假如您知道密訣,這就是事實。
將 Java 和代理結(jié)合起來的秘訣即在 Java 運行時激活特定的系統(tǒng)屬性。這些屬性未被寫入正式文件,只是作為 Java 傳說的一部分在 Java 編程人員中秘傳。為了支持代理,Java 應(yīng)用程序不僅需要指定代理本身的信息,而且需要指定用于認(rèn)證的用戶信息。在開始使用網(wǎng)際協(xié)議之前,您需要在程序中添加以下幾行代碼:

System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "myProxyMachineName" );
System.getProperties().put( "proxyPort", "85" );


上面的第一行通知 Java 您要通過代理進(jìn)行連接,第二行指定代理所在的機器,第三行指定代理監(jiān)聽的端口。有些代理在授權(quán)用戶訪問因特網(wǎng)之前,要求用戶輸入用戶名和口令。假如您使用位于防火墻之內(nèi)的 Web 瀏覽器,您就可能碰到過這種情況。以下是執(zhí)行認(rèn)證的方法:

URLConnection connection = url.openConnection();
String passWord = "username:password";
String encodedPassword = base64Encode( password );
connection.setRequestProperty( "Proxy-Authorization", encodedPassword );


這段代碼的思想是,您必須調(diào)整 HTTP 標(biāo)頭以發(fā)出用戶信息。這是通過調(diào)用 setRequestProperty() 來實現(xiàn)的。這種方法答應(yīng)您在發(fā)出請求之前處理 HTTP 標(biāo)頭。HTTP 要求用 base64 對用戶名和口令進(jìn)行編碼。幸運的是,有一組公用域 API,它們將代您執(zhí)行編碼(請參閱參考資源部分)。

如您所見,在 Java 應(yīng)用程序中加入代理支持并不需要做多少工作。有了現(xiàn)在的知識,再做一點研究(您必須查明您的代理是如何處理您感愛好的協(xié)議以及如何進(jìn)行用戶認(rèn)證的),您就能用其他協(xié)議實現(xiàn)代理。

FTP 代理
Scott D. Taylor 提出這個秘訣來處理 FTP 協(xié)議代理:

defaultProperties.put( "ftpProxySet", "true" );
defaultProperties.put( "ftpProxyHost", "proxy-host-name" );
defaultProperties.put( "ftpProxyPort", "85" );


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永吉县| 湘乡市| 磴口县| 都安| 扎鲁特旗| 尼勒克县| 盐城市| 胶州市| 江阴市| 湘西| 尉氏县| 太康县| 怀安县| 饶阳县| 乌兰浩特市| 安宁市| 北碚区| 扶沟县| 芮城县| 蓝田县| 察隅县| 怀集县| 怀安县| 改则县| 湖北省| 汝阳县| 通山县| 临泉县| 资兴市| 磐石市| 潜江市| 余庆县| 丁青县| 宜兰市| 那曲县| 布拖县| 射洪县| 肥西县| 慈利县| 双流县| 留坝县|