Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security 没有xml的spring ldap安全_Spring Security - Fatal编程技术网

Spring security 没有xml的spring ldap安全

Spring security 没有xml的spring ldap安全,spring-security,Spring Security,本文档说明了如何配置Spring Security LDAP: 3.4.5。springbean配置 uid={0},ou=人 没有xml我们如何实现这一点? 这里我们有一个使用本地ldif文件的示例: 我对SecurityConfig.java进行了如下修改: public void registerGlobalAuthentication(AuthenticationManagerBuilder auth) throws Exception { DefaultS

本文档说明了如何配置Spring Security LDAP:

3.4.5。springbean配置
uid={0},ou=人
没有xml我们如何实现这一点? 这里我们有一个使用本地ldif文件的示例:

我对SecurityConfig.java进行了如下修改:

    public void registerGlobalAuthentication(AuthenticationManagerBuilder auth) throws Exception {
        DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource(ldap_url);
        contextSource.setUrl(ldap_user);
        contextSource.setPassword(ldap_password);

        DefaultLdapAuthoritiesPopulator ldapAuthoritiesPopulator = new DefaultLdapAuthoritiesPopulator(contextSource, "ou=groups");
        ldapAuthoritiesPopulator.setGroupRoleAttribute("ou");

        LdapAuthenticationProviderConfigurer<AuthenticationManagerBuilder> ldapAuthenticationProviderConfigurer = auth.ldapAuthentication();

        ldapAuthenticationProviderConfigurer
            .userDnPatterns("uid={0},ou=people")
            .groupSearchBase("ou=groups")
            .contextSource(contextSource)
            .ldapAuthoritiesPopulator(ldapAuthoritiesPopulator);
    }
}
public void registerGlobalAuthentication(AuthenticationManagerBuilder auth)引发异常{
DefaultSpringSecurityContextSource contextSource=新的DefaultSpringSecurityContextSource(ldap_url);
setUrl(ldap_用户);
setPassword(ldap_密码);
DefaultLdapAuthoritiesPopulator ldapAuthoritiesPopulator=新的DefaultLdapAuthoritiesPopulator(contextSource,“ou=组”);
ldapAuthoritiesPopulator.setGroupRoleAttribute(“ou”);
LdapAuthenticationProviderConfigurer解释如何在没有SpringXML的情况下实现这一点?

您需要调用

contextSource.afterPropertiesSet()
如果您在应用程序上下文之外使用该类(有关更多信息,请参阅SpringLDAP的源代码和Javadoc)。或者您可以将其设置为
@Bean
,Spring将调用该方法并为您初始化


看起来不对。这不应该是
setUserDn

我刚刚完成了一个应用程序示例的构建(3天的艰苦工作)。
java.lang.NullPointerException
    at java.util.Hashtable.<init>(Hashtable.java:296)
    at org.springframework.ldap.core.support.AbstractContextSource.getAuthenticatedEnv(AbstractContextSource.java:499)
    at org.springframework.ldap.core.support.AbstractContextSource.doGetContext(AbstractContextSource.java:114)
    at org.springframework.ldap.core.support.AbstractContextSource.getContext(AbstractContextSource.java:110)
    at org.springframework.security.ldap.authentication.BindAuthenticator.bindWithDn(BindAuthenticator.java:112)
contextSource.afterPropertiesSet()
contextSource.setUrl(ldap_user);