我们正在开发一个自我注册应用程序。
我们的应用程序允许用户注册Web应用程序,并部署在weblogic 10.3.5应用服务器上。 weblogic连接到本地ldap系统。 一旦用户使用我们的应用程序注册,我们就会调用公司服务来生成用户ID。密码激活,身份验证全部由公司服务处理。它还有一个包含公司所有用户的公司ldap。
这种方法适用于“新用户”,即公司ldap或本地ldap中不存在的用户:用户输入他们的详细信息并获得用户ID,然后一旦用户激活他们,我们就会将其复制到本地ldap帐户。
我们目前正在努力解决的用例是如何处理希望注册的“现有”用户。这些用户目前在公司ldap中,并希望“注册”我们的应用程序。它们在正常注册过程中被拒绝,因为它们已经存在于coroporate ldap中。
我想做的是强迫他们登录(只是因为他们不代表其他人注册),一旦他们登录,只需将他们的数据复制到本地ldap。
问题是即使它们已被公司服务成功验证,但就weblogic服务器而言,它们(尚不存在)也是如此。有没有办法获取身份验证令牌附带的用户ID?
身份验证方法是SAML 1.1 该应用程序是使用struts2框架的基于标准Java EE servlet的webapp。
非常感谢任何想法。
答案 0 :(得分:0)
在WebLogic中,您可以定义多个身份验证提供程序,并按照您希望系统使用的顺序进行设置。由于您要复制数据,因此在尝试在LDAP服务器上创建帐户之前,必须以编程方式检查帐户是否存在。
如果您直接使用外部LDAP服务器而不是将数据复制到内部LDAP服务器,这样会更加简单,只有在捕获适当的异常时才允许您尝试登录用户并创建帐户。