¿Alternativas comunes a la seguridad administrada por contenedor web?

¿Cuáles son las alternativas comunes al uso de la seguridad administrada por contenedor de Tomcat (o Websphere)?

Tengo una biblioteca de seguridad desagradable que extrae la autorización y la autenticación de varios lugares, e inicialmente estará en Tomcat para el desarrollo inicial, seguido de desarrollo y producción tardíos en Websphere. En lugar del hack-a-doo necesario para configurar un dominio personalizado a través de JAAS para Tomcat seguido de otra ronda de pirateo en WAS, ¿existen alternativas comunes?

Solo he hecho seguridad basada en reinos en Tomcat. He visto algunos enfoques caseros interesantes, como monitorear un objeto de usuario en la sesión http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor. También tengo curiosidad por cómo las páginas wiki (por ejemplo) con http://host.com/view.jsp?a_wiki_page lograr mantener los roles correctos ya que esto parece ser comúnmente necesario para wikis y bbs, y tal vez esta sea mi solución.

¿Algún consejo?

preguntado el 22 de mayo de 12 a las 20:05

2 Respuestas

Spring Security es una alternativa popular:

http://www.springsource.org/spring-security

contestado el 22 de mayo de 12 a las 22:05

Spring Security ofrece un enfoque integral e independiente del contenedor que he utilizado con éxito tanto en WebSphere como en Tomcat (en particular, la creación/prueba en Tomcat y la implementación en WebSphere).

Lo que realmente me gusta del marco es que le brinda una vista centrada en la aplicación y neutral en la fuente del usuario actual y sus autoridades en la aplicación. Eso significa que puede cargar el usuario y las autoridades desde cualquier lugar, y solo la configuración debe preocuparse por su origen (LDAP, base de datos, archivo de propiedades, objeto de prueba en memoria, aserción SAML, etc.)

También le brinda una gran cantidad de control de autorización detallado (basado en URL y basado en métodos) que simplemente no tiene definido en Java EE Security. Puede usar expresiones regulares y expresiones de estilo Ant para la coincidencia de patrones que de otro modo no tendría. La sintaxis de la expresión también es bastante rica. Si necesita realizar un control de acceso específico a los datos, se proporciona DDL para que lo agregue a su base de datos e integre directamente en su seguridad.

Spring Security se ejecuta como un filtro para todas sus solicitudes al contenedor web utilizando el mapeo de URL "/*" (o el mapeo que elija proteger).

contestado el 24 de mayo de 12 a las 15:05

Gracias, eso es muy útil. El grupo aquí es muy reacio a usar Spring, pero usan Struts2 y, gracias a su respuesta, pude encontrar una solución simétrica con los interceptores de Struts. ¡Gracias! - matt thompson

Me alegro de que hayas encontrado una respuesta. Sin embargo, para que conste, puede usar Spring Security independientemente de su marco MVC. Eso significa que (si lo desea) puede usar Spring Security con Struts2 sin problemas. - Jonathan W

Me encantaría. Francamente, preferiría usar Struts MVC también, pero estos bichos raros no quieren ver un archivo spring jar en ninguna parte. Pero sí quieren que su autenticación esté respaldada por JAAS (que luego usa un módulo de inicio de sesión personalizado usando Hibernate). Este va a ser un contrato doloroso. - matt thompson

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.