0

私のアプリケーションはフォームをサーバーに完全に送信し、「フォームが送信されました」や「申し訳ありませんが、問題が発生しました!」などのサーバーから受信した応答メッセージを表示します。

ただし、すべてのユーザーがフォームページにアクセスできるようにする必要がありますが、許可されたユーザーのみがフォームを送信できる必要があります。そのため、ユーザーが保護されたページにアクセスしようとすると、ユーザーをインデックス ページにリダイレクトするように構成された Spring セキュリティを使用します。

ここまではすべて正常に動作しますが、問題は、message.jsp ページを使用してサーバーから返されたメッセージを表示しているため、承認されていないユーザーがフォームを送信しようとすると、インデックス ページがメッセージの本文として表示されることです。 jsp ページであり、message.jsp ページはメッセージを表示するために使用されるため、私の form.jsp ページには index.jsp ページが表示されます。

問題を解決するには?または、この問題を回避するために、form.jsp ページにサーバー メッセージを表示する方法を教えてください。

フォーム.jsp

  function Add(value){
        if(window.XMLHttpRequest)
        {
            xmlhttp = new XMLHttpRequest();
        }
        else
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
                document.getElementById("msg").innerHTML = xmlhttp.responseText;
            } 
        }
        xmlhttp.open("get","add?myvalue="+value,false);
        xmlhttp.send();
    }
    .....

     form goes here

    <label id="msg"></label>

formSubmit.java

private String ServerMessage;
  public String add(){
    ....
    if(result)
      this.ServerMessage = "form is submitted";
    else
      this.ServerMessage = "sorry, something went wrong!" 
    return "successful";   
}
....

struts.xml

<result name="successful">message.jsp</result>

メッセージ.jsp

   required library goes here
   <s:property value="ServerMessage"/> 
4

1 に答える 1

2

次のようなものを追加します。

<error-page> <error-code>403</error-code> <location>/403.jsp</location> </error-page>

あなたにweb.xml。ユーザーが特定の URL へのアクセスを許可されていない場合、Http エラー 403 がスローされます。これは、spring-security で定義されたuser_roleに基づいています。
例えば

<intercept-url pattern="" access="" />

ここで、pattern は URL パターンを示します。access には、パターンにアクセスできるロールが含まれます。パターンは like/index/**または/indexそれ自体である可能性があります。春のセキュリティの公式ドキュメントをご覧ください。

(特定の場所に適切なjspが形成されていることを確認してください。私の場合、403.jspはディレクトリの下にありWebContentます。)

于 2013-05-24T05:20:16.010 に答える