Servlets de múltiples requisitos para una sola aplicación GWT
-
26-10-2019 - |
Pregunta
¿Es posible tener esto? ¿Y cómo se puede lograr esto?
La motivación: quiero un servicio asegurado (SSL) para el tratamiento de usuarios (contraseñas ...) y otro no seguro.
Solución
Ashwin Desikan respondió a mi pregunta en http://code.google.com/p/google-web-toolkit/
Cotizar:
Gilad, puede tener múltiples requestFactoryServlets. Mira el ejemplo a continuación. Si lo miras de cerca, tengo un mapeo de URL diferente. Tendrá que definir las solicitudes individuales para estar asociados con el mapeo de URL en su cliente.
Además, tendrá que controlar las operaciones expuestas por cada una de las factores de seguridad de su cliente. Siempre puede tener una fábrica base en la que puede proporcionar funciones comunes y mover solo las aseguradas a SecuredRequestFactory
Lo que recomendaría con este enfoque es antes de usar las fábricas de solicitudes de requisitos en su código para determinar si un usuario está registrado. Si inicia sesión, use el servlet seguro para todas las solicitudes.
ejemplo ;
*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>
cliente
*//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);
}
}
Saludos Ashwin