Spring Security

Visto 278 veces
Saltar al primer mensaje no leído

TrEbOr

no leída,
20 oct 2010, 10:25:0720/10/10
a Spring User Group Peru
en este ejemplo tengo 2 roles ROLE_ADMIN y ROLE_USER
existe forma de que esta configuracion sea dinamica? es decir roles en
base de datos y no en este archivo xml??

quiero hacer un administardor de perfiles dinamico


<http> <intercept-url pattern="/index.jsp"
filters="none" /> <intercept-url pattern="/
administracion.jsp" access="ROLE_ADMIN" /> <intercept-url
pattern="/*" access="ROLE_USER" /> <form-login /
> <anonymous /> <http-basic />
<logout logout-success-url="/index.jsp" /> </http>

Gracias

Alexis Gamarra Cano

no leída,
20 oct 2010, 13:24:2620/10/10
a spring-user...@googlegroups.com
Esa es una pregunta que muchos nos hacemos, espero que alguien pueda aportar con una buena respuesta.


Saludos cordiales,

Alexis Gamarra Cano
Cel: 995170650

Carlos Oliveira

no leída,
20 oct 2010, 13:42:3420/10/10
a spring-user...@googlegroups.com
interesante

2010/10/20 Alexis Gamarra Cano <alexis....@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "Spring User Group Peru" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a spring-user...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a spring-user-group...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/spring-user-group-peru?hl=es.



--
Thanks and Regards,

Carlos Oliveira Romero
    Software Engineer

Juan Picado

no leída,
20 oct 2010, 13:52:4620/10/10
a spring-user...@googlegroups.com

Creo que aqui hay una solucion..

http://forum.springsource.org/showthread.php?t=56615

Aunque en la version 3.0 cambian paquetes  y nombres de clase, la clase actual que usan en ese hilo seria esta

http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/web/access/intercept/FilterInvocationSecurityMetadataSource.html

Creo que todos son bean, y pueden ser extendidos, asi como yo utilizo el sistema de votacions de spring y extiendo para poder logearme con DAOS en hibernate , debe ser posible extender los <intercept-url pattern=> .. pienso yo, nunca lo he intentado ...

Es solo una idea, tal vez alguien que ya lo haya logrado :) .. seria super interesante ..

-- 
Juan Picado
Java Developer
http://blog.jotadeveloper.com/

Jonathan Lara Vasquez

no leída,
20 oct 2010, 14:33:3520/10/10
a spring-user...@googlegroups.com
Hola, spring security puede utilizar grupos y roles de acuerdo a un
esquema de tablas por defecto, me parece que son unas 4 tablas que una
vez agregadas a tu propia base de datos te permiten manejar "n"
cantidad de roles y usuarios asignados a estos roles.
También si se desea se pueden utilizar las tablas propias de cada
sistema para manejar los roles y los usuarios, en la configuración de
spring security solo hay que pasar por medio de un tag un bloque sql
que devuelva la lista de usuarios y de roles.

Te dejo un ejemplo de lo primero (utilizando un esquema de bbdd propio
de spring security) y yo hoy tengo un tema parecido al que te menciono
en el segundo caso al terminar mi proyecto de demo lo envío por
correo.

Saludos

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=utilizaciondegruposenspringsecurity

--
atte

Jonathan Lara V®
Twitter: @jonathanlarav
http://jonathanlarav.blogspot.com/

Lennon Shimokawa

no leída,
20 oct 2010, 15:06:3820/10/10
a Spring User Group Peru
Puedes usar una configuración así:
Customizando el users-by-username-query y authorities-by-username-
query, como está en este link:
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/appendix-schema.html

<authentication-manager>
<authentication-provider>
<jdbc-user-service data-source-
ref="dataSource"
users-by-username-query="SELECT
U.USERNAME, U.PASSWORD, 'true' enabled FROM USUARIO U WHERE
U.USERNAME=?"
authorities-by-username-query="SELECT
U.USERNAME, R.ROL FROM USUARIO U, ROL R WHERE U.USERNAME=R.USERNAME
AND U.USERNAME=?" />
</authentication-provider>
</authentication-manager>

On 20 oct, 13:33, Jonathan Lara Vasquez <jonathanla...@gmail.com>
wrote:
> Hola, spring security puede utilizar grupos y roles de acuerdo a un
> esquema de tablas por defecto, me parece que son unas 4 tablas que una
> vez agregadas a tu propia base de datos te permiten manejar "n"
> cantidad de roles y usuarios asignados a estos roles.
> También si se desea se pueden utilizar las tablas propias de cada
> sistema para manejar los roles y los usuarios, en la configuración de
> spring security solo hay que pasar por medio de un tag un bloque sql
> que devuelva la lista de usuarios y de roles.
>
> Te dejo un ejemplo de lo primero (utilizando un esquema de bbdd propio
> de spring security) y yo hoy tengo un tema parecido al que te menciono
> en el segundo caso al terminar mi proyecto de demo lo envío por
> correo.
>
> Saludos
>
> http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=util...

Edson Chavez

no leída,
20 oct 2010, 15:18:0820/10/10
a spring-user...@googlegroups.com
Hola La respuesta de Lenon es correcta el año pasado en el spring community day se mostro como hacerlo, lo que si njo he podido aun encontrar es si es posible definir el match entre las paginas y los roles en una base de datos y no en un archivo xml.

Edson
http://www.sindominio.net/ayuda/preguntas-inteligentes.html
http://soyfreakytambiengeek.blogspot.com/ <-- Mi Blog ^^


TrEbOr

no leída,
20 oct 2010, 16:34:5220/10/10
a Spring User Group Peru
eso es lo que necesito, el mach de url con los roles, seria cosa de
obtemerlas de una tabla, el tema es el como....
Gracias

On 20 oct, 16:18, Edson Chavez <edsoncha...@gmail.com> wrote:
> Hola La respuesta de Lenon es correcta el año pasado en el spring community
> day se mostro como hacerlo, lo que si njo he podido aun encontrar es si es
> posible definir el match entre las paginas y los roles en una base de datos
> y no en un archivo xml.
>
> Edsonhttp://www.sindominio.net/ayuda/preguntas-inteligentes.htmlhttp://soyfreakytambiengeek.blogspot.com/<-- Mi Blog ^^
>
> El 20 de octubre de 2010 14:06, Lennon Shimokawa <lshimok...@gmail.com>escribió:
>
>
>
> > Puedes usar una configuración así:
> > Customizando el users-by-username-query y authorities-by-username-
> > query, como está en este link:
>
> >http://static.springsource.org/spring-security/site/docs/3.0.x/refere...
> > spring-user-group...@googlegroups.com<spring-user-group-peru%­2Bunsu...@googlegroups.com>
> > Para tener acceso a más opciones, visita el grupo en
> >http://groups.google.com/group/spring-user-group-peru?hl=es.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

TrEbOr

no leída,
20 oct 2010, 16:45:0720/10/10
a Spring User Group Peru
si, gracias, no me explique bien, eso lo tengo, lo que quiero es el
mach roles v/s url desde la base y no fijo en el xml.
Gracias

On 20 oct, 15:33, Jonathan Lara Vasquez <jonathanla...@gmail.com>
wrote:
> Hola, spring security puede utilizar grupos y roles de acuerdo a un
> esquema de tablas por defecto, me parece que son unas 4 tablas que una
> vez agregadas a tu propia base de datos te permiten manejar "n"
> cantidad de roles y usuarios asignados a estos roles.
> También si se desea se pueden utilizar las tablas propias de cada
> sistema para manejar los roles y los usuarios, en la configuración de
> spring security solo hay que pasar por medio de un tag un bloque sql
> que devuelva la lista de usuarios y de roles.
>
> Te dejo un ejemplo de lo primero (utilizando un esquema de bbdd propio
> de spring security) y yo hoy tengo un tema parecido al que te menciono
> en el segundo caso al terminar mi proyecto de demo lo envío por
> correo.
>
> Saludos
>
> http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=util...

Roberto Calero

no leída,
20 oct 2010, 18:49:0620/10/10
a spring-user...@googlegroups.com
Estas confundiendo las cosas. Lo dinamico es que tu "usuario" pueda tener mas de un rol y en consecuencia acceder tanto a las paginas permitidas a ROLE_ADMIN y ROLE_USER, no al reves.
 
> Date: Wed, 20 Oct 2010 07:25:07 -0700
> Subject: [springperu] Spring Security
> From: rfern...@gmail.com
> To: spring-user...@googlegroups.com
> --
> Has recibido este mensaje porque estás suscrito al grupo "Spring User Group Peru" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a spring-user...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a spring-user-group...@googlegroups.com

Edson Chavez

no leída,
21 oct 2010, 1:34:5821/10/10
a spring-user...@googlegroups.com
Hola eso es algo que yo tambien he querido hacer, y tengo pendiente investigarlo, lo que pienso intentar es buscar que clase es la que lee el archivo que tiene el match entre las url's y los roles y ver si hay alguna clase heredada que me permita escribir mi propia rutina para que esa información la obtenga desde base de datos y no desde el archivo, 

sin embargo tambien quiero ver la forma en que se valida ese acceso, si es que ese archivo es consultado cada vez que se accede a una web pues al estar ahora en una base de datos, significa una consulta en cada carga y algo a tomar en cuenta.

a alguien se le ha ocurrido alguna otra forma de enfrentar el problema?

Roberto Calero

no leída,
21 oct 2010, 1:59:4621/10/10
a spring-user...@googlegroups.com
Lecturas contra disco (local) seran siempre mas rapidas que una lectura contra una base de dato (asi sea local). 
La verdad no le veo mucho sentido, especialemente si la filosofia de Spring es configuracion local.
 

Date: Thu, 21 Oct 2010 00:34:58 -0500
Subject: Re: [springperu] Re: Spring Security
From: edson...@gmail.com
To: spring-user...@googlegroups.com

Edson Chavez

no leída,
21 oct 2010, 2:14:0321/10/10
a spring-user...@googlegroups.com
hay manera de cambiar los permisos asignados en el archivo sin tener que reiniciar la aplicacion? de no ser asi tener que reiniciar la aplicacion para tener que asignar un nuevo permiso podria (y de hecho para muchos clientes es) algo demasiado costoso ademas de que tener todo en un solo archivo se vuelve dificil de mantener si ademas las combinaciones de permisos son muy complejas. por flexibilidad y facilidad de administracion hacerlo en base de datos es algo que se debería tomar en cuenta.

Saludos 

Roberto Calero

no leída,
21 oct 2010, 2:30:4021/10/10
a spring-user...@googlegroups.com
Si no me equivoco... lo que cambian son los permisos asignados a un usuario... la url normalmente tiene permisos bien definidos.
 

Date: Thu, 21 Oct 2010 01:14:03 -0500

Edson Chavez

no leída,
21 oct 2010, 2:33:5021/10/10
a spring-user...@googlegroups.com
justamente, si creas un nuevo rol, quieres que un rol tenga permisos sobre una url en la que antes no tenia, o simplemente quieres eliminar un o actualizar los permisos o roles, como lo harias sin reiniciar la aplicacion para modificar el archivo? una administracion por base de datos me parece una solucion mas flexible y facil de mantener.

Saludos.

Roberto Calero

no leída,
21 oct 2010, 2:57:1621/10/10
a spring-user...@googlegroups.com
Creo que es cosa de estrategia. Cuan frecuentemente se crean/eliminan roles? si me dices, todos los dias... yo argumentaria que el esquema de seguridad no existe.
 
En todo caso, digamos que suceden todos los dias... cual es el overhead en actualizar la base de datos y hacer fluir la nueva configuracion dentro de la aplicacion? La unica forma que la veo posible es usar AOP para aplicar dinamicamente los nuevos roles. Sin embargo y aun si fuera posible, eso involucraria destruir el proxy existente y crear uno nuevo (en buena cuenta creando una instancia nueva).  Si no les gusta AOP bueno, podrian verificar la nueva seguridad antes de permitir acceso a una URL. Sin embargo esto deberia ser ejecutado ANTES de acceder a la misma. Demasiado overhead que va a afectar la perfomance general de la aplicacion solo para ganar 'flexibilidad' en la configuracion de permisos.
 
Desde mi humilde punto de vista... los esquemas de seguridad son bien definidos. Cambian, pero no todos los dias.
 

Date: Thu, 21 Oct 2010 01:33:50 -0500

Edson Chavez

no leída,
21 oct 2010, 9:05:3721/10/10
a spring-user...@googlegroups.com
estoy de acuerdo, sin embargo que hacer cuando sucede?, el overheat que mencionas es cierto, pero cada vez que alguien accede a una web no tiene tambien que cargar datos desde alguna base de datos para mostrar informacion? combos, tablas, actualizar insertar, registros? creo que eso pasara siempre y no por ello hemos dejado las bases de datos para gestionar dichos cambios, si estas consultas de permisos ademas (que coincido en que no suelen cambiar mucho, generalmente pero si puede pasar) se colocaran en alguna cache de consultas reduces el tiempo de respuesta, solo por por ejemplo.

son ideas a las que he dado vueltas, ademas nuevamente de que, insisto con este tema por que he llegado a tener archivos de definicion de permisos bastante grandes y complicados de administrar para quien no entienda spring security, esto tambien es un problema si la seguridad de la aplicacion sera administrada por otra persona encargada de la seguridad de las aplicaciones web, decirle "ah si, lo que pasa es que como no cambia mucho pues tienes que bajar el war, descomprimirlo, cambias este archivo y tienes que aprender estos comandos" ahi ya no solo es un tema de performance sino tambien de usabilidad y administracion de la funcionalidad

Roberto Calero

no leída,
21 oct 2010, 9:52:2821/10/10
a spring-user...@googlegroups.com
Para no desviarnos mucho:
 
* Spring security declara la seguridad a aplicar en un archivo xml. Al momento de cargar por primera vez nuestra aplicacion, el aplication context se creara basado en las definiciones de objetos de ese archivo. Una vez creado, el aplication context es basicamente 'estatico' (por decirlo asi) por el tiempo de vida de la aplicacion.
 
1.Se puede modificar el spring context externalmente? Si. 
2.Significa potencialmente re-iniciar la aplicacion? Si.
3.Se podria modificar el context sin re-iniciar la aplicacion? Depende del tipo de modificacion y del contenedor.
 
Sobre lo que dices: "ah si, lo que pasa es que como no cambia mucho pues tienes que bajar el war, descomprimirlo, cambias este archivo y tienes que aprender estos comandos" ahi ya no solo es un tema de performance sino tambien de usabilidad y administracion de la funcionalidad.
 
Solucion: 
1.Modificas tus declaraciones de seguridad y actualizas el archivo en tu repositorio (manual).
2.Compilas (automaticamente).
3.Ejecutas tus tests (automaticamente).
4.Despliegas tu aplicacion (automaticamente)
 
Spring Security maneja la seguridad de forma declarativa, no de forma dinamica.
 

Date: Thu, 21 Oct 2010 08:05:37 -0500

Edson Chavez

no leída,
21 oct 2010, 10:20:5921/10/10
a spring-user...@googlegroups.com
es una opcion, pero equivale a un nuevo pase de la aplicacion a desarrollo, eso me parece hacer una sobrecarga a los procesos de la organizacion: regresar a desarrollo toda una aplicacion por un tema administrativo no me parece una buena opcion, si no me equivoco lo que mencionas es entrega continua, lo cual no esta implementado en todas las empresas.

el control de los roles es un tema administrativo, no de funcionalidad; digamos que no hay forma de hacerlo sin bajar la aplicacion, incluso asi es preferible tener una pantalla que me permita administrar esto de manera facil y flexible con lo que esa tarea se puede delegar a un administrador de la aplicacion y luego reiniciar la misma; en lugar de efectuar todo un regreso a desarrollo, testing y salida a produccion.

no quiero que se interprete que spring security es malo, me parece una excelente solucion muy robusta para desarrollar el control de la seguridad en las aplicaciones web y de hecho la uso bastante, pero el control de los permisos de los roles a traves de un esquema mas flexible y facil de administrar me parece una feature muy util y que muchos pedimos hace ya algo de tiempo.

Saludos Cordiales

Roberto Calero

no leída,
21 oct 2010, 19:26:0821/10/10
a spring-user...@googlegroups.com
De nuevo... Spring Security es declarativo y no dinamico :-) y en general Spring es declarativo y no dinamico.
 
El control de roles es un tema de funcionalidad en mi humilde opinion y como tal, cambios en los esquemas de roles tiene que ser testeada como cualquiere otro cambio de codigo.
 

Date: Thu, 21 Oct 2010 09:20:59 -0500

Edson Chavez

no leída,
21 oct 2010, 19:54:4221/10/10
a spring-user...@googlegroups.com
Si entendí lo de declarativo y no dinámico :) por ello en mi ultimo mensaje asumía esa situación: al cambiar los permisos necesariamente tienes que bajar la aplicación para que dichos cambios tengan efecto, mi gran incognita era si spring lee continuamente el archivo de validaciones; de ser asi, al estar en una base de datos seria algo a tomar en cuenta, no necesariamente una razón para desestimar como comente antes, pero si algo que evaluar.

Entonces, al ser declarativo  esta lectura se hace una vez, el costo sobre el desempeño de la aplicación se converte en una consulta mas al inicio de la misma algo perfectamente normal, por ello, de la misma forma como nos permite colocar la estructura de usuarios y roles en una base de datos de nuestro propio diseño y construir el select que utilizara para cargar esta estructura, podría de la misma forma permitirnos construir las tablas donde representar la relación entre los roles y url's para que según alguna consulta que definamos, cargar este match, de hecho esto permitiría desarrollar módulos que permitieran administrar los permisos que un rol tiene sobre una url determinada y que pueden ser utilizados por usuarios de seguridad con conocimientos administrativos mas que de programación o configuración del archivo de permisos.

Saludos

Roberto Calero

no leída,
21 oct 2010, 20:07:4621/10/10
a spring-user...@googlegroups.com
Spring solo lee el archivo de definicion 1 sola vez cuando crea el aplication context, a partir de ahi todo se realiza haciendo referencia al spring context (que esta en memoria).
 

Date: Thu, 21 Oct 2010 18:54:42 -0500

jamdiazdiaz

no leída,
21 oct 2010, 21:26:0721/10/10
a Spring User Group Peru
Estimados, a ver si entendí uds. quieren poder dejar la parte
declarativa

de URLs vs ROLES, como viene en todas las demos para que esto sea
dinamico, ¿no es asi?.

Bueno si se puede.

En spring security 2 lo hice implementando el ObjectDefinitionSource
(Spring Security 2.0.5.RELEASE API) que es una propiedad del
FilterSecurityInterceptor.


Para Spring security 3 ya cambió, la propiedad ahora se llama
securityMetadataSource. Pero ojo si estas usando namespaces no te va
a funcionar, vas a tener que declarar los beans como era en la epoca
de acegi para que te funcione.

Espero este aporte les sirva.

Joe

Roberto Calero

no leída,
21 oct 2010, 21:35:3121/10/10
a spring-user...@googlegroups.com
Si claro, pero ObjectDefinitionSource solo lee y almacena la configuracion de seguridad una sola vez al momento de cargarse el context. Me equivoco?
 
> Date: Thu, 21 Oct 2010 18:26:07 -0700
> Subject: [springperu] Re: Spring Security
> From: jamdi...@gmail.com
> To: spring-user...@googlegroups.com

Roberto Calero

no leída,
21 oct 2010, 21:53:1221/10/10
a spring-user...@googlegroups.com
Me explayo mejor... la definicion usada by default lee la configuracion cargada del context.
 
Si creamos una implementacion de esa interface, podremos leer la configuracion de seguridad desde cualquier otra fuente de data. Ojo que eso va a ejecutarse ANTES de cada acceso a una URL. La validation de la seguridad se maneja a travez de un AOP proxy como comente antes.
 
A tener en cuenta es el overhead que eso tendria como consecuencia.
 

From: roberto...@hotmail.com
To: spring-user...@googlegroups.com
Subject: RE: [springperu] Re: Spring Security
Date: Fri, 22 Oct 2010 11:35:31 +1000

Edson Chavez

no leída,
22 oct 2010, 9:05:0922/10/10
a spring-user...@googlegroups.com
Una aclaracion, en mi caso lo que queria lograr era leer la relacion entre URL y Rol desde otra fuente de datos que no sea el archivo de configuracion ( una Base de datos por ejemplo) sin importar si es de manera declarativa cargandola al inicio de la aplicacion o de manera dinamica cada vez que se accede, con lo que mencionan lo veo posible

TrEbOr

no leída,
22 oct 2010, 11:50:4922/10/10
a Spring User Group Peru
On 20 oct, 19:49, Roberto Calero <roberto_cal...@hotmail.com> wrote:
> Estas confundiendo las cosas. Lo dinamico es que tu "usuario" pueda tener mas de un rol y en consecuencia acceder tanto a las paginas permitidas a ROLE_ADMIN y ROLE_USER, no al reves.


Creo que todavia no se entiende.

la ideas es poder crear ROLES,
si creo un nevo ROLE_CONSULTA, que solo pueda accder al home y a otras
urls
tendria que editar el xml y escribir dicho rol

el tema es que no tenga que confugurarlo en el xml
<intercept-url pattern="/*" access="ROLE_USER" />

sino que lo obtenga de la base de datos

Carlos Alberto

no leída,
22 oct 2010, 13:04:4422/10/10
a spring-user...@googlegroups.com
Efectivamente amigo, creo que nadie a respondido directamente tu pregunta o que tu no has logrado interpretar bien las respuestas

Spring Security propone un esquema de dase de datos por defecto el cual puede almacenar los usuario, y los roles entre otras cosas, este esquema con los nombres que propone el esquema son configurables desde el xml, así logras trabajar directamente desde la base de datos

Si quieres puedes revisar estos links
http://static.springsource.org/spring-security/site/docs/2.0.x/reference/appendix-schema.html
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/appendix-schema.html

te dejo de tarea que busques la forma de como ligar el archivo de configuración de spring security al xml, estuve buscando la configuración pero no la encontré, si recuerdo que había que usar los nombres que propone el esquema.

Roberto Calero

no leída,
22 oct 2010, 19:45:5222/10/10
a spring-user...@googlegroups.com
Como mencione.... se puede pero ..es recomendable?
 
http://static.springsource.org/spring-security/site/faq/faq.html#faq-dynamic-url-metadata
 
Overhead... a mi pobre entender.
 
ps. Existe una discusion similar en los foros de LinkEdin.
 

Date: Fri, 22 Oct 2010 11:04:44 -0600
Subject: Re: [springperu] Re: Spring Security
From: cale...@gmail.com
To: spring-user...@googlegroups.com

Edson Chavez

no leída,
22 oct 2010, 22:42:3122/10/10
a spring-user...@googlegroups.com
Resumiendo:

Pregunta 1: puedes crear Los usuarios y roles en una base de datos propia o usar un esquema que ya exista? : SI, de esta forma:


<authentication-manager>
                       <authentication-provider>
                       <jdbc-user-service data-source-
ref="dataSource"
                               users-by-username-query="SELECT
U.USERNAME, U.PASSWORD, 'true' enabled FROM USUARIO U WHERE
U.USERNAME=?"
                               authorities-by-username-query="SELECT
U.USERNAME, R.ROL FROM USUARIO U, ROL R WHERE U.USERNAME=R.USERNAME
AND U.USERNAME=?" />
               </authentication-provider>
</authentication-manager>


Pregunta 2: puedes hacer el match entre las urls y los roles en una base de datos y obviar el archivo de configuracion? : SI

aqui no hay ejemplo pero si un enlace que leer y da una idea de como hacerlo: http://static.springsource.org/spring-security/site/faq/faq.html#faq-dynamic-url-metadata

algunos puntos importantes del enlace: un cambio en la seguridad debería ser siempre auditado, probado y autorizado si tomas eso en cuenta como creo que se hace ante cualquier cambio planificado y controlado en la seguridad, tendras que implementar la interface FilterInvocationSecurityMetadataSource a fin de poder cargar estas relaciones desde una fuente diferente al archivo de configuracion.

Pregunta 3  : pueden modificarse los permisos de manera dinamica, entendiendo por dinamico que los cambios se hagan efectivos inmediatamente sin reiniciar la aplicacion?: aparentemente NO

al menos de la lectura del enlace anterior se puede entender eso, el comportamiento por defecto es cargar los permisos en un mapa en memoria por lo que para cambiarlo es necesario reiniciar la aplicacion.

Edson Chavez

no leída,
22 oct 2010, 22:49:3522/10/10
a spring-user...@googlegroups.com
una pequeña observacion sobre el query que use en la respuesta a la pregunta 1 : spring security define 3 datos para identificar a alguien: usuario, password y habilitado, el query empleado sirve en un entorno en que no tienes el concepto de habilitado, esto equivale a que un usuario siempre esta habilitado para acceder al sistema como puede verse en el query:
users-by-username-query="SELECT
U.USERNAME, U.PASSWORD, 'true' enabled FROM USUARIO U WHERE
U.USERNAME=?"

 el tercer elemento que devuelve el query esta colocado como una constante que siempre devuelve "true" si tu aplicacion si maneja el concepto de habilitado deberias reemplazar la constante por la columna correspondiente a dicho estado

Saludos

joedayz

no leída,
25 oct 2010, 17:27:1625/10/10
a Spring User Group Peru
Yo he usado esto

public class MySecureResourceFilter implements
FilterInvocationSecurityMetadataSource {

private Properties urlProperties;

public Collection<ConfigAttribute> getAllConfigAttributes() {
return null;
}

public Collection<ConfigAttribute> getAttributes(Object filter)
throws IllegalArgumentException {
FilterInvocation filterInvocation = (FilterInvocation) filter;
String url = filterInvocation.getRequestUrl();

......
}

public boolean supports(Class<?> arg0) {
return true;
}

public void setUrlProperties(Properties urlProperties) {
this.urlProperties = urlProperties;
}

public Properties getUrlProperties() {
return urlProperties;
}
}


Estoy probando con Bean Post Processor, a ver como me va.

Pues

On 21 oct, 20:53, Roberto Calero <roberto_cal...@hotmail.com> wrote:
> Me explayo mejor... la definicion usada by default lee la configuracion cargada del context.
>
> Si creamos una implementacion de esa interface, podremos leer la configuracion de seguridad desde cualquier otra fuente de data. Ojo que eso va a ejecutarse ANTES de cada acceso a una URL. La validation de la seguridad se maneja a travez de un AOP proxy como comente antes.
>
> A tener en cuenta es el overhead que eso tendria como consecuencia.
>
> From: roberto_cal...@hotmail.com
> To: spring-user...@googlegroups.com
> Subject: RE: [springperu] Re: Spring Security
> Date: Fri, 22 Oct 2010 11:35:31 +1000
>
> Si claro, pero ObjectDefinitionSource solo lee y almacena la configuracion de seguridad una sola vez al momento de cargarse el context. Me equivoco?
>
>
>
>
>
>
>
>
>
> > Date: Thu, 21 Oct 2010 18:26:07 -0700
> > Subject: [springperu] Re: Spring Security
> > From: jamdiazd...@gmail.com
> > Para tener acceso a más opciones, visita el grupo enhttp://groups.google.com/group/spring-user-group-peru?hl=es.

Lennon Shimokawa

no leída,
25 oct 2010, 19:05:1125/10/10
a Spring User Group Peru
Edson ya tienes buen material para un workshop de Spring Security
avanzado ;)
Hasta creo que podemos armar 2 sesiones, básico y avanzado.

Edson Chavez

no leída,
25 oct 2010, 19:14:5725/10/10
a spring-user...@googlegroups.com
jaja sip. yo que pense repetir lo mismo del año pasado creo que se hace obligado implementar una validacion de url desde base de datos

TrEbOr

no leída,
12 nov 2010, 10:15:1812/11/10
a Spring User Group Peru
Seria bueno probar y subir un ejemplo.
saludos

On 25 oct, 20:14, Edson Chavez <edsoncha...@gmail.com> wrote:
> jaja sip. yo que pense repetir lo mismo del año pasado creo que se hace
> obligado implementar una validacion de url desde base de datos
>
> Edsonhttp://www.sindominio.net/ayuda/preguntas-inteligentes.htmlhttp://soyfreakytambiengeek.blogspot.com/<-- Mi Blog ^^
>
> El 25 de octubre de 2010 18:05, Lennon Shimokawa <lshimok...@gmail.com>escribió:
>
>
>
> > Edson ya tienes buen material para un workshop de Spring Security
> > avanzado ;)
> > Hasta creo que podemos armar 2 sesiones, básico y avanzado.
>
> > --
> > Has recibido este mensaje porque estás suscrito al grupo "Spring User Group
> > Peru" de Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo electrónico a
> > spring-user...@googlegroups.com.
> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > spring-user-group...@googlegroups.com<spring-user-group-peru%­2Bunsu...@googlegroups.com>
> > Para tener acceso a más opciones, visita el grupo en
> >http://groups.google.com/group/spring-user-group-peru?hl=es.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos