我正在使用Liferay 6进行开发,我开发了Liferay6 Struts2 Portlet并进行了部署。 使用自定义JSP钩子,我已经重写了$ PORTAL_ROOT_HOME / html / portlet / login login.jsp并创建了 我自己的jsp页面如图所示
<HTML>
<HEAD>
<TITLE>Login using jsp</TITLE>
</HEAD>
<BODY>
<H1>LOGIN FORM</H1>
<form>
<table>
<tr>
<td> Username : </td><td> <input name="username" size=15 type="text" /> </td>
</tr>
<tr>
<td> Password : </td><td> <input name="password" size=15 type="text" /> </td>
</tr>
</table>
<input type="submit" value="login" />
</form>
</BODY>
</HTML>
这很好用,自定义jsp页面正在显示。 现在请点击提交按钮告诉我,如何编写验证凭证aganist数据库的java类。
请告诉我如何在课堂上接受这些价值观并验证它们。
谢谢
答案 0 :(得分:6)
此时你可能已经找到了解决方案。如果没有,您可以尝试以下方法。
我相信您正在尝试覆盖liferay的登录portlet。在这种情况下,有两种方法可以处理这种登录机制。(确保在liferay的登录页面上给输入字段赋予相同的名称)
扩展liferay的LoginAction类。您必须编写一个ext插件,或者如果您使用的是6.0 SP2或6.1,则可以使用钩子来扩展LoginAction类。 Refere mika的博客http://www.liferay.com/web/mika.koivisto/blog/-/blogs/7132115
编写自己的类,应该实现liferay的Authenticator接口,并且必须覆盖Authenticator接口的3种方法。
例如,如果要覆盖authenticateByEmailAddress(....),则必须返回SUCCESS(1)或FAILURE(-1)。我相信该方法的第二和第三个参数是在屏幕上输入的用户ID和密码。请参考liferay来源。
为了绕过liferay的默认身份验证机制,请在portal-ext.properties上提供以下配置:auth.pipeline.pre = your.package.your.class
对自己的数据库进行静态检查。为避免在portal-ext.properties上添加以下配置。
auth.pipeline.enable.liferay.check =假。
因此,您可以拥有自己的自定义身份验证,您可以根据自己的数据库或所需的机制进行身份验证。
希望这有帮助