ldap spring security http基本身份验证

Posted

技术标签:

【中文标题】ldap spring security http基本身份验证【英文标题】:ldap spring security http basic auth 【发布时间】:2013-01-11 04:09:14 【问题描述】:

您能给我一些链接或解决方案来解决我的问题吗? 问题如下。我有一个 LDAP 服务器。如何通过此 LDAP 服务器进行 http 基本授权?

提前致谢。

【问题讨论】:

【参考方案1】:

你需要设置两个不同的 Spring Security 特征:

LDAP Authentication。实际配置描述here。 HTTP 基本身份验证。此功能描述为here。

【讨论】:

【参考方案2】:

谢谢。我做了这样的配置:

<security:http auto-config="true" use-expressions="true">
    <security:intercept-url pattern="/index.jsp" access="isAuthenticated()"/>
    <security:http-basic/>
</security:http>

然后,BasicAuthenticationFilter

    <bean id="basicAuthenticationFilter"
      class="org.springframework.security.web.authentication.www.BasicAuthenticationFilter">
    <property name="authenticationEntryPoint" ref="BauthenticationEntryPoint"/>
    <property name="authenticationManager" ref="BauthenticationManager"/>
</bean>

入口点和经理是这样描述的:

  <bean id="BauthenticationEntryPoint"   class="org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint">
    <property name="realmName" value="Name Of Your Realm"/>
</bean>
<bean id="BauthenticationManager" class="org.springframework.security.authentication.ProviderManager">
    <property name="providers">
        <list>
            <ref local="ldapAuthProvider"/>
        </list>
    </property>
</bean>

最后

    <bean id="ldapAuthProvider"
      class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
    <constructor-arg>
        <bean class="org.springframework.security.ldap.authentication.BindAuthenticator">
            <constructor-arg ref="contextSource"/>
            <property name="userDnPatterns">
                <list>
                    <value>sAMAccountName=0</value>
                </list>
            </property>
        </bean>
    </constructor-arg>
    <constructor-arg>
        <bean
                class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
            <constructor-arg ref="contextSource"/>
            <constructor-arg value=""/>
        </bean>
    </constructor-arg>
</bean>

当我尝试访问 /index.jsp 时,我显示了一个 stadart http auth 窗口,该窗口要求我输入用户名和密码。当我将其输入表单并按 Enter 时,什么也没有发生 - 身份验证窗口只是重新加载,仅此而已。

我在哪里做错了? 谢谢。

【讨论】:

创建另一个问题会更好。

以上是关于ldap spring security http基本身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 spring security ldap 禁用基本身份验证

在 Spring Security(spring-boot 项目)中使用 ldap 凭据进行 Http 基本身份验证以保护休息服务调用

没有管理器的 Grails Spring Security Ldap

Spring 3,Spring Security,LDAP,如何向 LDAP 添加角色?

Spring MVC + Spring Security + LDAP

如何将 Spring Security 从 ldap 更改为 ldap starttls