クラス LdapUserDetailsManager
- 実装されたすべてのインターフェース:
UserDetailsService
,UserDetailsManager
これは、ユーザーとグループ / ロールがそれぞれ "userDnBase" プロパティと "groupSearchBase" プロパティによって定義された別々のコンテキストに保存される標準設定に基づいて設計されています。
この場合、LDAP は純粋に情報を取得するために使用されており、このクラスは他の UserDetailsService の代わりに認証に使用できます。LDAP 認証プロバイダーのセットアップとは異なり、認証はディレクトリに対して直接実行されません。
- 導入:
- 2.0
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected void
addAuthorities
(LdapNameSE userDn, CollectionSE<? extends GrantedAuthority> authorities) protected void
addAuthorities
(org.springframework.ldap.core.DistinguishedName userDn, CollectionSE<? extends GrantedAuthority> authorities) 使用すべきではありません。protected org.springframework.ldap.core.DistinguishedName
buildGroupDn
(StringSE group) 使用すべきではありません。protected LdapNameSE
buildGroupName
(StringSE group) void
changePassword
(StringSE oldPassword, StringSE newPassword) 現在のユーザーのパスワードを変更します。protected void
copyToContext
(UserDetails user, org.springframework.ldap.core.DirContextAdapter ctx) void
createUser
(UserDetails user) 指定された詳細で新しいユーザーを作成します。void
deleteUser
(StringSE username) 指定されたログイン名を持つユーザーをシステムから削除します。loadUserByUsername
(StringSE username) ユーザー名に基づいてユーザーを見つけます。protected void
removeAuthorities
(LdapNameSE userDn, CollectionSE<? extends GrantedAuthority> authorities) protected void
removeAuthorities
(org.springframework.ldap.core.DistinguishedName userDn, CollectionSE<? extends GrantedAuthority> authorities) 使用すべきではありません。void
setAttributesToRetrieve
(StringSE[] attributesToRetrieve) void
setGroupMemberAttributeName
(StringSE groupMemberAttributeName) グループのメンバーであるユーザーの DN を保持する複数値属性の名前を設定します。void
setGroupRoleAttributeName
(StringSE groupRoleAttributeName) void
setGroupSearchBase
(StringSE groupSearchBase) void
setPasswordAttributeName
(StringSE passwordAttributeName) void
setRoleMapper
(org.springframework.ldap.core.AttributesMapper roleMapper) void
setRolePrefix
(StringSE rolePrefix) 権限を変換するときに使用するロールプレフィックスを設定します。void
setSecurityContextHolderStrategy
(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategy
を設定します。void
setUsePasswordModifyExtensionOperation
(boolean usePasswordModifyExtensionOperation) ユーザーのパスワードを変更する方法を設定します。void
setUserDetailsMapper
(UserDetailsContextMapper userDetailsMapper) void
setUsernameMapper
(LdapUsernameToDnMapper usernameMapper) void
updateUser
(UserDetails user) 指定されたユーザーを更新します。boolean
userExists
(StringSE username) 指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。
コンストラクターの詳細
LdapUserDetailsManager
public LdapUserDetailsManager(org.springframework.ldap.core.ContextSource contextSource)
メソッドの詳細
loadUserByUsername
インターフェースからコピーされた説明:UserDetailsService
ユーザー名に基づいてユーザーを見つけます。実際の実装では、実装インスタンスの構成方法に応じて、検索で大文字と小文字が区別される場合と、大文字と小文字が区別されない場合があります。この場合、戻ってくるUserDetails
オブジェクトのユーザー名は、実際にリクエストされたものとは異なる場合があります。- 次で指定:
- インターフェース
UserDetailsService
のloadUserByUsername
- パラメーター:
username
- データが必要なユーザーを識別するユーザー名。- 戻り値:
- 完全に入力されたユーザーレコード (非
null
)
changePassword
現在のユーザーのパスワードを変更します。ユーザー名はセキュリティコンテキストから取得されます。対応する LDAP サーバーの機能に応じて、ユーザーのパスワードを変更するための 2 つの戦略がサポートされています。
一方向に構成されたこのメソッドは、LDAP パスワード変更拡張操作を介してユーザーのパスワードを変更します。
詳細は
setUsePasswordModifyExtensionOperation(boolean)
を参照してください。ただし、デフォルトでは、古いパスワードが指定されている場合、ユーザーとして再バインドすることで更新が行われ、ユーザーの権限を使用してパスワードが変更されます。
oldPassword
が null の場合、更新は、コンテキストソースによって提供される標準の読み取り / 書き込みコンテキストを使用して試行されます。- 次で指定:
- インターフェース
UserDetailsManager
のchangePassword
- パラメーター:
oldPassword
- 古いパスワードnewPassword
- パスワードの新しい値。
createUser
インターフェースからコピーされた説明:UserDetailsManager
指定された詳細で新しいユーザーを作成します。- 次で指定:
- インターフェース
UserDetailsManager
のcreateUser
updateUser
インターフェースからコピーされた説明:UserDetailsManager
指定されたユーザーを更新します。- 次で指定:
- インターフェース
UserDetailsManager
のupdateUser
deleteUser
インターフェースからコピーされた説明:UserDetailsManager
指定されたログイン名を持つユーザーをシステムから削除します。- 次で指定:
- インターフェース
UserDetailsManager
のdeleteUser
userExists
インターフェースからコピーされた説明:UserDetailsManager
指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。- 次で指定:
- インターフェース
UserDetailsManager
のuserExists
buildGroupDn
@DeprecatedSE protected org.springframework.ldap.core.DistinguishedName buildGroupDn(StringSE group) 使用すべきではありません。グループ名から DN を作成します。- パラメーター:
group
- グループの名前- 戻り値:
- 対応するグループの DN(groupSearchBase を含む)
buildGroupName
copyToContext
addAuthorities
@DeprecatedSE protected void addAuthorities(org.springframework.ldap.core.DistinguishedName userDn, CollectionSE<? extends GrantedAuthority> authorities) 使用すべきではありません。addAuthorities
protected void addAuthorities(LdapNameSE userDn, CollectionSE<? extends GrantedAuthority> authorities) removeAuthorities
@DeprecatedSE protected void removeAuthorities(org.springframework.ldap.core.DistinguishedName userDn, CollectionSE<? extends GrantedAuthority> authorities) 使用すべきではありません。removeAuthorities
protected void removeAuthorities(LdapNameSE userDn, CollectionSE<? extends GrantedAuthority> authorities) setUsernameMapper
setPasswordAttributeName
setGroupSearchBase
setGroupRoleAttributeName
setAttributesToRetrieve
setUserDetailsMapper
setGroupMemberAttributeName
グループのメンバーであるユーザーの DN を保持する複数値属性の名前を設定します。通常、これは uniquemember (デフォルト値)または member です。
- パラメーター:
groupMemberAttributeName
- グループメンバーの格納に使用される属性の名前。
setRoleMapper
public void setRoleMapper(org.springframework.ldap.core.AttributesMapper roleMapper) setUsePasswordModifyExtensionOperation
public void setUsePasswordModifyExtensionOperation(boolean usePasswordModifyExtensionOperation) ユーザーのパスワードを変更する方法を設定します。true
に設定されている場合、changePassword(java.lang.String, java.lang.String)
はパスワード変更拡張操作を介してユーザーのパスワードを変更します。false
に設定されている場合、changePassword(java.lang.String, java.lang.String)
は対応するエントリの属性を直接変更してユーザーのパスワードを変更します。この設定を使用する前に、対応する LDAP サーバーがこの拡張操作をサポートしていることを確認してください。
デフォルトでは、
usePasswordModifyExtensionOperation
は false です。- パラメーター:
usePasswordModifyExtensionOperation
- パスワード変更拡張操作を使用してパスワードを変更するかどうか- 導入:
- 4.2.9
setSecurityContextHolderStrategy
public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategy
を設定します。デフォルトのアクションは、SecurityContextHolder
に格納されているSecurityContextHolderStrategy
を使用することです。- 導入:
- 5.8
setRolePrefix
権限を変換するときに使用するロールプレフィックスを設定します。デフォルト値は "ROLE_" です。- パラメーター:
rolePrefix
- ロールの接頭辞- 導入:
- 6.3