1

我正在使用 LifeRay 并且需要某种特殊身份验证:我的用户拥有由 Apache Webserver 验证的 x.509 证书。成功验证后,用户被重定向到 Tomcat 和 LifeRay。

现在我要执行以下操作:以编程方式获取用户证书的主题 DN,并登录连接到此 DN 的 LifeRay 用户。

到目前为止,我有以下内容:

  • 创建了一个钩子“login.events.pre”,我从证书中获取 DN
  • 在 LifeRay 数据库中搜索具有此 DN 的用户(使用 UserLocalServiceUtil.getUserByOpenId())
  • 使用 UserLocalServiceUtil.authenticateByScreenName() 对用户进行身份验证

我现在的问题是:这是执行此操作的“最佳”/最干净的方法,还是我应该使用其他方法来查询 LifeRay 数据库、验证用户等。例如,我可以为 LifeRay 创建一个 Ext-Extensions 而不是钩子。此外,我还发现了一些类似“com.liferay.portlet.login.util.LoginUtil.login”或 User user = PortalUtil.getUser(request); 获取用户。

文档中是否有回答这些问题的地方?API不是那么全面...

4

0 回答 0