1

私はGrailsを初めて使用し、バージョン2に移行しました。SpringSecurity3を使用するプロジェクトを開発していますが、これは正常に機能していますが、組織のLDAPサーバー(使用可能な場合)を使用して以下をせよ:

  • ユーザーを認証する
  • LDAPからの詳細でローカルユーザーデータを更新します
  • 存在しない場合はユーザーを作成します
  • ローカルユーザーのパスワードを更新します(LDAPサーバーが利用できない場合)
  • そのユーザーをログインします

これを機能させるために、Grailsが実際にどのように機能するかなど、多くの基本的なことをスキップした可能性があります。LDAPルックアップを使用してSpring Security認証プロセスを実際に中断する方法と、それらの詳細を取得する方法を理解するのに苦労しています。それらを使用して、既存のユーザーを更新するか、新しいユーザーを作成することができるように戻します...

ここで基本的なチュートリアルを見つけました:http://jamesjefferies.com/2011/01/06/grails-spring-security-ldap/これは、LDAPサーバーからユーザーとして自分自身を認証できることを意味します-SpringSecurityはまだ私に次のように表示しますログアウトしましたが、手動でログアウトするまでログインできません...そのため、login-limboになります。

魔法は頭を悩ませています...最初は、いくつかのコマンドと数時間のカスタマイズでWebアプリ全体を構築できることに驚いていましたが、有用な例がないため、今では再び噛み付いています。 ...そしてSpringSecurityLDAPプラグインのドキュメントがやや不足しています(または私の理解不足かもしれません)。

したがって、主に、既存のユーザーのユーザーデータベースをチェックして更新するか、存在しない場合はユーザーを作成するように認証を完了するための支援が必要です...しかし、誰かが与えることができれば私もそれが大好きですGrailsでの認証プロセスの概要を説明し、実際に何が起こっているのか、どこで傍受すべきかを理解できるようにします。

助けを求めて事前に乾杯

スティーブ

4

1 に答える 1

0

カスタムユーザー詳細マッパーを実装する方法を示す良い例がここにあります。LDAPログインGrails2.0アプリでその方法を正常に使用しました。基本的に、UserDetailsContextMapperインターフェースを実装するCustomUserDetailsContextMapperがあり、これを使用して、Beanをconf>spring>resources.groovyに登録することでデフォルトの実装をオーバーライドします。次に、CustomUserDetailsContextMapper内で、一致するユーザー名を持つユーザー(ドメインクラス)を確認し、ユーザーが存在しない場合は、LDAPクエリ結果のデータを含むctx.originalAttrsのデータを使用してユーザーを作成します。次に、新しいorg.springframework.security.core.userdetails.Userを返す必要があります。このクラスを拡張して、プリンシパルオブジェクトから直接アクセスできるようにする他のフィールドを追加できます。

于 2012-01-20T14:14:15.507 に答える