Molteplici servlet RequestFactory per una singola applicazione GWT
-
26-10-2019 - |
Domanda
E 'possibile avere questo? E come può essere realizzato?
La motivazione - voglio uno sicuro Servizio (SSL) in user-provisioning (password ...), e uno non protetto
.Soluzione
Ashwin Desikan risposto alla mia domanda su http://code.google.com/p / google-web-toolkit /
Quote:
Gilad, È possibile avere più RequestFactoryServlets. controllare l'esempio seguente. Se si guarda da vicino, ho una mappatura URL diverso. Tu avrai definire i singoli RequestTransports essere associati url-mapping nel client.
Inoltre, si dovrà operazioni controll esposte da ciascuno dei requestFactories nel tuo client. Si può sempre avere una fabbrica di base dove è possibile fornire funzioni comuni e spostare solo quelli garantiti a SecuredRequestFactory
Quello che mi sento di raccomandare con questo approccio è, prima di utilizzare il RequestFactories hanno un controllo nel codice per determinare se un utente è connesso. Se registrato in uso servlet sicuro per tutte le richieste.
esempio;
* * 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>
client
*//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);
}
}
saluti Ashwin