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