Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Rubén Ramírez
/
MangAffinity
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
bd99341a
authored
Feb 21, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat: [UsuariosController]: Implementada la función de inicio de sesión en el controlador
parent
72f0cf4d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
18 deletions
src/main/java/com/ujaen/tfg/mangaffinity/rest/UsuariosController.java
src/main/java/com/ujaen/tfg/mangaffinity/seguridad/ServicioSeguridad.java
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioUsuarios.java
src/main/java/com/ujaen/tfg/mangaffinity/rest/UsuariosController.java
View file @
bd99341a
...
...
@@ -2,6 +2,7 @@ package com.ujaen.tfg.mangaffinity.rest;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOLoginRespuesta
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOUsuario
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.Mapper
;
import
com.ujaen.tfg.mangaffinity.seguridad.JwtUtil
;
...
...
@@ -13,6 +14,8 @@ import org.springframework.http.HttpStatus;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
@RestController
@RequestMapping
(
"/usuarios"
)
public
class
UsuariosController
{
...
...
@@ -37,4 +40,18 @@ public class UsuariosController {
return
ResponseEntity
.
status
(
HttpStatus
.
CONFLICT
).
build
();
}
}
@PostMapping
(
"/{email}"
)
public
ResponseEntity
<?>
iniciarSesion
(
@PathVariable
String
email
,
@RequestBody
Map
<
String
,
String
>
clave
)
{
String
contrasenia
=
clave
.
get
(
"clave"
);
DTOLoginRespuesta
respuesta
=
servicioUsuarios
.
autenticarUsuario
(
email
,
contrasenia
);
if
(
respuesta
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
UNAUTHORIZED
).
body
(
"Credenciales incorrectas"
);
}
return
ResponseEntity
.
ok
(
respuesta
);
}
}
src/main/java/com/ujaen/tfg/mangaffinity/seguridad/ServicioSeguridad.java
View file @
bd99341a
...
...
@@ -23,11 +23,13 @@ public class ServicioSeguridad {
.
sessionManagement
(
session
->
session
.
disable
())
.
httpBasic
(
httpBasic
->
httpBasic
.
realmName
(
"mangaffinity"
))
.
authorizeHttpRequests
(
request
->
request
.
requestMatchers
(
HttpMethod
.
POST
,
"/usuarios/{email}"
).
permitAll
()
.
requestMatchers
(
HttpMethod
.
POST
,
"/usuarios/"
).
permitAll
()
)
.
build
();
}
@Bean
public
PasswordEncoder
passwordEncoder
()
{
return
new
BCryptPasswordEncoder
();
...
...
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioUsuarios.java
View file @
bd99341a
...
...
@@ -19,10 +19,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import
org.springframework.security.crypto.password.PasswordEncoder
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.ActiveProfiles
;
import
javax.crypto.SecretKey
;
import
java.nio.charset.StandardCharsets
;
import
java.security.Key
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThatThrownBy
;
import
static
org
.
assertj
.
core
.
api
.
AssertionsForClassTypes
.
assertThat
;
...
...
@@ -35,25 +33,10 @@ public class TestServicioUsuarios {
ServicioUsuarios
servicioUsuarios
;
@Autowired
private
PasswordEncoder
passwordEncoder
;
@Autowired
JwtUtil
jwtUtil
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
TestServicioUsuarios
.
class
);
private
static
final
SecretKey
key
=
Keys
.
secretKeyFor
(
SignatureAlgorithm
.
HS256
);
// Clave de 256 bits
private
Claims
decodeJWT
(
String
token
)
{
return
Jwts
.
parserBuilder
()
.
setSigningKey
(
key
)
// Usando la misma clave
.
build
()
.
parseClaimsJws
(
token
)
.
getBody
();
}
@Test
@DirtiesContext
void
testCrearSocio
(){
...
...
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