Dani: (el resto se puede aburrir con lo que sigue) Hay un tema que no se como solucionar tal y como tenemos montado el tema en el servidor. Cuando el usuario hace login tenemos que generar otro sessionid. En teoría, siguiendo el SecurityFaq de GWT y otras lecturas [1][2], habría que hacer más o menos esto: request.getSession().invalidate(); request.getSession(true); El problema es que ahora solo se accede a UserSession y a HttpServletRequest en KuneApplicationListener, que se ejecuta solo cuando el cliente accede por primera vez. Vamos que no veo como acceder al request desde UserRPC o UserManager en el login para generar un nuevo sessionId. antes sí se podía acceder a las peticiones desde un servlet, tipo: this.getThreadLocalRequest().getSession().getId() Dani ¿me hechas un cable si tienes un hueco? No se, sigo pensando que esto va a ser un tema para ir pasando el rato mientras se crea un proyecto serio que haga una librería de seguridad para gwt (algo que mucha gente que usa gwt va a necesitar, usar y mantener). En fin, este es el coste de ir de modernitos ;) Abrazotes, Vicente [1] http://en.wikipedia.org/wiki/Session_fixation [2] http://www.owasp.org/index.php/Session_Fixation_in_Java
si mal no recuerdo, te puedes @injectar el httprequest o session directamente en el constructor. vamos de modernitos, pero con los deberes bien hechos ;). seguramente lo que necesitarás injectar en el constructor es Provider<HttpSession> jeje, guice mola ;) besos dani
dani wrote:
si mal no recuerdo, te puedes @injectar el httprequest o session directamente en el constructor. vamos de modernitos, pero con los deberes bien hechos ;). seguramente lo que necesitarás injectar en el constructor es Provider<HttpSession>
jeje, guice mola ;)
besos dani
Lo del UTF8, solucionado :) muy bien ;) Y lo del login, lo he inyectado y guay (casi). A ver si te pillo por el jabber y me aclaras como hacer con las pruebas de Integración que al inyectar eso, cascan con un: com.google.inject.CreationException: Guice configuration errors: 1) Error at org.ourproject.kune.platf.server.UserSession.<init>(UserSession.java:40): Error while injecting at org.ourproject.kune.platf.server.rpc.SiteRPC.<init>(SiteRPC.java:59): Binding to com.google.inject.Provider<javax.servlet.http.HttpSession> not found. No bindings to that type were found. Supongo que habrá que hacer algo en el IntegrationTestHelper, pero mmm, he hecho alguna prueba sin éxito... He estado leyendo más cosas sobre login/auth/sesiones su persistencia etc. De todo me ha molado mucho esto: http://www.terracotta.org/ que creo que puede irnos muy bien en el futuro si todo lo que dicen es cierto (cache, etc). Para generar session id, persistirlas, que pueda ser distribuido, estaría muy bien. He visto otras cosas, pero no tiene tan buen pinta: http://wadi.codehaus.org/ Por otro lado tengo el liquibase casi integrado. Hace unos días mejoraron la integración con maven: http://blog.liquibase.org/2007/12/official-maven-support.html y ahí estoy, intentando cargar datos de i18n en la inicialización (por el momento) y llevar un control de cambios mínimos de la bd. He pasado del scriptella por el momento. Abrazotes, -- Vicente J. Ruiz Jurado http://homes.ourproject.org/~vjrj/blog http://ourproject.org "A people who mean to be their own governors, must arm themselves with the power knowledge gives." [James Madison]
participants (2)
-
dani -
Vicente J. Ruiz Jurado