Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Java 如何在Spring security中进行LDAP身份验证和数据库授权?_Java_Security_Spring - Fatal编程技术网

Java 如何在Spring security中进行LDAP身份验证和数据库授权?

Java 如何在Spring security中进行LDAP身份验证和数据库授权?,java,security,spring,Java,Security,Spring,我是春天的新手,所以这个问题看起来很明显 我正在尝试实现Spring安全性,我的需求是针对LDAP服务器对用户名/密码进行身份验证,一旦用户通过身份验证,我需要从关系数据库检索用户角色 在Spring security中可以这样做吗?可以 内置ldap身份验证管理器将用户的身份验证和授权分为两部分 您可以像下面这样配置基于LDAP的身份验证管理器 <bean id="authenticationManager" class="org.acegisecurity.providers.Prov

我是春天的新手,所以这个问题看起来很明显

我正在尝试实现Spring安全性,我的需求是针对LDAP服务器对用户名/密码进行身份验证,一旦用户通过身份验证,我需要从关系数据库检索用户角色

在Spring security中可以这样做吗?

可以

内置ldap身份验证管理器将用户的身份验证和授权分为两部分 您可以像下面这样配置基于LDAP的身份验证管理器

<bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
    <property name="providers">
        <list>
            <ref local="ldapAuthenticationProvider"/>
        </list>
    </property> 
</bean>

身份验证提供程序的配置如下所示

<bean id="ldapAuthenticationProvider" class="org.acegisecurity.providers.ldap.LdapAuthenticationProvider">
    <constructor-arg><ref local="authenticator"/></constructor-arg>
    <constructor-arg><ref local="populator"/></constructor-arg>
    <property name="userCache"><ref local="userCache"/></property>
</bean>


我不知道是否有一个内置的populator可以满足您的需要,但如果需要,您可以开发自己的populator。

您可以使用UserDetailsServiceLdapAuthoritiesPopulator来委托给标准UserDetailsService。这正是Veera需要的。