2011-01-16 14 views
25

Esta es una pregunta muy simple, probablemente la más solicitada y desarrollada con frecuencia como parte de cualquier aplicación web. Supongamos que estoy planeando crear una aplicación web y algunos de los requisitos funcionales incluyen (además de los habituales requisitos de seguridad), - Necesita que los usuarios se registren para un nuevo perfil de cuenta - Autenticar usuario usando la autenticación de aplicación nativa/Facebook o Google o Yahoo o OpenID - Permitir recuperación de la contraseña perdida - Sesión de manipulación necesitaAplicación web - Autenticación/Marco de inicio de sesión

¿hay un fuera de los marcos de la caja (Drupal, Liferay, tapicería con Tynamo, Wicket ??) que puedo utilizar para envolver mi aplicación que puede ser un montón de JSP o HTML con JS? Sé que estoy haciendo una pregunta muy simple y quizás ingenua. Pero este es un tema al que irá a cargo cada gurú desarrollador web. Cualquier ayuda, consejo y consejos muy apreciados.

Respuesta

27

te recomiendo echar un vistazo a Apache Shiro: http://shiro.apache.org/

que maneja la parte de seguridad de su solicitud y le da una gran flexibilidad en la forma de asegurar las cosas. Por ejemplo, puede agregar una anotación para proteger métodos individuales (por ejemplo: no puede ejecutar este método a menos que sea un administrador), páginas individuales (por ejemplo: no puede cargar esta página a menos que sea un administrador), y patrones de URL (debe ser administrador para acceder a cualquier elemento que contenga/admin/* en la url).

Señale qué tan complejo se puede hacer con la seguridad, Shiro es muy fácil de usar. Puede tomar un poco de tiempo entender algunos de los conceptos inicialmente, pero Shiro hace un muy buen trabajo al ocultar la mayor complejidad posible. Además, la lista de usuarios es muy receptiva y extremadamente útil.

Si usa Tapestry, puede consultar http://tynamo.org/tapestry-security+guide Hace que sea muy fácil instalar y ejecutar Shiro en una aplicación Tapestry y le da algunas etiquetas fáciles de usar para usar en sus plantillas.

Shiro no le dará integración con OpenID, OAuth o Facebook, pero es muy probable que necesite personalizar esa parte para su aplicación. Creo que se está trabajando para ayudar a integrar las funciones que ayudarán a habilitar estos tipos de autenticación en el marco.

Algunos de los frameworks que se basan en Shiro pueden ofrecer más de lo que está buscando. Por ejemplo, http://tynamo.org/tynamo-federatedaccounts+guide le dará más soporte para inicios de sesión federados en una aplicación de tapiz. Todavía está en las primeras etapas, pero podría estar funcionando si está usando Tapestry. Incluso si no hace exactamente lo que necesita, podría proporcionar algunos buenos ejemplos para mirar.

Usted también puede estar interesado en: http://static.springsource.org/spring-security/site/

Como nota al margen: Además de la seguridad es probable que haya un montón de otras tecnologías que se necesitan en un proyecto web típico. Es posible que necesite seguridad, persistencia, administración básica de usuarios, etc. Si crea muchas aplicaciones web, podría valer la pena crear un arquetipo maven que le permita obtener rápidamente una nueva aplicación básica para que pueda comenzar a codificar con toda la estructura inicial ya está en su lugar. AppFuse intenta hacer esto, pero apunta más a permitirte muchas opciones diferentes cuando se trata de marcos web. Si sabe qué tecnología va a utilizar, tener una aplicación de inicio personalizada para sus necesidades puede representar un gran ahorro de tiempo.

0

Me gustaría ver Apache Shiro o Spring Security.

Cuestiones relacionadas