問題タブ [hdiv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - パラメーターを使用した POST の HDIV INVALID_CONFIDENTIAL_VALUE
JSP に次のコードがあります。
これはうまくいかないようです。ボタンをクリックするUpdate
と、コンソールにエラーが記録されますINVALID_CONFIDENTIAL_VALUE
。
ただし、POST メソッドもあるがパラメーターを持たないフォームは機能しているようです。
私のフォームで何が間違っている可能性がありますか?
次の HDIV 構成があります。
spring - HDIV + Spring タグ ライブラリ (フォーム) = エラー、バグの可能性?
タグ Spring 要素 "< form:form >" を使用して HDIV を使用すると問題が発生します。
まず、アプリケーションのアーキテクチャについて説明します。Spring フレームワーク 4.1.6、Spring Security 4.0.0、および HDIV 2.1.10 を使用しています。
これまでのところ、開発中にエラーは発生していませんが、Spring のフォーム タグを使用しているときに、jsp ファイルにエラーが見つかりました。
34 行目でこのエラーを取得しました: "< form:form "
java.lang.NullPointerException at org.hdiv.web.servlet.support.HdivRequestDataValueProcessor.processAction(HdivRequestDataValueProcessor.java:122) at org.springframework.web.servlet.tags.form.FormTag.processAction(FormTag.java:479) org.springframework.web.servlet.tags.form.FormTag.resolveAction(FormTag.java:433) at org.springframework.web.servlet.tags.form.FormTag.writeTagContent(FormTag.java:349) at org.springframework. org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) の web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) org.apache.jsp.WEB_002dINF.jsp. newUser_jsp._jspx_meth_form_005fform_005f0(newUser_jsp.java:197) org.apache.jsp.WEB_002dINF.jsp.newUser_jsp._jspService(newUser_jsp.java:137) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) で javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
and more at.....(必要であれば提供できます)
同じコードを試してみると、タグ「< form:form >」をタグ「< form >」に交換すると機能します。
HDIV のコードを詳しく調べたところ、次のようになりました。
HdivRequestDataValueProcessor.class
'form:form' は 'form' とは異なる構造を持っているためか、HDIV は 'action' や 'method' などのいくつかのパラメーターを見つけられないのではないかと思いました...しかし、よくわかりません。
また、より有用な情報を提供するために構成ファイルを添付しました (Java ベースの構成):
WebApplicationInit.class
HdivSecurityConfig.class
SecurityConfig.class
}
SecurityWebApplicationInit.class
前もって感謝します!!
よろしくお願いします、
アルベルト
- - 編集 - -
与えられた例に従って、これは私のコードです:
WebApplicationInit.class
HDIVSecurityConfig.class
web.xml
newUser.jsp
MvcConfig.class
}
HDIV を Web アプリケーションに追加する方法を変更し、java ベースの構成を使用する代わりに、xml ファイルに追加しました。さらに、サンプルを使用してQualifierタグ(MvcConfig.class)を追加しましたが、使用すると機能しません...(Beanが見つからない...)。nullエラーは消えていません...
java - フォーム選択内の forEach の HDIV エラー
form:select
HDIV での実装に問題があります。セレクターとオプションをレンダリングする JSP のコードは次のとおりです。
割り当てをクリックしてアクションを開始するとController
、選択した の正しい ID を持つリクエストが に届きform:option
ます。
しかし、コンソールを調べたところ、次のエラーがありました。
INVALID_CONFIDENTIAL_VALUE;/pmsys/project/assign/staff;staffID;27;[27, 28, 29, 30, 31, 32, 41];127.0.0.1;127.0.0.1;root
エラーを吐き出すコード行をトレースしようとしたとき:
org.hdiv.filter.ValidatorHelperRequest:948
この条件が評価されたとき
、originalValue
と パラメータに矛盾がありました:value
if (!m.matches() || (Integer.valueOf(value).intValue() >= stateValues.size())) {
originalValue
= [27, 28, 29, 30, 31, 32, 41]
value
form:option
= 27 (これは、JSP で選択したの ID 番号です)
誰にもこの問題の解決策はありますか? これは HDIV のバグでしょうか?
注:<c:forEach
inside
がない場合、この問題は発生しません<form:select
。
更新: これは私のhdiv 構成です:
WEB.xml _
とバージョン
<hdiv-version>2.1.9</hdiv-version>
<org.springframework>4.1.6.RELEASE</org.springframework>
jquery - HDIV + Jquery データ テーブル + JSON
HDIV を既存のアプリケーションに統合しようとしています。しかし、次のユースケースでCSRFトークンに関する問題に直面しています。
使用事例:
データを表形式でレンダリングするために、JQuery データ テーブルを使用します。ハイパーリンクを持つデータ テーブル列があります。JQUERY データ テーブルのレンダリングに使用される JSON データに基づいて生成される各ハイパーリンクに、CSRF トークンを追加する必要があります。
理想的には、HDIV ドキュメントに従って、サーバーで CSRF トークンを生成するために、すべての URL をc:urlまたはspring:urlタグに埋め込む必要があります。しかし、Jquery Data テーブルは JSON inorder を使用して、データ テーブルのデータとハイパーリンクをレンダリングします。
spring:url (サーバーで実行) をデータ テーブル生成 (ブラウザーで実行) に使用される動的 JSON で使用できないため、JSON データを使用して生成されたハイパーリンクに CSRF トークンを追加する必要があることを HDIV に知らせるにはどうすればよいですか?
ajax - HDIV - Ajax リクエストで URL パラメータ値を変更するには?
HDIV を既存のアプリケーションに統合しようとしています。しかし、私は以下の問題を解決することに行き詰まっています。
ユースケース: 1. 膨大な数のフィールドを持つ大きなフォームがあります。ドロップダウンの値を変更するときは、選択した値を URL パラメーターとして渡して Ajax 呼び出しを行います。元:
$.get("http:://ajaxurl?dynamicParam=1", function(data) {/新しい HTML コンテンツを既存のページにレンダリング/});
$.get("http:://ajaxurl?dynamicParam=2", function(data) {/Render new HTML Content to existing page**/}); 等
問題: ドロップダウンで値を選択すると、別の値が ajax パラメータに渡され、HDIV が INVALID_PARAMETER_VALUE エラーをスローします。
私が見ることができる唯一の解決策は、フォーム全体を _MODIFIED_HDIV_STATE 値で送信する必要があるということです。
しかし、Ajax 呼び出しの一部として値を 1 つだけ渡すために、フォーム全体 (非常に多くのデータがある) を送信することはできません。また、多くの場所でアプリケーション全体で同じユース ケースがあるため、HDIV 検証をバイパスするためにパラメーターを除外することはできません。
FORM submit でできるように、変更された HDIV 状態を AJAX 呼び出しの一部として渡す方法はありますか? または、これを解決する方法を教えてください。
この問題を解決するために私を助けてください。(HDIV をほとんどのアプリケーションに統合した後、途中で立ち往生しています)
spring - HDIV の使用例: HDIV で保護されたサイトに投稿するサード パーティ サイトとの統合
以下のような特定のユースケースで、Spring MVC アプリケーションに対して HDIV 保護が機能するかどうかを知りたいと思いました。
ユース ケース 1 - HDIV で保護されたサイトへのサード パーティの Web サイトの投稿 (ログイン認証なし)。フローは次のとおりです - サード パーティのサイト -> フォーム ポスト -> HDIV 保護ページ -> パラメーターの検証 -> ビジネス プロセス用の別の HDIV 保護ページへの転送- この場合、開始 URL を構成するにはどうすればよいですか?
ユース ケース 2 - サード パーティの Web サイトが iframe を介して HDIV で保護された Web サイトのページにアクセスしたい