add exception
This commit is contained in:
parent
a312ae4289
commit
d800602681
@ -56,8 +56,8 @@ public class TokenRessource {
|
|||||||
return Response.status(Response.Status.NOT_FOUND).build();
|
return Response.status(Response.Status.NOT_FOUND).build();
|
||||||
}
|
}
|
||||||
if (jwtCookie == null) {
|
if (jwtCookie == null) {
|
||||||
if(!password.equals(users.password)){
|
if((!password.equals(users.password)) && (!users.status)) {
|
||||||
return Response.status(Response.Status.FORBIDDEN).build();
|
return Response.status(Response.Status.FORBIDDEN).build();
|
||||||
}
|
}
|
||||||
// Create a JWT token signed using the 'HS256' algorithm
|
// Create a JWT token signed using the 'HS256' algorithm
|
||||||
String newJwtCookie = Jwt.issuer("https://example.com/issuer").upn(name).groups(users.roles).claim(Claims.kid, users.id.toString()).expiresIn(Duration.ofMinutes(1)).sign();
|
String newJwtCookie = Jwt.issuer("https://example.com/issuer").upn(name).groups(users.roles).claim(Claims.kid, users.id.toString()).expiresIn(Duration.ofMinutes(1)).sign();
|
||||||
|
@ -42,7 +42,15 @@ public class UsersRessources {
|
|||||||
@GET
|
@GET
|
||||||
@RolesAllowed("Admin")
|
@RolesAllowed("Admin")
|
||||||
@Path("{id}")
|
@Path("{id}")
|
||||||
public Response getSingleUser(@PathParam("id") String id){
|
public Response getSingleUser(@PathParam("id") String id, @CookieParam("user") String userCookie, @Context SecurityContext ctx){
|
||||||
|
if(!ctx.getUserPrincipal().getName().equals(jwt.getName())){
|
||||||
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||||
|
}
|
||||||
|
UUID kid = UUID.fromString(jwt.getClaim(Claims.kid));
|
||||||
|
UsersEntity user = UsersEntity.findById(kid);
|
||||||
|
if(!checkUserCookie(userCookie, user)){
|
||||||
|
return Response.status(Response.Status.FORBIDDEN).build();
|
||||||
|
}
|
||||||
UUID uid = UUID.fromString(id);
|
UUID uid = UUID.fromString(id);
|
||||||
UsersEntity users = UsersEntity.findById(uid);
|
UsersEntity users = UsersEntity.findById(uid);
|
||||||
if(users == null){
|
if(users == null){
|
||||||
@ -63,10 +71,16 @@ public class UsersRessources {
|
|||||||
if (user == null){
|
if (user == null){
|
||||||
return Response.status(Response.Status.NOT_FOUND).build();
|
return Response.status(Response.Status.NOT_FOUND).build();
|
||||||
}
|
}
|
||||||
String name = new String(Base64.decode(userCookie), StandardCharsets.UTF_8);
|
if(!checkUserCookie(userCookie, user)){
|
||||||
if(!name.equals(user.pseudo)){
|
|
||||||
return Response.status(Response.Status.FORBIDDEN).build();
|
return Response.status(Response.Status.FORBIDDEN).build();
|
||||||
}
|
}
|
||||||
return Response.ok(new UserSingle(user.name, user.pseudo, user.firstName)).build();
|
return Response.ok(new UserSingle(user.name, user.pseudo, user.firstName)).build();
|
||||||
}
|
}
|
||||||
|
private Boolean checkUserCookie(String userCookie, UsersEntity users){
|
||||||
|
String name = new String(Base64.decode(userCookie), StandardCharsets.UTF_8);
|
||||||
|
if(!name.equals(users.pseudo) && (!users.status)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user