0

などの追加のプロパティを含むLdapUserDetailsMapperカスタム クラスに拡張プロパティをマップするカスタム クラスを作成しました。に対してプロパティにアクセスすることにより、これらのプロパティを設定することができました。UserDetailsdisplayNametelephoneNumberdepartmentDirContextOperation

res.givenName = ctx.getStringAttribute("givenName");

ただし、これをハードコーディングしたくはありません。これらのプロパティを構成可能にしたいと考えています。これは問題ありませんが、LDAP 式を使用して、その式の結果の値を返すことも必要です。つまり、

res.givenName = ctx.getStringAttribute("givenName + ' ' + sn");

もちろん、これは機能しません。手動でパターンを解析し、連結の前にコンポーネントを取得することもできますが、これは、フレームワークが既に提供できる作業のように思えます。

4

1 に答える 1

1

私が考える解決策の 1 つは、Spring Expression Languageを使用することです。EvaluationContextインスタンスをルート オブジェクトとして受け取り、DirContextOperationsプロパティの読み取りをそのgetStringAttribute()メソッドに転送する独自の実装を行います。この場合の式は正確には LDAP 式ではありませんが、SpEL の方が強力なので、さらに優れている可能性があります。

于 2013-02-23T09:02:05.060 に答える