2011-11-07 18 views
0

すべて、春のセキュリティ - 奇妙なエラー

私は自分のWebアプリケーション(春3.0.6、タイル2.2)に春のセキュリティ(3.0.7)を追加しようとしています。デフォルトの<はform-login/>が正常に動作しますが、カスタムのものを作成することはできません。いくつかの問題が発生しました:ユーザーがログインリンクをクリック

  1. たびに、ログインページが二回呼び出される
  2. ユーザーが存在しない場合UserDetailsS​​erviceは例外がスローされますが、例外はどこにも拾われることは決してありません使用されます。これにより、<フォームログイン/ >は、authentication-failure-urlの代わりにログインページにルーティングされます。
  3. 悪質なユーザー名でログインするとエラーメッセージが表示されません。これは上記の)
  4. ログインに成功すると、正しいページが開き、ページ内で参照されていたjavascriptファイルがランダムに開きます。

私はそこですべてのチュートリアルに従ってきましたが、何か働いていると思いません。誰かが、デフォルトのログインを作成するクラスを知っていますか?おそらく私はソースコードを見て、彼らが持っているものを真似ることができます。

誰もこのような奇妙な行動を経験しましたか?

答えて

0

私は2つの問題を把握しました。他の誰かが同じことが起こった場合に私はそれらを掲示しています。

#1 /#4:このサイトはタイルを使用していて、サイト全体でデフォルトのhtmlヘッダーブロックが使用されていました。

<html> 
<head> 
    <script src="foo.js" type="text/javascript"> 
</head> 

設定expliciltyはログインしていなかったユーザーのためのこのJavaScriptファイルをブロックされています。

<intercept-url pattern="foo.js" access="isAuthenticated()"/> 

ユーザーがホームページに来たときに、サイトがfoo.js.を除いロードしログインする前にfoo.jsのメソッドが呼び出されることはないので、すべてが正常に動作しているようです。

誰かがログインしようとしたとき、Spring Securityはfoo.jsを最初に表示された保護されたページと見て自動的に開きました。

このため、ログインページが2回呼び出されました。実際のログインリンク用に1回、foo.jsファイル用に1回。

+0

問題2と3もわかりました。私はログイン失敗ページを「許可済み」リストに追加するのを忘れていたので、通常のログインページに常に再ルーティングされました。 user973479