2012-06-13 12 views
5

general Caso: Una sencilla aplicación que expone sus servicios a través de EJB (3.1) - la mayoría de ellas judías sin estado sesiones (nada funcy aquí) y los clientes basados ​​BATIENTES eso, llamar a través de interfaces remotas estos servicios y hacer lo que tienen que hacer.Apache Shiro en un cliente Swing - EJB 3.1 Caso de autenticación-autorización

Seguridad: Quiero autenticar/autorizar este ciclo de llamadas y, por supuesto, proteger mis servicios. La respuesta obvia sería usar JAAS en el servidor y cualquier configuración de cableado personalizado en el servidor subyacente. Eso sigue siendo una opción

Apache Shiro: Así que mucha gente habla de Apache Shiro y de hecho cuenta con una API muy simple y mecanismo - que podrían ser potencialmente servidor de aplicaciones independiente.

Preguntas técnicas:

  1. Sesión: En mi caso no tengo una sesión HTTP - y de Shiro lo que he entendido, al menos, necesita algún tipo de identificador de sesión que necesito para pasar alrededor. Cualquier forma agradable en la inyección de credenciales de usuario en mi RMI/IIOP llama al servidor con no contaminar mi API negocio?

  2. aplicación del lado del servidor: Para los pocos recursos que he pasado por creo que puedo implementar un Shiro DefaultSecurityManager por 'referencia es de un 3,1 frijol Singleton EJB. ¿Alguna otra idea? Entonces puede crear fácilmente un interceptor y añadirlo a mis llamadas remotas - de modo que cuando una nueva llamada está pasando por mi método EJB remoto - el Shiro Intereceptor validar mi usuario o comprobar si tiene derechos específicos.

¿Algún comentario/consejo/ejemplos?

Muchas gracias

Respuesta

0

De shiro, trate de usar un patrón ServiceLocator. La búsqueda de EJB es diferente entre contenedores (JBoss, Netweaver, Weblogig, etc).

En Servidor de aplicaciones, trate de usar las restricciones basadas en el contenedor de seguridad (@RolesAllowed, @PermitAll, @Deny ...). JAAS creará el tema con los directores de usuario, por lo que sólo tiene que utilizar la autorización de contenedores (@RolesAllowed, @PermitAll, @Deny ...). Puede ser mejor cuando migras de un contenedor a otro.

+0

Hola Marcelo, gracias por su respuesta - pero si estoy a punto de utilizar JAAS de todos modos - entonces yo no encuentro ninguna gran ventaja de shiro cableado, así .. Mi idea era pasar por el 100% de JAAS y poner en práctica todo lo que el uso de Shiro. – javapapo

+0

Ok. Si no cree que es un problema hacer que la aplicación sea un proveedor dependiente de shiro, no hay problema. Lo que quiero decir es que cotainer ya tiene las implementaciones de seguridad si usa el contenedor. Es posible que pierda algunas funcionalidades como restricciones de web.xml o, restricciones de anotaciones de seguridad. – Marcelo

Cuestiones relacionadas