【问题标题】:Spring security custom principal beanSpring Security 自定义主体 bean
【发布时间】:2011-02-02 16:44:18
【问题描述】:

我有一个设置为使用默认 ldap 服务器/身份验证管理器/身份验证提供程序/用户服务的 Web 应用程序。我有另一个 DAO,它已经使用 Spring-LDAP 完成了大部分工作(除了验证用户)。我的问题是我希望主体属于我自己的自定义 bean 类。最简单的方法是什么?

最初我想创建一个自定义身份验证提供程序,但由于默认提供程序完全符合我的要求,因此似乎没有必要。我在想我只需要覆盖实际返回 Principal bean 的任何对象。这是否可能,并且能够注入到安全 ldap 身份验证器上下文中?

这是我目前的设置方式:

 <ldap-server 
  url="ldap://HOST:3268/BASEDN"
  manager-dn="FULLDN" 
  manager-password="PASS"/>

    <authentication-manager>
 <ldap-authentication-provider user-search-filter="(samaccountname={0})"/>
 <authentication-provider>
      <ldap-user-service  user-search-filter="(samaccountname={0})"/>
 </authentication-provider>

</authentication-manager> 

“ldap-user-service”是否将 Principal bean 链接到 SecurityContext 的 Authentication 对象?

问题是现在我有一个用于 DAO 的第二个 LDAP 配置(几乎与身份验证配置相同),当用户转到一个页面时,我只需重新查找他们的用户帐户,然后取回用户对象(如果它是 SecurityContext 主体,那就太好了)...

【问题讨论】:

    标签: ldap spring-security


    【解决方案1】:

    使用ldap-authentification-provider/@user-context-mapper-ref 并实现自己的 org.springframework.security.ldap.userdetails.UserDetailsContextMapper.

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2013-07-18
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 2016-09-04
      • 2020-09-24
      • 1970-01-01
      相关资源
      最近更新 更多