クラス 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 void
addAuthorities(org.springframework.ldap.core.DistinguishedName userDn, java.util.Collection<? extends GrantedAuthority> authorities)
protected org.springframework.ldap.core.DistinguishedName
buildGroupDn(java.lang.String group)
グループ名から DN を作成します。void
changePassword(java.lang.String oldPassword, java.lang.String newPassword)
現在のユーザーのパスワードを変更します。protected void
copyToContext(UserDetails user, org.springframework.ldap.core.DirContextAdapter ctx)
void
createUser(UserDetails user)
指定された詳細で新しいユーザーを作成します。void
deleteUser(java.lang.String username)
指定されたログイン名を持つユーザーをシステムから削除します。UserDetails
loadUserByUsername(java.lang.String username)
ユーザー名に基づいてユーザーを見つけます。protected void
removeAuthorities(org.springframework.ldap.core.DistinguishedName userDn, java.util.Collection<? extends GrantedAuthority> authorities)
void
setAttributesToRetrieve(java.lang.String[] attributesToRetrieve)
void
setGroupMemberAttributeName(java.lang.String groupMemberAttributeName)
グループのメンバーであるユーザーの DN を保持する複数値属性の名前を設定します。void
setGroupRoleAttributeName(java.lang.String groupRoleAttributeName)
void
setGroupSearchBase(java.lang.String groupSearchBase)
void
setPasswordAttributeName(java.lang.String passwordAttributeName)
void
setRoleMapper(org.springframework.ldap.core.AttributesMapper roleMapper)
void
setUsePasswordModifyExtensionOperation(boolean usePasswordModifyExtensionOperation)
ユーザーのパスワードを変更する方法を設定します。void
setUserDetailsMapper(UserDetailsContextMapper userDetailsMapper)
void
setUsernameMapper(LdapUsernameToDnMapper usernameMapper)
void
updateUser(UserDetails user)
指定されたユーザーを更新します。boolean
userExists(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