2011-12-28 5 views
4

私は春のセキュリティを認証に使用しています。認証は正常に動作しています。認証後には、春のセキュリティ設定ファイルでデフォルトのターゲットURLを使用して説明したhtmlにリダイレクトされません。私は簡単なメッセージ成功を得ています。設定済みのhtmlページは表示されません。私はリダイレクトのために以下の行を追加しました。春はデフォルトのターゲットURLにリダイレクトされていませんか?

<form-login login-page="/login.jsp" default-target-url="/welcome.html"/> 

私は設定するものがありません。

ありがとうございます!

答えて

13

ユーザーが保護されたリソースを要求した後にログインページに送信された場合、ログインに成功した後に最初に要求されたページに送信されます。 default-target-urlは、ユーザーが保護されたリソースを最初に要求することなくログインした場合(つまり、ログインページに直接ナビゲートした場合)にのみ使用されます。あなたは、常にデフォルト・ターゲットのURLに移動したい場合は、ブラウザが認証されたセッションを必要とするリソースを要求した場合、ここで興味深いの落とし穴がある

<form-login login-page="/login.jsp" 
      default-target-url="/welcome.html" 
      always-use-default-target="true"/> 
+0

これは問題です。ログインに成功した後でdefault-target-urlしか持っていなくても、私は/FAVICON.ICOを奇妙に思っていました。 –

+0

これは私が探していたものです;) –

2

下の例のように、あなたはalways-use-default-target =「true」を指定することができます - 例えばユーザーにログインする必要があるjavascriptファイルを要求すると、これは403エラーを生成します。これは、springまたはweb.xmlで設定されたエラーページがあると、ユーザーをリダイレクトします。ユーザーがログインしないとき

はその後、最後の春には、要求されたユーザーはエラーページだったと

0

私が知っているあなたは春に設定するようにユーザーがエラーページにリダイレクトしていないデフォルトのページを取得します考えていますこれはかなり古い質問ですが、今でもこの問題を抱えるユーザーもいます。

  1. welcome.htmlページ(コンテキストパスを基準にして)にアクセスできることを確認してください。 intercept-urlを削除するか、ログイン後に直接アクセスできます。
  2. always-use-default-target="true"
  3. セッション管理を指定した場合は、最初にinvalid-session-urlにリダイレクトされていないことを確認してください。
0

画像に見られるように、悪いデザイン(IMOの場合は常にthe default-target-urlにリダイレクトする必要があります)があります。禁止されたリソースからログインURLに行くと、そのURLにリダイレクトされ、default-target-urlを経由しません。 ちょうどalways-use-default-target="true"を使用して、あなたが望む行動

http://i.stack.imgur.com/fj9ou.png

0

を持つことになり、私は同様の問題があったと答え上記の私にヒントを与えたが、私はJavaのクラス次の中から直接コンフィグを使用していますので、私を助け:

docs.spring.ioで見つけることができます:

defaultSuccessUrl(文字列defaultSuccessUrl、ブールalwaysUse)したがって

ワットを鶏は

.defaultSuccessUrl("/home", true) 

問題が解決したに

.defaultSuccessUrl("/home") 

を変更しました。

関連する問題