1

http://example.com/homeのような URL から jsb3 ファイルを生成したいと考えています。保護されています。ログインしたユーザーのみがこれを見ることができます。ユーザーはhttp://example.com/にログインします。コントロール パネル ('/home' にログインした後) は ExtJS で完全に記述されています。Cookie がないため、Sencha ツールはアクセスできません。

そのようなURLのJSB3ファイルを作成するにはどうすればよいですか?

私は通常これを

sencha create jsb -a http://example.com/home -p home.jsb3

ただし、sencha はログインする必要があります。既存の Cookie ヘッダーを使用する方法がある場合。私はそれを使うことができたでしょう。

これを修正するオプションは、URL をファイルとしてダウンロードし、senchaこのファイルをローカル ファイルとしてフィードすることです。しかし、それには問題があります。senchaエラーをスローします!

$ sencha create jsb -a home.html -p home.jsb3
Error thown from your application with message: TypeError: 'null' is not a constructor
4

1 に答える 1

0

これは、アプリケーション環境によって異なります。私は Java 環境で同じ問題を抱えています。これを回避する方法を次に示します。あなたの状況では、同様のソリューションを使用できる場合があります。

私たちの認証は Shiro によって管理されているため、私たちの場合、匿名ユーザーを回避する場所です。Shiro は、URL とそれらへのアクセスが許可されているユーザー ロールをリストしたファイルからセキュリティ情報を読み取ります。この構成では、標準の場所でそのファイルを探します。これは、実際のセキュリティ設定を配置する場所です。Java サーバーを起動するときに JVM プロパティを設定することで、その場所をオーバーライドできます。

sencha create を実行したい場合、すべてのリソースへの匿名アクセスを許可するカスタム セキュリティ ファイルを指す Java サーバーを起動します。これで、phantom.js は承認なしでページを読み込むことができます。(sencha create がページをロードするために使用するヘッドレス ブラウザ phantom.js)。

次に、上で指定したとおりに正確に sencha create を実行します。

これの欠点は、アプリケーションが匿名ユーザーに対して例外をスローしないようにする必要があることです。アプリケーションは常に認証を必要としますが、すべての JavaScript が匿名ユーザーに対して適切に読み込まれるようにする必要があります。

于 2012-09-13T22:46:05.683 に答える