Sei sulla pagina 1di 9

Integración de un sistema de información con la base de datos

Daniel Esparza

Taller de integración de software

Instituto IACC

09/09/2019
Desarrollo

Realiza la implementación a nivel de programación políticas de seguridad al sistema de


información por medio de un módulo de gestión de seguridad.

Estimado profesor en mi caso el login creado con java2E spring boot se implementó la librería spring segurity.

A continuación, explicare rápidamente la implementación de del modulo de seguridad spring boot security.

Primero que todo debemos agregar la dependencia

<dependencies>
.
.
.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
.
.
.
</dependencies>

>

En nuestro archivo de dependencias pom.xml


Necesitaremos dos nuevas clases, la primera implementara el login en la aplicacion implementando

una clase de Spring Security. Y la segunda clase servirá para sobre escribir la configuración web

predeterminada.

En el paquete de servicios, crea la clase UsuarioDetailsServiceImple.java.

package fknop.app.service;

import java.util.HashSet;

import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.security.core.GrantedAuthority;

import org.springframework.security.core.authority.SimpleGrantedAuthority;

import org.springframework.security.core.userdetails.User;

import org.springframework.security.core.userdetails.UserDetails;

import org.springframework.security.core.userdetails.UserDetailsService;

import org.springframework.security.core.userdetails.UsernameNotFoundException;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import fknop.app.dao.DaoUser;

import fknop.app.entity.Role;

@Service

@Transactional

public class UsuarioDetailsServiceImple implements UserDetailsService{

@Autowired

private DaoUser userDao;

@Override

public UserDetails loadUserByUsername(String username) throws

UsernameNotFoundException {

//Buscar nombre de usuario en nuestra base de datos

fknop.app.entity.User user =

userDao.findByUsername(username).orElseThrow(()-> new UsernameNotFoundException

("Login usuario invalido"));

Set granList = new HashSet<>();

for (Role roles : user.getRoles()) {


GrantedAuthority grantedAuthority = new

SimpleGrantedAuthority(roles.getDescription());

granList.add(grantedAuthority);

//Crear y retornar Objeto de usuario soportado por Spring Securit

UserDetails userr = (UserDetails) new User(user.getUsername(),

user.getPassword(), granList);

return userr;

}
La siguiente clase la creamos en la raíz

WebSecurityConfig.java

Y el ultimo toque para complementar la configuración es asegurarte que tu formulario de login tenga

los siguientes atributos, en especial el método post.


ADMIN USER

1.Crear Usuarios

2.Editar Cualquier Usuario Editar Propia informacion

3.Eliminar Cualquier Usuario

4.Cambiar Password Cualquier Usuario Cambiar su Propio Password (ingresando el actual)

Para preguntar por un rol especifico poner la sentencia hasRole, para preguntar por mas de un rol

poner la sentencia hasAnyRole separando cada rol con una coma, por ejemplo. (‘rol1′,’rol2’)

En la siguiente imagen se valida si el usuario es administrador puede editar todos los usuarios de lo

contrario solo puede editar su información.

En la siguiente imagen validamos la autorización si de RLE_ADMIN puede cambiar contraseña

sin ingresar contraseña actual de lo contrario deberá ingresar contraseña actual antes de cambias
Realizar la bitácora de usuarios y la almacena en la base de datos realiza pruebas de la
operatividad de los datos validados en la base de datos.
Bibliografía

[Haga triple clic en cualquier parte de este párrafo para escribir la primera referencia bibliográfica.]

Instrucciones para la sección de las citas bibliográficas:


Escriba la bibliografía aquí en orden alfabético (empezando por el apellido del primer autor o, de
no haber autor, por la primera palabra del título). Esta página ya está formateada con sangrías
francesas. Incluya sólo las citas bibliográficas a las que haya hecho referencia en su trabajo y
asegúrese de incluir todas las citas bibliográficas a las que se haya referido en el mismo.

Ejemplo de un periódico:

Lee, H. W. (2005). Los factores que influyen en los expatriados. Journal of American Academy of

Business, 6(2), 273-279. Consultado el 29 de enero de 2009, del banco de datos

ProQuest.

Ejemplo de un texto:

McShane, S. L., & Von Glinow, M. (2004). Organizational behavior: Emerging realities for the

workplace. New York: The McGraw-Hill Companies.

NOTA: Liste las citas bibliográficas en orden alfabético del apellido del autor, NO por el
tipo de la publicación. Los ejemplos previos le ayudarán a darle formato a cada tipo de
publicación en forma adecuada.

Por ejemplo:

 Banco de datos EBSCOhost


 Banco de datos ProQuest
 EIU Viewswire
 InvestText Plus

Borre este recuadro de instrucciones antes de enviar su trabajo de investigación final.

Potrebbero piacerti anche