使用 Spring、Basic Auth 和 LDAP,如何获取提供的用户名?
Posted
技术标签:
【中文标题】使用 Spring、Basic Auth 和 LDAP,如何获取提供的用户名?【英文标题】:Using Spring, Basic Auth and LDAP, how can I get the supplied username? 【发布时间】:2014-07-18 01:03:32 【问题描述】:我正在使用 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 管理服务接口,并且我找到了一些关于创建过滤器和挖掘请求的教程。但是,我希望有一种更简单的方法来实现它,因为 Spring 已经完成了所有工作,并且拥有纯文本的用户名并准备好发送到 LDAP 服务器。
【问题讨论】:
【参考方案1】:Authenticationauth = SecurityContextHolder.getContext().getAuthentication();
auth.getName();
【讨论】:
奇妙吧。谢谢你,先生,这正是我想要的。以上是关于使用 Spring、Basic Auth 和 LDAP,如何获取提供的用户名?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security 配置:Basic Auth + Spring Cloud Gateway
相同 API 的 Spring Security Basic Auth 和 Form 登录
Spring Security Basic Auth with digest over http for stateless APIs
Spring starter security-basic auth-vai zuul 服务器
每个请求的 Spring Boot Basic Auth,为以后的请求验证用户名
Spring Boot web app w/session + CSRF & stateless Basic Auth w/o CSRF