2011-08-20 18 views
7

私はGrailsの使用を開始したばかりですが、spring-securityとspring-security-uiプラグインをインストールしました。私はhereというチュートリアルに従っています。アプリケーションは、ブートストラップされた1人のユーザーから起動します。meROLE_ADMINパーミッションGrails/Spring Security:新しく作成されたユーザでログインできません

UIオーバーライドスクリプトを使用すると、登録機能を起動して実行することができ、すべて正常に機能します。今、ユーザー管理スクリプト(grails s2ui-override user)をインストールして、ユーザーの追加、編集、削除を試みました。

新しいユーザーがうまく作成されました。これをHSQLDBインスタンスに対してチェックしました。ただし、アプリケーションからログアウトして新しく作成したユーザーでログインしようとすると、提供されたユーザー名とパスワードでユーザーを見つけることができないことがアプリケーションから通知されます。

私はデフォルトのログアウト処理を変更していないので、ドキュメントがセッションを無効にすると言う/j_spring_security_logoutを使用しています。

これは既知の問題ですか?もしそうなら、どうすればこの問題を回避することができますか?

編集:

この問題はUIを追加しなくても保持されます。新しいユーザーとして登録する。電子メール認証が完了すると、サイトに自動ログインします。今すぐログアウトして、もう一度ログインしてみてください。同じエラーが発生します。

FINAL EDIT:

UIプラグインは、まだパスワードをエンコードしRegisterControllerが付属しています。しかし、コアに付属している新しいドメインクラスもこれを実行しているので、コントローラは実行しないようにすることをお勧めします。私は、少なくとも基本的なシナリオでは、エンコーディングとログイン/ログアウトが動作する行をコメントアウトしました。そのチュートリアルの警告があり

+0

ログアウト後にHSQLDBをチェックしましたか?ユーザーはまだテーブルにいますか? – add9

+0

@imellan:はい、ユーザーはログアウトしてもテーブルに残っています。実際には、リセットパスワード(春のセキュリティUIを使用)を行い、新しいパスワードで再ログインすることができます。 –

+0

springSecurityService.encodePassword()をプロセスのどこかで使用していますか? – add9

答えて

7

プラグインの

以前のバージョンでは、ドメインクラスでのパスワード暗号化ロジックが含まれていませんでしたが、それは、コードロットクリーナーになります。

私は、security-uiプラグインがその変更について知らず、暗号化されていないパスワードとデータベース上の暗号化されたパスワードを比較していると推測しています。

+0

私はそれを疑う。私が言及した追加のシナリオを参照してください。 UIの強化がなくても起こります。 –

+1

あなたは正しいです。 UIプラグインは変更で更新されません。素晴らしいキャッチ!私はRegisterControllerを見直しましたが、これはまさに問題です!私は以前あなたに耳を傾けて欲しかった。ありがとう:) –

+0

ようこそ。私はshiroプラグインとそのドキュメントを使って同様の問題を抱えていました。 –

3

私の問題を解決することができました。問題は二重暗号化でした。 41行目のユーザコントローラの春のセキュリティの下では、パスワードは暗号化されていましたが、再度ドメインクラスによって暗号化されていました。ログイン時には、二重暗号化パスワードと一文暗号化パスワードを比較していました。この問題を解決するために、パスワードを暗号化していたユーザコントローラの41行目をコメントアウトしました。

EDIT:コントローラを編集する場所を知りませんでした。ダウンロードしたプラグインのソースコードを見つけることができますユーザー・ホームの

/.grails/version/projects/projectname/pluginsに編集するため

ディレクトリには(少なくともMacの/ Linux上で、知らんあなたは窓のそれを見つけるだろう場所)。

+0

プラグインディレクトリでダイビングしてファイルを編集するのが最善の方法であるかどうか分かりません。影響を受けるクラスをs2uiスクリプトを使ってオーバーライドし、オーバーライドされたバージョンで必要な変更を加えることをお勧めします。 –

関連する問題