b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ldap认证_ldap认证 管理员账户_ldap统一用户认证(4)

电脑杂谈  发布时间:2017-01-04 19:01:16  来源:网络整理

这里建立了一个提供器,访问LDAP服务,URL是ldap://monkeymachine:389/dc=springframework,dc=org。认证会被执行,尝试绑定这个DNuid=<user-login-name>,ou=people,dc=springframework,dc=org。在成功认证之后,会通过查找下面的DNou=groups,dc=springframework,dc=org使用默认的过滤条件(member=<user's-DN>),将角色分配给用户。角色名会通过每个匹配的“ou”属性获得。

要配置用户的搜索对象,使用过滤条件(uid=<user-login-name>)替代DN匹配(或附加到它上面),你需要配置下面的bean

<bean id="userSearch"
    class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
  <constructor-arg index="0" value=""/>
  <constructor-arg index="1" value="(uid={0})"/>
  <constructor-arg index="2" ref="contextSource" />
</bean> 
                

并使用它,设置认证者的userSearch属性。这个认证者会调用搜索对象,在尝试绑定到用户之前获得正确的用户DN。

使用LdapAuthenticationProvider进行认证的结果,和使用普通Spring Security认证一样,都要使用标准UserDetailsService接口。它会创建一个UserDetails对象,并保存到返回的Authentication对象里。在使用UserDetailsService时,常见的需求是可以自定义这个实现,添加额外的属性。在使用LDAP的时候,这些基本都来自用户入口的属性。UserDetails对象的创建结果被提供者的UserDetailsContextMapper策略控制,它负责在用户对象和LDAP环境数据之间进行映射:

public intece UserDetailsContextMapper {
    UserDetails mapUserFromContext(DirContextOperations ctx, String username, GrantedAuthority[] authority);

    void mapUserToContext(UserDetails user, DirContextAdapter ctx);
}
                

只有第一个方法与认证有关。如果你提供这个接口的实现,你可以精确控制如何创建UserDetails对象。第一个参数是Spring LDAP的DirContextOperations实例,他给你访问加载的LDAP属性的通道。username参数是用来认证的名字,最后一个参数是从用户加载的授权列表。]

环境数据加载的方式不同,视乎你采用的认证方法。使用BindAuthenticatior,从绑定操作返回的环境会用来读取属性,否则数据会通过标准的环境,从配置好的ContextSource获得(当测试配置好定位用户,这会从搜索对象中获得数据)。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-24626-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 袁不约
      袁不约

      中国人在汉朝就已确立一夫一妻

    • 赵晶晶
      赵晶晶

      同样纠结中

    热点图片
    拼命载入中...