java - 使用 Spring、Basic Auth 和 LDAP,如何获取提供的用户名?

标签 java spring-security ldap jersey basic-authentication

我正在使用 Spring Security 对 LDAP 进行用户身份验证。我的 bean 配置如下所示

<security:http use-expressions="true" > 
    <security:intercept-url pattern="/secure/**" access="isAuthenticated()"/>
    <security:http-basic/>  
</security:http>

<security:authentication-manager>          
    <security:ldap-authentication-provider user-dn-pattern="cn={0},ou=users"/>
</security:authentication-manager>

<security:ldap-server url="${ldap.url}/${ldap.base}" />

这效果很好,但现在我想在代码中访问该 {0} 用户名。我确实有 Jersey 管理服务接口(interface),并且我找到了一些有关创建过滤器和挖掘请求的教程。然而,我希望有一种更简单的方法来获取它,因为 Spring 已经完成了所有工作,并以纯文本形式提供了用户名,并准备好将其发送到 LDAP 服务器。

最佳答案

Authentication授权=SecurityContextHolder.getContext() .getAuthentication();

auth.getName();

关于java - 使用 Spring、Basic Auth 和 LDAP,如何获取提供的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917844/

相关文章:

java - Spring Data Rest - 隐藏而不是暴露 ID

java - Spring Security 与 Spring MVC 不起作用

java - Jersey Web 服务不处理 XML,而是处理 JSON

java - 是否有与 Resharper 的 Value Origin/Destination 相当的 IntelliJ?

java - 没有 Spring Security ACL 的 Spring 对象级权限

ldap - Spring LDAP ODM-入口类应声明为最终警告

c++ - 使用 ldap_get_next_page_s 进行 LDAP 排序会导致错误 LDAP_UNAVAILABLE_CRIT_EXTENSION

.net - 使用C#从Active Directory获取组织单位

java - 不能从静态上下文中引用非静态变量

spring - java.io.IOException : Invalid keystore format Spring Security SAML Extension