2010-02-26 25 views
6

Recientemente actualizamos nuestra aplicación a Spring 3.0 y Spring Security 3.0. Aparte del trabajo adicional que queremos hacer es separar el backend del front end por varias razones. Planeamos utilizar la solución RMI transparente de Spring para exponer nuestros servicios a nuestra interfaz. Sin embargo, la forma en que las cosas se diseñan hoy en día tanto en la parte delantera como en la parte posterior dependen del Spring Spring Security para proteger los servicios, etc., de usuarios no autorizados. Por lo que entiendo, ¿SecurityContext es por JVM? Si eso es correcto, ¿cómo puedo compartir efectivamente el contexto con el back-end? ¿Debo suponer que paso el token de autenticación en las llamadas RMI que lo requieren?Spring Security en una aplicación distribuida

Respuesta

9

Al haber trabajado anteriormente con la conexión remota de invocadores de HTTP de Spring, puedo decir que hay soporte integrado para pasar tokens de seguridad Spring. Asumiría que la solución RMI de Spring también tiene esta característica, pero necesitaría buscar en las clases de RMI de Spring/javadoc para confirmar esto.

En el lado del cliente, necesitará la clase ContextPropagatingRemoteInvocationFactory, que incluirá automáticamente un contexto de seguridad Spring en la invocación remota.

+0

Tienes razón. Hice una búsqueda en el manual de referencia de primavera y encontré donde dicen que no hay soporte directo, pero existe el gancho. Así que busqué en los documentos de Java y encontré ContextPropagatingRemoteInvocation de Spring Spring que permite que las llamadas del cliente pasen el objeto de autenticación en las llamadas remotas. Dulce, gracias! – predhme

+0

así que vote su respuesta, predhme –

Cuestiones relacionadas