2012-02-16 35 views
1

是否有可能具有此功能? 而這又如何實現?單個GWT應用程序的多個RequestFactory servlet

動機 - 我想爲用戶配置(密碼...)提供一個安全(SSL)服務,以及一個不安全的服務。

+0

這個職位可能與您的需求也 [在GWT認證(HTTP ://stackoverflow.com/questions/10047925/gwt-requestfactory-authentication-functions) – 2013-03-07 21:15:20

回答

1

阿什溫Desikan回答我的http://code.google.com/p/google-web-toolkit/

報價問題:


吉拉德, 你可以有多個RequestFactoryServlets。看看下面的例子。 如果仔細查看,我有不同的URL映射。您將有 來定義單個RequestTransports與客戶端中的 url-mapping關聯。

此外,您將必須控制客戶端中每個 requestFactories公開的操作。你總是可以有一個基地工廠 在那裏你可以提供常用的功能和只移動安全的人來 SecuredRequestFactory

我會用這種方法,使用 RequestFactories之前在代碼中有一個檢查,以確定是否推薦一個用戶是 loggedIn。如果已登錄,則使用安全servlet處理所有請求。

示例;

* web.xml中*

<filter> 
<filter-name>AuthFilter</filter-name> 
<filter-class>com.example.server.gae.GaeAuthFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>AuthFilter</filter-name> 
<servlet-name>authRequestFactory</servlet-name> 
</filter-mapping> 
<servlet> 
<servlet-name>authRequestFactory</servlet-name> 
<servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryS ervlet</servlet-class> 
</servlet> 
<servlet> 
<servlet-name>unAuthRequestFactory</servlet-name> 
<servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryS ervlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>unAuthRequestFactory</servlet-name> 
<url-pattern>/unsignedRequest</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
<servlet-name>authRequestFactory</servlet-name> 
<url-pattern>/signedRequest</url-pattern> 
</servlet-mapping> 

客戶

*//AuthenticatedRequestTransport* 

public class AuthenticatedRequestTransport extends DefaultRequestTransport { 
    /** 
     * default constructor. 
     * 
     */ 
    public AuthenticatedRequestTransport() { 
     super(); 
     //set the url 
     String requestURL = GWT.getHostPageBaseURL() + "signedRequest"; 
     setRequestUrl(requestURL); 
    } 
} 

*//Un-Authenticated Request* 
public class UnAuthenticatedRequestTransport extends 
DefaultRequestTransport { 
    public UnAuthenticatedRequestTransport() { 
     super(); 
     //set the url 
     String requestURL = GWT.getHostPageBaseURL() + "unsignedRequest"; 
     setRequestUrl(requestURL); 
    } 
} 

問候 阿什溫