我正在尝试使用liferay钩子在Eclipse中创建一个autologinfilter。
现在我添加了:
<filter>
<filter-name>myautologinfilter</filter-name>
<filter-class>bla.bla.xyz</filter-class>
</filter>
<filter-mapping>
<filter-name>myautologinfilter</filter-name>
<url-pattern>/c/login/myurl</url-pattern>
</filter-mapping>
到liferay hook的web.xml。
在liferay-hook.xml中,我添加了:<portal-properties>portal.properties</portal-properties>
在那个hook.xml中我添加了:auto.login.hooks=bla.bla.xyz
bla.bla.xyz实现了AutoLogin,但是现在它已经很糟糕了:
@Override
public String[] login(HttpServletRequest request, HttpServletResponse response)
throws AutoLoginException {
Object parameters = request.getAttribute("javax.servlet.forward.query_string");
Map<String, String> x = parserClass.parsing(parameters.toString());
System.out.println("voornaam: " + geparsdeParameters.get("tokenvalue1"));
try {
return null;
} catch (Exception e) {
throw new AutoLoginException(e);
}
}
由于挂钩在我添加过滤时没有启动,我将其删除并尝试:
http://localhost:8080/c/portal/login?tokenvalue1=55
但是当我检查我的tomcat时,我看到:Error XYZ Url: url myUsedUrl exception null
我还尝试添加一些util类,但我得到了classnotfoundexception
s。
当我在钩子中添加额外的类时,我有什么具体的事情吗?
答案 0 :(得分:0)
您不应在web.xml中添加过滤器 - 只需将其添加到 auto.login.hooks 属性即可。来自LR 6.0.5 portal.properties的原始属性:
auto.login.hooks=com.liferay.portal.security.auth.CASAutoLogin,\
com.liferay.portal.security.auth.FacebookAutoLogin,\
com.liferay.portal.security.auth.NtlmAutoLogin,\
com.liferay.portal.security.auth.OpenIdAutoLogin,\
com.liferay.portal.security.auth.OpenSSOAutoLogin,\
com.liferay.portal.security.auth.RememberMeAutoLogin,\
com.liferay.portal.security.auth.SiteMinderAutoLogin
在 portal-ext.properties 文件中覆盖此属性 - 将 bla.bla.xyz 添加到链的末尾或用您的所有过滤器替换所有过滤器。