Foros del Web » Programación para mayores de 30 ;) » Java »

Dudas Spring

Estas en el tema de Dudas Spring en el foro de Java en Foros del Web. Hola, tengo un par de dudas puntuales acerca del módulo de seguridad de Spring (Spring Security). ¿Se puede restringir el acceso a partes concretas de ...
  #1 (permalink)  
Antiguo 05/08/2010, 08:31
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 19 años, 5 meses
Puntos: 0
Dudas Spring

Hola,
tengo un par de dudas puntuales acerca del módulo de seguridad de Spring (Spring Security).

¿Se puede restringir el acceso a partes concretas de una página JSP, o solamente se define la restricción a nivel de página? Quiero decir, puedo evitar que dentro de una página que muestra un listado y una serie de botones con herramientas, un usuario pueda utilizar tales herramientas si no tiene un determinado rol?

Y la segunda: he leído tutoriales por la Web, y veo que se suele utilizar una base de datos, para almacenar los roles, usuarios y demás información de seguridad para que luego se aplique en el contexto de la aplicación. ¿Se puede definir esta seguridad en ficheros xml en lugar de en tablas de una base de datos?

Muchas gracias

Un saludo
  #2 (permalink)  
Antiguo 13/08/2010, 15:44
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 10 meses
Puntos: 10
Respuesta: Dudas Spring

Hola Sir,

Claro que si se puede! :) eso es lo grandioso de Spring.

Bueno, para tu primera pregunta hay unos tags de Spring Security que te pueden servir:
Código:
<security:authorize ifAnyGranted | ifAllGranted | ifNotGranted = "TUS_ROLES, ROL2, ROL3">
así el contenido restringido es ocultado.

ejemplo:
Código:
<div id="toolbar">
	<security:authorize ifAnyGranted="ROLE_ADMIN, ROLE_USER">
		<s:a id="main" action="main">Main</s:a>
		
		<security:authorize ifAllGranted="ROLE_ADMIN">
			<s:a id="adminOnly" action="admin">Admin Only!</s:a>
		</security:authorize>

		<s:a id="exit-btn" href="j_spring_security_logout">Logout</s:a>
	</security:authorize>
</div>
Otra cosa mas eficiente que puedes hacer es Usar el StrutsMenu Plugin :) Lo que hace es generar un menu basado en roles.




Respondiendo a tu segunda pregunta:

Lo que puedes hacer es tu propia implementación de AuthenticatorProvider. O puedes usar un InMemoryUser Details y definir los usuarios en el archivo de configuracion de Spring, no lo recomiendo mucho pero se puede.

Código:
    <authentication-provider user-service-ref="inMemoryUserService">
        <password-encoder hash="plaintext"/>
    </authentication-provider>
    <user-service id="inMemoryUserService">
    	<user password="hualro" name="hualro" authorities="ROLE_ADMIN"/>
    	<user password="test" name="test" authorities="ROLE_USER" />
    </user-service>


Saludos!!!

Etiquetas: acegi, seguridad, spring
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:40.