2010-11-11 82 views
1

我想在Eclipse中使用liferay鉤子創建一個autologinfilter。Liferay hook:過濾url給filterstart錯誤和當前url生成異常null

現在我已經添加了:

<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的鉤的web.xml。

在Liferay的-hook.xml我說:<portal-properties>portal.properties</portal-properties>

在那hook.xml我說:auto.login.hooks=bla.bla.xyz

bla.bla.xyz實現自動登錄,但現在它的漂亮燒燬:

@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秒。

當我在鉤子中添加額外的類時,有什麼具體的我必須做的嗎?

回答

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到鏈的末端或更換所有過濾器與你。

+0

但它然後鏈接到c \ portal \ login。關鍵是將其映射到另一個網址。 – jack 2010-12-31 07:55:35