Basic認証を越える方法

Basic認証のかかったエリアにデータを投げたり、取得したり、ということがある。整理したかったので確認。

Basic認証を越える方法http://blog.nipx.jp/archives/3167を参考にした。

同じドメイン内からの接続はスムーズに行ったのだけれども、別ドメインからの読み込みではとまどった。結局、crossdomain.xmlに次の行が必要だった。


◆同じドメインからPOST/GET
[kml_flashembed movie=”http://www.mztm.jp/wp/wp-content/uploads/2015/11/BasicAuthentication.swf” width=”700px” height=”400px” /]

◆別ドメインからPOST/GET

Basic認証を越える方法 – wonderfl build flash online

◆IE(Edge)の問題
IE(Edge)では「http(s)://username:password@server/resource.ext」の書式がサポートされないので、今回の方法ではGETができない。

◆Visual StudioのWebBrowserコンポーネントの問題
Visual StudioのWebBrowserコンポーネントからはGETはできたが、POSTができなかった。
ただ、この確認は別なテスト用に作ったアプリだったので、何らかの設定を行えば、POSTができるかもしれない。
また、Shockwave Flash Objectコンポーネントでの動作確認はしていない。

◆詳細未検証今後の課題メモ
http://id@pw:www.mztm.jp:80/
のように、ポート番号の指定と一緒にするとうまくいかなかった。

◆ファイル一式
https://github.com/umhr/BasicAuthentication

◆参考
http://blog.nipx.jp/archives/3167
http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=605&forum=7&post_id=6065
http://www.senocular.com/pub/adobe/crossdomain/policyfiles.html

◆おまけ

//BulkLoaderを使うときはこんな感じで。
// Base64はas3crypto.swcを使う。
var id:String = "id";
var pw:String = "password";
var headers:Array/*URLRequestHeader*/ = [];
headers.push(new URLRequestHeader("Authorization", "Basic " + Base64.encode(id+":"+pw)) );

_bulkLoader.addEventListener(BulkLoader.COMPLETE, bulkLoader_complete);
_bulkLoader.add("http://mztm.jp/hoge.txt", { "id":"hoge", "headers":headers } );
_bulkLoader.start();