allauthを使用してDjangoアプリを構築しています。
認証が必要なページがあり、そこにJavaアプレットを配置します。このアプレットは、Jsonオブジェクトを返す(同じdjangoプロジェクトの)他のページへのGETリクエストを実行します。
アプレットは、JSObjectを使用して、親WebページからCSRFトークンを取得します。
問題は、すべてのページを認証制御で設定したいのですが、アプレットの親WebページからセッションID Cookieを取得できないため、データを取得(または保存)するためにGET(およびPOST)を実行できないことです。
これを入手するのは簡単な方法かもしれませんが、私は初心者で、何も見つかりませんでした。
何か必要かどうか自由に聞いてください。
ありがとうございました。
編集:
階下に書いたことがありますが、sessionid cookieがHTTPOnlyとしてマークされていることがわかりました。そのため、問題は、アプレットがPOSTおよびGET要求を実行できるようにする最も安全な方法です。たとえば、ページにJSメソッドを作成して、データを取得してアプレットに渡すことができますか?たぶん私がPOSTを行うことができるのと同じ方法ですか?
編集:
ページからjquery呼び出しを使用して、データを正常に取得しました。ここでの問題は、コードがInvocationTargetExceptionをスローすることです。問題の位置はわかりましたが、解決方法がわかりません。
Jqueryコードは次のとおりです。
function getFloor() {
$.get(
"{% url ... %}",
function(data) {
var output = JSON.stringify(data);
document.mapGenerator.setFloor(output)
}
);}
そして、ここにアプレットの2つの機能があります。**の部分が問題の原因です。
public void setFloor(String input) {
Floor[] f = Floor.parse(input);
}
public static Floor[] parse(String input) {
**Gson gson = new Gson();**
Floor[] floors = gson.fromJson(input, Floor[].class);
return floors;
}
そして、ここに私のサーバーに出力されるログがあります。ここでは、アプレットが(アプレットからではなく)サーバーからGsonのライブラリをロードしようとしていることがわかります。
"GET /buildings/generate/com/google/gson/Gson.class HTTP/1.1" 404 4126
Somebadyは私を助けることができますか?