Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Antonio Rueda
/
UJACoin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d6a805f2
authored
Nov 23, 2022
by
Antonio Rueda
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Revisión y actualización usando records de Java para los DTOs.
parent
14aed9e0
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
178 additions
and
347 deletions
pom.xml
src/main/java/es/ujaen/dae/ujacoin/app/UjaCoinApp.java
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOCliente.java
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOCuenta.java
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOMovimiento.java
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOTarjeta.java
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/ControladorREST.java → src/main/java/es/ujaen/dae/ujacoin/rest/ControladorREST.java
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOCliente.java
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOCuenta.java
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOMovimiento.java
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOTarjeta.java
src/main/java/es/ujaen/dae/ujacoin/seguridad/ServicioDatosCliente.java
src/main/java/es/ujaen/dae/ujacoin/seguridad/ServicioSeguridadUjaCoin.java
src/test/java/es/ujaen/dae/ujacoin/controladoresREST/ControladorRESTTest.java → src/test/java/es/ujaen/dae/ujacoin/rest/ControladorRESTTest.java
src/test/java/es/ujaen/dae/ujacoin/servicios/ServicioUjaCoinTest.java
pom.xml
View file @
d6a805f2
...
@@ -7,14 +7,14 @@
...
@@ -7,14 +7,14 @@
<packaging>
jar
</packaging>
<packaging>
jar
</packaging>
<properties>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<maven.compiler.source>
1
1
</maven.compiler.source>
<maven.compiler.source>
1
6
</maven.compiler.source>
<maven.compiler.target>
1
1
</maven.compiler.target>
<maven.compiler.target>
1
6
</maven.compiler.target>
</properties>
</properties>
<parent>
<parent>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.
6.1
</version>
<version>
2.
7.5
</version>
</parent>
</parent>
<dependencies>
<dependencies>
...
...
src/main/java/es/ujaen/dae/ujacoin/app/UjaCoinApp.java
View file @
d6a805f2
...
@@ -13,7 +13,7 @@ import org.springframework.cache.annotation.EnableCaching;
...
@@ -13,7 +13,7 @@ import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
(
scanBasePackages
=
{
@SpringBootApplication
(
scanBasePackages
=
{
"es.ujaen.dae.ujacoin.servicios"
,
"es.ujaen.dae.ujacoin.servicios"
,
"es.ujaen.dae.ujacoin.repositorios"
,
"es.ujaen.dae.ujacoin.repositorios"
,
"es.ujaen.dae.ujacoin.
controladoresREST
"
,
"es.ujaen.dae.ujacoin.
rest
"
,
"es.ujaen.dae.ujacoin.seguridad"
"es.ujaen.dae.ujacoin.seguridad"
})
})
@EntityScan
(
basePackages
=
"es.ujaen.dae.ujacoin.entidades"
)
@EntityScan
(
basePackages
=
"es.ujaen.dae.ujacoin.entidades"
)
...
...
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOCliente.java
deleted
100644 → 0
View file @
14aed9e0
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
controladoresREST
.
DTO
;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
java.time.LocalDate
;
/**
* DTO para recopilación de datos de cliente
* @author ajrueda
*/
public
class
DTOCliente
{
/** DNI del cliente*/
String
dni
;
/** Nombre completo */
String
nombre
;
/** Fecha de nacimiento */
LocalDate
fNacimiento
;
/** Dirección del domicilio */
String
direccion
;
/** Teléfono */
String
tlf
;
/** Email */
String
email
;
/** Clave de acceso al sistema */
String
clave
;
public
DTOCliente
(
String
dni
,
String
nombre
,
LocalDate
fNacimiento
,
String
direccion
,
String
tlf
,
String
email
,
String
clave
)
{
this
.
dni
=
dni
;
this
.
nombre
=
nombre
;
this
.
fNacimiento
=
fNacimiento
;
this
.
direccion
=
direccion
;
this
.
tlf
=
tlf
;
this
.
email
=
email
;
this
.
clave
=
clave
;
}
public
DTOCliente
(
Cliente
cliente
)
{
this
.
dni
=
cliente
.
getDni
();
this
.
nombre
=
cliente
.
getNombre
();
this
.
fNacimiento
=
cliente
.
getfNacimiento
();
this
.
direccion
=
cliente
.
getDireccion
();
this
.
tlf
=
cliente
.
getTlf
();
this
.
email
=
cliente
.
getEmail
();
this
.
clave
=
""
;
}
public
String
getDni
()
{
return
dni
;
}
public
String
getNombre
()
{
return
nombre
;
}
public
LocalDate
getfNacimiento
()
{
return
fNacimiento
;
}
public
String
getDireccion
()
{
return
direccion
;
}
public
String
getTlf
()
{
return
tlf
;
}
public
String
getEmail
()
{
return
email
;
}
public
String
getClave
()
{
return
clave
;
}
public
Cliente
aCliente
()
{
return
new
Cliente
(
dni
,
nombre
,
fNacimiento
,
direccion
,
tlf
,
email
,
clave
);
}
}
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOCuenta.java
deleted
100644 → 0
View file @
14aed9e0
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
controladoresREST
.
DTO
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
/**
* DTO para información de cuentas bancarias en UJACoin
* @author ajrueda
*/
public
class
DTOCuenta
{
/** Número de cuenta */
String
num
;
/** Saldo de la cuenta en Ujacoins */
float
saldo
;
/** Titular de la cuenta */
String
titular
;
public
DTOCuenta
(
String
num
,
float
saldo
,
String
titular
)
{
this
.
num
=
num
;
this
.
saldo
=
saldo
;
this
.
titular
=
titular
;
}
public
DTOCuenta
(
Cuenta
cuenta
)
{
this
.
num
=
cuenta
.
getNum
();
this
.
saldo
=
cuenta
.
getSaldo
();
this
.
titular
=
cuenta
.
getTitular
().
getDni
();
}
public
String
getNum
()
{
return
num
;
}
public
float
getSaldo
()
{
return
saldo
;
}
public
String
getTitular
()
{
return
titular
;
}
}
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOMovimiento.java
deleted
100644 → 0
View file @
14aed9e0
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
controladoresREST
.
DTO
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Ingreso
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Movimiento
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Reintegro
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.TransferenciaEmitida
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.TransferenciaRecibida
;
import
java.util.List
;
import
java.util.Optional
;
/**
*
* @author ajrueda
*/
public
class
DTOMovimiento
{
public
static
final
String
INGRESO
=
"ingreso"
;
public
static
final
String
REINTEGRO
=
"reintegro"
;
public
static
final
String
TRANSFERENCIA_EMITIDA
=
"transferenciaEmitida"
;
public
static
final
String
TRANSFERENCIA_RECIBIDA
=
"transferenciaRecibida"
;
/** Tipo del movimiento: ingreso, reintegro, transferencia */
String
tipo
;
/** Número de tarjeta para ingreso/reintegro */
String
numTarjeta
;
/** Cuenta destino para transferencia */
String
numCuenta
;
/** Importe de la operación */
float
importe
;
public
DTOMovimiento
(
String
tipo
,
String
numTarjeta
,
String
numCuenta
,
float
importe
)
{
this
.
tipo
=
tipo
;
this
.
numTarjeta
=
numTarjeta
;
this
.
numCuenta
=
numCuenta
;
this
.
importe
=
importe
;
}
public
static
DTOMovimiento
ingreso
(
String
numTarjeta
,
float
importe
)
{
return
new
DTOMovimiento
(
INGRESO
,
numTarjeta
,
null
,
importe
);
}
public
static
DTOMovimiento
reintegro
(
String
numTarjeta
,
float
importe
)
{
return
new
DTOMovimiento
(
REINTEGRO
,
numTarjeta
,
null
,
importe
);
}
public
static
DTOMovimiento
transferencia
(
String
numCuentaDestino
,
float
importe
)
{
return
new
DTOMovimiento
(
TRANSFERENCIA_EMITIDA
,
null
,
numCuentaDestino
,
importe
);
}
public
DTOMovimiento
(
Movimiento
movimiento
)
{
this
.
importe
=
movimiento
.
getImporte
();
if
(
movimiento
instanceof
Ingreso
)
{
this
.
tipo
=
INGRESO
;
this
.
numTarjeta
=
((
Ingreso
)
movimiento
).
getTarjeta
().
getNum
();
}
else
if
(
movimiento
instanceof
Reintegro
)
{
this
.
tipo
=
REINTEGRO
;
this
.
numTarjeta
=
((
Reintegro
)
movimiento
).
getTarjeta
().
getNum
();
}
else
if
(
movimiento
instanceof
TransferenciaEmitida
)
{
this
.
tipo
=
TRANSFERENCIA_EMITIDA
;
this
.
numCuenta
=
((
TransferenciaEmitida
)
movimiento
).
getCuentaDestino
().
getNum
();
}
else
if
(
movimiento
instanceof
TransferenciaRecibida
)
{
this
.
tipo
=
TRANSFERENCIA_RECIBIDA
;
this
.
numCuenta
=
((
TransferenciaRecibida
)
movimiento
).
getCuentaOrigen
().
getNum
();
}
}
public
String
getTipo
()
{
return
tipo
;
}
public
String
getNumTarjeta
()
{
return
numTarjeta
;
}
public
String
getNumCuenta
()
{
return
numCuenta
;
}
public
float
getImporte
()
{
return
importe
;
}
public
Optional
<
Movimiento
>
aMovimiento
(
List
<
Tarjeta
>
tarjetas
,
List
<
Cuenta
>
cuentas
)
{
if
(
tipo
==
null
)
{
return
Optional
.
empty
();
}
switch
(
tipo
)
{
case
INGRESO:
if
(
numTarjeta
==
null
)
{
return
Optional
.
empty
();
}
return
tarjetas
.
stream
()
.
filter
(
t
->
t
.
getNum
().
equals
(
numTarjeta
))
.
findAny
()
.
map
(
t
->
new
Ingreso
(
t
,
importe
));
case
REINTEGRO:
if
(
numTarjeta
==
null
)
{
return
Optional
.
empty
();
}
return
tarjetas
.
stream
()
.
filter
(
t
->
t
.
getNum
().
equals
(
numTarjeta
))
.
findAny
()
.
map
(
t
->
new
Reintegro
(
t
,
importe
));
case
TRANSFERENCIA_EMITIDA:
if
(
numCuenta
==
null
)
{
return
Optional
.
empty
();
}
return
cuentas
.
stream
()
.
filter
(
c
->
c
.
getNum
().
equals
(
numCuenta
))
.
findAny
()
.
map
(
c
->
new
TransferenciaEmitida
(
c
,
importe
));
default
:
return
Optional
.
empty
();
}
}
}
src/main/java/es/ujaen/dae/ujacoin/controladoresREST/DTO/DTOTarjeta.java
deleted
100644 → 0
View file @
14aed9e0
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
controladoresREST
.
DTO
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
java.time.LocalDate
;
/**
* DTO para información de tarjetas bancarias
* @author ajrueda
*/
public
class
DTOTarjeta
{
/** Número de tarjeta */
String
num
;
/** Titular de la tarjeta (puede ser diferente al cliente que la usa */
String
titular
;
/** Fecha de caducidad */
LocalDate
fechaCaducidad
;
/** Código de seguridad (CVC) */
String
cvc
;
public
DTOTarjeta
(
String
num
,
String
titular
,
LocalDate
fechaCaducidad
,
String
cvc
)
{
this
.
num
=
num
;
this
.
titular
=
titular
;
this
.
fechaCaducidad
=
fechaCaducidad
;
this
.
cvc
=
cvc
;
}
public
DTOTarjeta
(
Tarjeta
tarjeta
)
{
this
.
num
=
tarjeta
.
getNum
();
this
.
titular
=
tarjeta
.
getTitular
();
this
.
fechaCaducidad
=
tarjeta
.
getFechaCaducidad
();
this
.
cvc
=
tarjeta
.
getCvc
();
}
public
String
getNum
()
{
return
num
;
}
public
String
getTitular
()
{
return
titular
;
}
public
LocalDate
getFechaCaducidad
()
{
return
fechaCaducidad
;
}
public
String
getCvc
()
{
return
cvc
;
}
public
Tarjeta
aTarjeta
()
{
return
new
Tarjeta
(
num
,
titular
,
fechaCaducidad
,
cvc
);
}
}
src/main/java/es/ujaen/dae/ujacoin/
controladoresREST
/ControladorREST.java
→
src/main/java/es/ujaen/dae/ujacoin/
rest
/ControladorREST.java
View file @
d6a805f2
...
@@ -3,12 +3,12 @@
...
@@ -3,12 +3,12 @@
* To change this template file, choose Tools | Templates
* To change this template file, choose Tools | Templates
* and open the template in the editor.
* and open the template in the editor.
*/
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
controladoresREST
;
package
es
.
ujaen
.
dae
.
ujacoin
.
rest
;
import
es.ujaen.dae.ujacoin.
controladoresREST.DTO
.DTOCliente
;
import
es.ujaen.dae.ujacoin.
rest.dto
.DTOCliente
;
import
es.ujaen.dae.ujacoin.
controladoresREST.DTO
.DTOCuenta
;
import
es.ujaen.dae.ujacoin.
rest.dto
.DTOCuenta
;
import
es.ujaen.dae.ujacoin.
controladoresREST.DTO
.DTOMovimiento
;
import
es.ujaen.dae.ujacoin.
rest.dto
.DTOMovimiento
;
import
es.ujaen.dae.ujacoin.
controladoresREST.DTO
.DTOTarjeta
;
import
es.ujaen.dae.ujacoin.
rest.dto
.DTOTarjeta
;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Movimiento
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Movimiento
;
...
@@ -146,22 +146,22 @@ public class ControladorREST {
...
@@ -146,22 +146,22 @@ public class ControladorREST {
/** Registrar un nuevo movimiento en la cuenta */
/** Registrar un nuevo movimiento en la cuenta */
@PostMapping
(
"/clientes/{dni}/cuentas/{numCuenta}/movimientos"
)
@PostMapping
(
"/clientes/{dni}/cuentas/{numCuenta}/movimientos"
)
ResponseEntity
<
Void
>
registrarMovimiento
(
@PathVariable
String
dni
,
@PathVariable
String
numCuenta
,
@RequestBody
DTOMovimiento
movimiento
)
{
ResponseEntity
<
Void
>
registrarMovimiento
(
@PathVariable
String
dni
,
@PathVariable
String
numCuenta
,
@RequestBody
DTOMovimiento
movimiento
)
{
if
(
movimiento
.
getT
ipo
()
==
null
)
{
if
(
movimiento
.
t
ipo
()
==
null
)
{
return
ResponseEntity
.
badRequest
().
build
();
return
ResponseEntity
.
badRequest
().
build
();
}
}
try
{
try
{
switch
(
movimiento
.
getT
ipo
())
{
switch
(
movimiento
.
t
ipo
())
{
case
DTOMovimiento
.
INGRESO
:
case
DTOMovimiento
.
INGRESO
:
servicios
.
ingreso
(
numCuenta
,
movimiento
.
getNumTarjeta
(),
movimiento
.
getI
mporte
());
servicios
.
ingreso
(
numCuenta
,
movimiento
.
numTarjeta
(),
movimiento
.
i
mporte
());
break
;
break
;
case
DTOMovimiento
.
REINTEGRO
:
case
DTOMovimiento
.
REINTEGRO
:
servicios
.
reintegro
(
numCuenta
,
movimiento
.
getNumTarjeta
(),
movimiento
.
getI
mporte
());
servicios
.
reintegro
(
numCuenta
,
movimiento
.
numTarjeta
(),
movimiento
.
i
mporte
());
break
;
break
;
case
DTOMovimiento
.
TRANSFERENCIA_EMITIDA
:
case
DTOMovimiento
.
TRANSFERENCIA_EMITIDA
:
servicios
.
transferencia
(
numCuenta
,
movimiento
.
getNumCuenta
(),
movimiento
.
getI
mporte
());
servicios
.
transferencia
(
numCuenta
,
movimiento
.
numCuenta
(),
movimiento
.
i
mporte
());
break
;
break
;
default
:
default
:
...
@@ -203,7 +203,7 @@ public class ControladorREST {
...
@@ -203,7 +203,7 @@ public class ControladorREST {
return
ResponseEntity
.
ok
(
movimientos
.
stream
()
return
ResponseEntity
.
ok
(
movimientos
.
stream
()
.
skip
((
pag
-
1
)
*
num
)
.
skip
((
pag
-
1
)
*
num
)
.
limit
(
num
)
.
limit
(
num
)
.
map
(
m
->
new
DTO
Movimiento
(
m
))
.
map
(
m
->
DTOMovimiento
.
dto
Movimiento
(
m
))
.
collect
(
Collectors
.
toList
()));
.
collect
(
Collectors
.
toList
()));
}
}
}
}
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOCliente.java
0 → 100644
View file @
d6a805f2
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
rest
.
dto
;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
java.time.LocalDate
;
/**
* DTO para recopilación de datos de cliente
* @author ajrueda
*/
public
record
DTOCliente
(
String
dni
,
String
nombre
,
LocalDate
fNacimiento
,
String
direccion
,
String
tlf
,
String
email
,
String
clave
)
{
public
DTOCliente
(
Cliente
cliente
)
{
this
(
cliente
.
getDni
(),
cliente
.
getNombre
(),
cliente
.
getfNacimiento
(),
cliente
.
getDireccion
(),
cliente
.
getTlf
(),
cliente
.
getEmail
(),
""
);
}
public
Cliente
aCliente
()
{
return
new
Cliente
(
dni
,
nombre
,
fNacimiento
,
direccion
,
tlf
,
email
,
clave
);
}
}
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOCuenta.java
0 → 100644
View file @
d6a805f2
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
rest
.
dto
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
/**
* DTO para información de cuentas bancarias en UJACoin
* @author ajrueda
*/
public
record
DTOCuenta
(
String
num
,
float
saldo
,
String
titular
)
{
public
DTOCuenta
(
Cuenta
cuenta
)
{
this
(
cuenta
.
getNum
(),
cuenta
.
getSaldo
(),
cuenta
.
getTitular
().
getDni
());
}
}
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOMovimiento.java
0 → 100644
View file @
d6a805f2
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
rest
.
dto
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Ingreso
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Movimiento
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.Reintegro
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.TransferenciaEmitida
;
import
es.ujaen.dae.ujacoin.entidades.movimientos.TransferenciaRecibida
;
import
java.util.List
;
import
java.util.Optional
;
/**
* DTO para codificación de movimientos
* @author ajrueda
*/
public
record
DTOMovimiento
(
String
tipo
,
String
numTarjeta
,
String
numCuenta
,
float
importe
)
{
public
static
final
String
INGRESO
=
"ingreso"
;
public
static
final
String
REINTEGRO
=
"reintegro"
;
public
static
final
String
TRANSFERENCIA_EMITIDA
=
"transferenciaEmitida"
;
public
static
final
String
TRANSFERENCIA_RECIBIDA
=
"transferenciaRecibida"
;
public
static
DTOMovimiento
dtoIngreso
(
String
numTarjeta
,
float
importe
)
{
return
new
DTOMovimiento
(
INGRESO
,
numTarjeta
,
null
,
importe
);
}
public
static
DTOMovimiento
dtoReintegro
(
String
numTarjeta
,
float
importe
)
{
return
new
DTOMovimiento
(
REINTEGRO
,
numTarjeta
,
null
,
importe
);
}
public
static
DTOMovimiento
dtoTransferenciaEmitida
(
String
numCuentaDestino
,
float
importe
)
{
return
new
DTOMovimiento
(
TRANSFERENCIA_EMITIDA
,
null
,
numCuentaDestino
,
importe
);
}
public
static
DTOMovimiento
dtoTransferenciaRecibida
(
String
numCuentaOrigen
,
float
importe
)
{
return
new
DTOMovimiento
(
TRANSFERENCIA_RECIBIDA
,
null
,
numCuentaOrigen
,
importe
);
}
public
static
DTOMovimiento
dtoMovimiento
(
Movimiento
movimiento
)
{
DTOMovimiento
dto
=
null
;
if
(
movimiento
instanceof
Ingreso
ingreso
)
{
dto
=
dtoIngreso
(
ingreso
.
getTarjeta
().
getNum
(),
movimiento
.
getImporte
());
}
else
if
(
movimiento
instanceof
Reintegro
reintegro
)
{
dto
=
dtoReintegro
(
reintegro
.
getTarjeta
().
getNum
(),
movimiento
.
getImporte
());
}
else
if
(
movimiento
instanceof
TransferenciaEmitida
transferencia
)
{
dto
=
dtoTransferenciaEmitida
(
transferencia
.
getCuentaDestino
().
getNum
(),
movimiento
.
getImporte
());
}
else
if
(
movimiento
instanceof
TransferenciaRecibida
transferencia
)
{
dto
=
dtoTransferenciaRecibida
(
transferencia
.
getCuentaOrigen
().
getNum
(),
movimiento
.
getImporte
());
}
return
dto
;
}
}
src/main/java/es/ujaen/dae/ujacoin/rest/dto/DTOTarjeta.java
0 → 100644
View file @
d6a805f2
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
rest
.
dto
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
java.time.LocalDate
;
/**
* DTO para información de tarjetas bancarias
* @author ajrueda
*/
public
record
DTOTarjeta
(
String
num
,
String
titular
,
LocalDate
fechaCaducidad
,
String
cvc
)
{
public
DTOTarjeta
(
Tarjeta
tarjeta
)
{
this
(
tarjeta
.
getNum
(),
tarjeta
.
getTitular
(),
tarjeta
.
getFechaCaducidad
(),
tarjeta
.
getCvc
());
}
public
Tarjeta
aTarjeta
()
{
return
new
Tarjeta
(
num
,
titular
,
fechaCaducidad
,
cvc
);
}
}
src/main/java/es/ujaen/dae/ujacoin/seguridad/ServicioDatosCliente.java
View file @
d6a805f2
...
@@ -7,8 +7,6 @@ package es.ujaen.dae.ujacoin.seguridad;
...
@@ -7,8 +7,6 @@ package es.ujaen.dae.ujacoin.seguridad;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.servicios.ServicioUjaCoin
;
import
es.ujaen.dae.ujacoin.servicios.ServicioUjaCoin
;
import
java.util.Optional
;
import
java.util.logging.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.User
;
import
org.springframework.security.core.userdetails.User
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.security.core.userdetails.UserDetails
;
...
...
src/main/java/es/ujaen/dae/ujacoin/seguridad/ServicioSeguridadUjaCoin.java
View file @
d6a805f2
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
*/
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
seguridad
;
package
es
.
ujaen
.
dae
.
ujacoin
.
seguridad
;
import
es.ujaen.dae.ujacoin.util.CachedBCryptPasswordEncoder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -14,6 +13,7 @@ import org.springframework.security.config.annotation.authentication.builders.Au
...
@@ -14,6 +13,7 @@ import org.springframework.security.config.annotation.authentication.builders.Au
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity
;
import
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
;
import
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
;
import
org.springframework.security.config.http.SessionCreationPolicy
;
import
org.springframework.security.config.http.SessionCreationPolicy
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
/**
/**
* Proveedor de datos de seguridad de UJaCoin
* Proveedor de datos de seguridad de UJaCoin
...
@@ -25,15 +25,15 @@ public class ServicioSeguridadUjaCoin extends WebSecurityConfigurerAdapter {
...
@@ -25,15 +25,15 @@ public class ServicioSeguridadUjaCoin extends WebSecurityConfigurerAdapter {
@Autowired
@Autowired
ServicioDatosCliente
servicioDatosCliente
;
ServicioDatosCliente
servicioDatosCliente
;
@Autowired
//
@Autowired
CacheManager
cacheManager
;
//
CacheManager cacheManager;
@Override
@Override
public
void
configure
(
AuthenticationManagerBuilder
auth
)
throws
Exception
{
public
void
configure
(
AuthenticationManagerBuilder
auth
)
throws
Exception
{
auth
.
userDetailsService
(
servicioDatosCliente
)
auth
.
userDetailsService
(
servicioDatosCliente
)
.
passwordEncoder
(
new
CachedBCryptPasswordEncoder
(
cacheManager
.
getCache
(
"claves"
)));
.
passwordEncoder
(
new
BCryptPasswordEncoder
());
//.passwordEncoder(new
BCryptPasswordEncoder(
));
//.passwordEncoder(new
CachedBCryptPasswordEncoder(cacheManager.getCache("claves")
));
//auth.inMemoryAuthentication()
//auth.inMemoryAuthentication()
// .withUser("ujacoin").roles("CLIENTE").password("{noop}secret");
// .withUser("ujacoin").roles("CLIENTE").password("{noop}secret");
}
}
...
@@ -47,7 +47,7 @@ public class ServicioSeguridadUjaCoin extends WebSecurityConfigurerAdapter {
...
@@ -47,7 +47,7 @@ public class ServicioSeguridadUjaCoin extends WebSecurityConfigurerAdapter {
// Activar seguridad HTTP Basic
// Activar seguridad HTTP Basic
httpSecurity
.
httpBasic
();
httpSecurity
.
httpBasic
();
//
httpSecurity.authorizeRequests().antMatchers("/ujacoin/**").permitAll();
//httpSecurity.authorizeRequests().antMatchers("/ujacoin/**").permitAll();
// Definir protección por URL
// Definir protección por URL
httpSecurity
.
authorizeRequests
().
antMatchers
(
HttpMethod
.
POST
,
"/ujacoin/clientes"
).
permitAll
();
httpSecurity
.
authorizeRequests
().
antMatchers
(
HttpMethod
.
POST
,
"/ujacoin/clientes"
).
permitAll
();
...
...
src/test/java/es/ujaen/dae/ujacoin/
controladoresREST
/ControladorRESTTest.java
→
src/test/java/es/ujaen/dae/ujacoin/
rest
/ControladorRESTTest.java
View file @
d6a805f2
This diff is collapsed.
Click to expand it.
src/test/java/es/ujaen/dae/ujacoin/servicios/ServicioUjaCoinTest.java
View file @
d6a805f2
...
@@ -18,11 +18,9 @@ import java.util.concurrent.Executors;
...
@@ -18,11 +18,9 @@ import java.util.concurrent.Executors;
import
java.util.concurrent.Future
;
import
java.util.concurrent.Future
;
import
javax.validation.ConstraintViolationException
;
import
javax.validation.ConstraintViolationException
;
import
org.assertj.core.api.Assertions
;
import
org.assertj.core.api.Assertions
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.annotation.DirtiesContext.MethodMode
;
import
org.springframework.test.annotation.DirtiesContext.MethodMode
;
import
org.springframework.test.context.ActiveProfiles
;
import
org.springframework.test.context.ActiveProfiles
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment