Configuración de Spring Security dinámica

Estimados buen día, espero se encuentren muy bien, espero que alguno de ustedes me pueda orientar, resulta que necesito crear una configuración dinámica de seguridad con Spring Security, conozco muy poco del framework y por lo poco que he trabajado en el, recuerdo que cuando se configura la seguridad HttpSecurity se asigna los accesos para cada ROL y sobre que puede acceder cada uno de los roles de usuario, pero ahora resulta que se requiere que esta configuración que hasta donde tengo entendido cuando inicia el deploy de la aplicación se inicializa la configuración de la seguridad y esta se queda de manera estática dentro de la aplicación y esta es cambiada una vez que la aplicación es reiniciada, entonces me surge la duda de como se podría hacer para que esta configuración sea dinámica y se pudiera modificar en tiempo de ejecución para agregar,editar y hasta eliminar roles y permisos sin la necesidad de realizar un reinicio en el aplicativo.

Libro de Spring Batch (Duda)

Hola,

Conoceran algun buen Libro de Spring Batch con anotaciones y no con configuraciones XML? o Alguna documentacion completa que use de anotaciones?

Encontre el Spring Batch in Action edicion 2008 pero todo era con configuraciones XML, o Saben si el Spring Batch in Action Edicion 2011 ya viene con anotaciones? (Pregunto antes de comprarlo :O)

Gracias por su ayuda.

Kotlin for Beginners


Koltin
es un lenguaje dependiente de la Máquina Virtual Java (JVM); empresas como Google han adoptado este lenguaje porque promete ofrecer compatibilidad e interoperabilidad con proyectos hechos con le lenguaje Java. Kotlin es muy similar a otros lenguajes de programación como Scala y Go (e incluso Typescript). Al igual que Java posee tipos clase (Byte, Short, Int, Float, Double, Boolean, Char). Además podemos importar librerías de Java sin ningún problema. Para declarar una variable modificable usamos var, para declarar una variable no modificable usamos val (similar a Scala).

Actualmente es muy popular para el desarrollo de aplicaciones móviles en Android.

Usando SDKMAN! podemos instalarlo.

 

Mostramos la versión instalada.

 

Obtener información de LDAP

Hola, antes que nada un saludo, ya hace tiempo que no escribo nada, pero en este momento estoy teniendo algunos inconvenientes para trabajar una implementación con LDAP, exactamente para obtener información del UID del empleado.

Ya puedo saber si mis credenciales son validas, pero lo que no he podido hacer es obtener información más detallada del usuario que inicia sesión.

Alguien ha hecho algun desarrollo de ese tipo? cómo se deben enviar los DN correctos para poder obtener detalles de un usuario?

Espero alguien pueda ayudarme.

Ya no habra nada mejor que React, VUE o Angular?

Ya ni he escrito nada de React, me ha gustado bastante los hooks y muchos desarrolladores Web piensan que efectivamente React es la cima del desarrollo web, que para mejorar habría incluso que optimizar los navegadores en si mismo, sin embargo, no dejemos de pensar y preguntarnos Virtual DOM es lo mejor, realmente el DOM es tan lento como nos lo venden, a final de cuentas React, VUE y Angular corren sobre el navegador.

Hooks mejora la forma en que distribuimos estado y nos mantiene seguros de la POO, pero le carga bastante fuerte la mano al Garbage Collector, crear y recrear funciones no es de a gratis. Yo en lo personal he estado buscando librerias que no sean tan "gordas" como React, VUE o Angular un hello world en react pesa 70Kb.

¿Cómo edito metadatos de archivos de word?

Hola comunidad, solicitando su valioso apoyo, estoy tratando de modificar los metadatos de un archivo de word de office 365, con la librería de POI 3.9 como muestro a continuación.

 

En todas las fuentes que consulté no alcanzo a visualizar en que momento está modificación se guarda en mi archivo. Por lo tanto aunque ejecute esta rutina no sucede nada, en el archivo no cambia los metadatos cuando los veo desde las propiedades del documento.

Primeros pasos con Selenium I

Hola :

Esta es la primera entrada de lo que pienso podría ser una librería que en algún momento le podría servir a alguien, he estado pensando en una forma en la cual poder ayudar con la configuración un poco más ordenada de lo que es la automatización de pruebas, obviamente existen muchas maneras de realizar test y en algún momento estaré pensando en publicar todas o la mayoría de herramientas que nos permitan realizar estas tareas de alguna mejor forma, así que esta primera entrada tratara de las automatizaciones de pruebas front-end por medio de Selenium WebDriver.
También empezaré a escribir sobre postman y algunas cosas que he tenido que aprender (no soy perfil tester, pero me interesan este tipo de pruebas)
La solución que se va a desarrollar en futuros posts me ha servido, y tal vez alguien pueda modificarla o aprovecharla para su beneficio y adaptarla a sus propias necesidades esto es lo bonito de la POO, pero antes de picar código, se debe de empezar con la teoría :) animo !

Realtime sin websockets

Cuando nos llega un requerimiento de aplicaciones en tiempo real y este requerimiento viene despues de Junio del 2018, la primera solucion que te vendra a la mente, sera usar websockets (creo) porque es una de las formas en las que podemos obtener actualizaciones de informacion desde el servidor, sin embargo, muchas empresas sobre todo las mas actualizadas (bancos, aseguradoras e instituciones financieras), debido a sus restricciones de red no siempre permiten usar protocolos tales como websockets y muchos desarrolladores piensan que la unica alternativa a websockets es polling o long-polling (hacer requests cada 5 o 3 segundos, o extender el request lo mas posible hasta recibir una respuesta) y usar una libreria como cometd para ayudar con eso (adivinas, tampoco me gusta cometd, de hecho soy uno de esos desarrolladores que no le gustan muchas cosas :P).

Rendering por todos lados

Si creaste el contador con Hooks que revisamos con anterioridad, te habras dado cuenta que el contador se incrementa cada segundo, pero no usamos un interval estamos usando setTimeout; esto sucede porque estamos inicializando el setTimeout cada vez que renderizamos el componente y en React esto sucede cada vez que actualizas el estado de un componente, pero si tienes mas de 100000 componentes hijos (tal vez con un poco menos), notaras que empiezas a tener performance issues, antes de hooks la unica forma de solucionarlo es usar uno de las funciones del ciclo de vida de React shouldComponentUpdate pero eso nos obliga a que ese componente sea una Clase (y no queremos clases con Hooks, de hecho no queremos clases del todo :P, OOP is evil).

Para solucionar este posible problema, desde la version 16.6 de React tenemos React.memo que nos ayuda a mostar una version memoizada del componente que queremos, reduciendo drasticamente el numero de repintados en los hijos.

Codigo

Ahora veremos un ejemplo de contador usando React.memo

 

React useReducer

Cuando queremos manejar estado mas complejo que una sola variable, o que depende muchas condiciones antes de entregar el valor final. Es mejor usar useReducer, este hook es sumamente similar a Redux y como tal es un observer de estado al que podemos subscribir nuestro componente.

Redux no es igual a Hooks o al revés useReducer no es Redux, hay importantes consideraciones de diseño al momento de querer reemplazar redux con hooks, eso lo veremos después cuando presentemos algo mas complejo que un simple contador, de momento vamos a expandir nuestro contador.

El nuevo contador

El nuevo contador nos permitirá incrementar o reducir su valor a voluntad. Solo tiene dos botones a continuación presento el código

 

Distribuir contenido