fixed some issue for the token authorization #87
@ -49,10 +49,6 @@ public class MockController {
|
||||
mockUsers = new ArrayList<User>(Arrays.asList(herobrine,joe,meh,joke));
|
||||
|
||||
userRepo.saveAll(mockUsers);
|
||||
|
||||
for (User user: mockUsers){
|
||||
tokenRepo.save(new Token(user,user.getPassword()));
|
||||
}
|
||||
}
|
||||
|
||||
@DeleteMapping("/mock")
|
||||
|
@ -0,0 +1,26 @@
|
||||
package ovh.herisson.Clyde.EndPoints;
|
||||
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import ovh.herisson.Clyde.Services.TokenService;
|
||||
import ovh.herisson.Clyde.Tables.Token;
|
||||
|
||||
@RestController
|
||||
@CrossOrigin(origins = "http://localhost:5173")
|
||||
|
||||
public class TokenController {
|
||||
|
||||
private final TokenService tokenServ;
|
||||
|
||||
public TokenController(TokenService tokenServ){
|
||||
this.tokenServ = tokenServ;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/tokens")
|
||||
public Iterable<Token> getTokens(){
|
||||
tonitch
commented
C'est pour le debug ? Faudrait mettre un TODO pour mettre ça que pour les admins C'est pour le debug ? Faudrait mettre un TODO pour mettre ça que pour les admins
|
||||
return tokenServ.getAllTokens();
|
||||
}
|
||||
}
|
@ -23,18 +23,18 @@ public class UserController {
|
||||||
}
|
||||||
|
||||||
@GetMapping("/user")
|
||||||
public ResponseEntity<User> getUser(@RequestHeader("Authorization") String token){
|
||||||
User user = authServ.getUserFromToken(token);
|
||||||
if (user == null) {
|
||||||
return new UnauthorizedResponse<>(null);
|
||||||
}
|
||||||
public ResponseEntity<User> getUser(@RequestHeader("Cookie") String authorization){
|
||||||
tonitch
commented
Pourquoi le passage à Coookie ? Pourquoi le passage à Coookie ?
tonitch
commented
frontend/src/rest/restConsumer.js
Line 35 in 8fdfb470cb
https://git.herisson.ovh/PGL/Clyde/src/commit/8fdfb470cb3c130f0d0e3bde1adc9b7e4edb1981/frontend/src/rest/restConsumer.js#L35
|
||||||
|
||||||
if (authorization == null) return new UnauthorizedResponse<>(null);
|
||||||
User user = authServ.getUserFromToken(authorization);
|
||||||
if (user == null) return new UnauthorizedResponse<>(null);
|
||||||
return new ResponseEntity<>(user, HttpStatus.OK);
|
||||||
}
|
||||||
|
||||||
@PostMapping("/user")
|
||||||
public ResponseEntity<String> postUser(@RequestBody User user){
|
||||||
userService.save(user);
|
||||||
return new ResponseEntity<String>(String.format("Account created with ID:%s",user.getRegNo()),HttpStatus.CREATED);
|
||||||
return new ResponseEntity<>(String.format("Account created with ID:%s",user.getRegNo()),HttpStatus.CREATED);
|
||||||
}
|
||||||
|
||||||
@GetMapping("/users")
|
||||||
|
@ -9,4 +9,5 @@ public interface TokenRepository extends CrudRepository<Token,Long> {
|
||||
Token getByToken(String token);
|
||||
|
||||
Iterable<Token> getByUser(User user);
|
||||
|
||||
Maxime marked this conversation as resolved
tonitch
commented
t'es sur ? t'es sur ?
|
||||
}
|
||||
|
@ -20,12 +20,19 @@ public class TokenService {
|
||||
this.tokenRepo = tokenRepo;
|
||||
}
|
||||
|
||||
public Iterable<Token> getAllTokens() {
|
||||
return tokenRepo.findAll();
|
||||
}
|
||||
|
||||
|
||||
public String generateNewToken(){
|
||||
byte[] bytes = new byte[64];
|
||||
new SecureRandom().nextBytes(bytes);
|
||||
for (int i = 0; i < bytes.length; i++) {
|
||||
bytes[i] = (byte) (((bytes[i]+256)%256 %95+ 32));
|
||||
while ((char)bytes[i] == ';'){
|
||||
bytes[i] = new SecureRandom().generateSeed(1)[0];
|
||||
}
|
||||
Maxime marked this conversation as resolved
tonitch
commented
FAIT DU MD5 FAIT DU MD5
|
||||
}
|
||||
// will never end up in the catch because of the way that SecureRandom.nextBytes is implemented
|
||||
try {
|
||||
@ -35,8 +42,10 @@ public class TokenService {
|
||||
}
|
||||
}
|
||||
|
||||
public User getUserFromToken(String token){
|
||||
return tokenRepo.getByToken(token).getUser();
|
||||
public User getUserFromToken(String token) {
|
||||
Token tokenRep = tokenRepo.getByToken(token);
|
||||
if (tokenRep == null) return null;
|
||||
return tokenRep.getUser();
|
||||
}
|
||||
|
||||
public void saveToken(String token, User user, Date expirationDate){// todo faire qlq chose de l'expDate
|
||||
|
@ -8,7 +8,7 @@ public class Token {
|
||||
@Id
|
||||
private int id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name ="Users")
|
||||
private User user;
|
||||
private String token;
|
||||
|
Loading…
Reference in New Issue
Block a user
Dans le dernier pr j'ai fait un petit changement au cross origin. Pour l'instant c'est bon mais c'est juste pour attirer l'attention sur ça !