クラス LdapUserDetailsManager
- java.lang.Object
-
- org.springframework.security.ldap.userdetails.LdapUserDetailsManager
- 実装済みのインターフェース一覧:
UserDetailsService,UserDetailsManager
public class LdapUserDetailsManager extends java.lang.Object implements UserDetailsManager
UserDetailsManager の Ldap 実装。これは、ユーザーとグループ / ロールがそれぞれ "userDnBase" プロパティと "groupSearchBase" プロパティによって定義された別々のコンテキストに保存される標準設定に基づいて設計されています。
この場合、LDAP は純粋に情報を取得するために使用されており、このクラスは他の UserDetailsService の代わりに認証に使用できます。LDAP 認証プロバイダーのセットアップとは異なり、認証はディレクトリに対して直接実行されません。
- 導入:
- 2.0
コンストラクター概要
コンストラクター コンストラクター 説明 LdapUserDetailsManager(org.springframework.ldap.core.ContextSource contextSource)
方法の概要
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 protected voidaddAuthorities(org.springframework.ldap.core.DistinguishedName userDn, java.util.Collection<? extends GrantedAuthority> authorities)protected org.springframework.ldap.core.DistinguishedNamebuildGroupDn(java.lang.String group)グループ名から DN を作成します。voidchangePassword(java.lang.String oldPassword, java.lang.String newPassword)現在のユーザーのパスワードを変更します。protected voidcopyToContext(UserDetails user, org.springframework.ldap.core.DirContextAdapter ctx)voidcreateUser(UserDetails user)指定された詳細で新しいユーザーを作成します。voiddeleteUser(java.lang.String username)指定されたログイン名を持つユーザーをシステムから削除します。UserDetailsloadUserByUsername(java.lang.String username)ユーザー名に基づいてユーザーを見つけます。protected voidremoveAuthorities(org.springframework.ldap.core.DistinguishedName userDn, java.util.Collection<? extends GrantedAuthority> authorities)voidsetAttributesToRetrieve(java.lang.String[] attributesToRetrieve)voidsetGroupMemberAttributeName(java.lang.String groupMemberAttributeName)グループのメンバーであるユーザーの DN を保持する複数値属性の名前を設定します。voidsetGroupRoleAttributeName(java.lang.String groupRoleAttributeName)voidsetGroupSearchBase(java.lang.String groupSearchBase)voidsetPasswordAttributeName(java.lang.String passwordAttributeName)voidsetRoleMapper(org.springframework.ldap.core.AttributesMapper roleMapper)voidsetUsePasswordModifyExtensionOperation(boolean usePasswordModifyExtensionOperation)ユーザーのパスワードを変更する方法を設定します。voidsetUserDetailsMapper(UserDetailsContextMapper userDetailsMapper)voidsetUsernameMapper(LdapUsernameToDnMapper usernameMapper)voidupdateUser(UserDetails user)指定されたユーザーを更新します。booleanuserExists(java.lang.String username)指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。
メソッドの詳細
loadUserByUsername
public UserDetails loadUserByUsername(java.lang.String username)
インターフェースからコピーされた説明:UserDetailsServiceユーザー名に基づいてユーザーを見つけます。実際の実装では、実装インスタンスの構成方法に応じて、検索で大文字と小文字が区別される場合と、大文字と小文字が区別されない場合があります。この場合、戻ってくるUserDetailsオブジェクトのユーザー名は、実際にリクエストされたものとは異なる場合があります。- 次で指定:
- インターフェース
UserDetailsService内のloadUserByUsername - パラメーター:
username- データが必要なユーザーを識別するユーザー名。- 戻り値:
- 完全に入力されたユーザーレコード (決して
nullではない)
changePassword
public void changePassword(java.lang.String oldPassword, java.lang.String newPassword)現在のユーザーのパスワードを変更します。ユーザー名はセキュリティコンテキストから取得されます。対応する LDAP サーバーの機能に応じて、ユーザーのパスワードを変更するための 2 つの戦略がサポートされています。1 つの方法で設定すると、このメソッドは LDAP パスワード変更拡張操作を介してユーザーのパスワードを変更します。詳細については、
setUsePasswordModifyExtensionOperation(boolean)を参照してください。ただし、デフォルトでは、古いパスワードが指定されている場合、ユーザーとして再バインドすることで更新が行われ、ユーザーの権限を使用してパスワードが変更されます。
oldPasswordが null の場合、更新は、コンテキストソースによって提供される標準の読み取り / 書き込みコンテキストを使用して試行されます。- 次で指定:
- インターフェース
UserDetailsManager内のchangePassword - パラメーター:
oldPassword- 古いパスワードnewPassword- パスワードの新しい値。
createUser
public void createUser(UserDetails user)
インターフェースからコピーされた説明:UserDetailsManager指定された詳細で新しいユーザーを作成します。- 次で指定:
- インターフェース
UserDetailsManager内のcreateUser
updateUser
public void updateUser(UserDetails user)
インターフェースからコピーされた説明:UserDetailsManager指定されたユーザーを更新します。- 次で指定:
- インターフェース
UserDetailsManager内のupdateUser
deleteUser
public void deleteUser(java.lang.String username)
インターフェースからコピーされた説明:UserDetailsManager指定されたログイン名を持つユーザーをシステムから削除します。- 次で指定:
- インターフェース
UserDetailsManager内のdeleteUser
userExists
public boolean userExists(java.lang.String username)
インターフェースからコピーされた説明:UserDetailsManager指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。- 次で指定:
- インターフェース
UserDetailsManager内のuserExists
buildGroupDn
protected org.springframework.ldap.core.DistinguishedName buildGroupDn(java.lang.String group)
グループ名から DN を作成します。- パラメーター:
group- グループの名前- 戻り値:
- 対応するグループの DN(groupSearchBase を含む)
copyToContext
protected void copyToContext(UserDetails user, org.springframework.ldap.core.DirContextAdapter ctx)
addAuthorities
protected void addAuthorities(org.springframework.ldap.core.DistinguishedName userDn, java.util.Collection<? extends GrantedAuthority> authorities)
removeAuthorities
protected void removeAuthorities(org.springframework.ldap.core.DistinguishedName userDn, java.util.Collection<? extends GrantedAuthority> authorities)
setUsernameMapper
public void setUsernameMapper(LdapUsernameToDnMapper usernameMapper)
setPasswordAttributeName
public void setPasswordAttributeName(java.lang.String passwordAttributeName)
setGroupSearchBase
public void setGroupSearchBase(java.lang.String groupSearchBase)
setGroupRoleAttributeName
public void setGroupRoleAttributeName(java.lang.String groupRoleAttributeName)
setAttributesToRetrieve
public void setAttributesToRetrieve(java.lang.String[] attributesToRetrieve)
setUserDetailsMapper
public void setUserDetailsMapper(UserDetailsContextMapper userDetailsMapper)
setGroupMemberAttributeName
public void setGroupMemberAttributeName(java.lang.String groupMemberAttributeName)
グループのメンバーであるユーザーの 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