Liferay钩子:过滤器URL给出filterstart错误,当前url生成异常null

时间:2010-11-11 13:55:14

标签: hook liferay servlet-filters autologin

我正在尝试使用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。

当我在钩子中添加额外的类时,我有什么具体的事情吗?

1 个答案:

答案 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 添加到链的末尾或用您的所有过滤器替换所有过滤器。