Compare commits

..

No commits in common. "b88d820c12d86fd4ccdea1ad23c02e9167b07afe" and "ba8b32160d6f75030671fe0eca8af9bfbde5c872" have entirely different histories.

2 changed files with 7 additions and 29 deletions

View File

@ -1,5 +1,4 @@
package ovh.herisson.Clyde.EndPoints; package ovh.herisson.Clyde.EndPoints;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -12,26 +11,13 @@ import java.util.Date;
@CrossOrigin(origins = "http://localhost:5173") @CrossOrigin(origins = "http://localhost:5173")
public class LoginController { public class LoginController {
private final AuthenticatorService authServ; private final AuthenticatorService authServ;
static public class RequestLogin{
private final String identifier;
private final String password;
@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss")
private final Date expirationDate;
public RequestLogin(String identifier, String password, Date expirationDate){
this.identifier = identifier;
this.password = password;
this.expirationDate = expirationDate;
}
}
public LoginController(AuthenticatorService authServ){ public LoginController(AuthenticatorService authServ){
this.authServ = authServ; this.authServ = authServ;
} }
@PostMapping(value = "/login") @PostMapping("/login")
public ResponseEntity<String> login(@RequestBody RequestLogin requestLogin){ public ResponseEntity<String> login(@RequestParam String identifier, String password, Date expirationDate){
String sessionToken = authServ.login(requestLogin.identifier,requestLogin.password,requestLogin.expirationDate); String sessionToken = authServ.login(identifier,password,expirationDate);
if (sessionToken == null){ if (sessionToken == null){
return new UnauthorizedResponse<>("Identifier or Password incorrect"); return new UnauthorizedResponse<>("Identifier or Password incorrect");
} }

View File

@ -1,12 +1,10 @@
package ovh.herisson.Clyde.Services; package ovh.herisson.Clyde.Services;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ovh.herisson.Clyde.Repositories.TokenRepository; import ovh.herisson.Clyde.Repositories.TokenRepository;
import ovh.herisson.Clyde.Tables.Token; import ovh.herisson.Clyde.Tables.Token;
import ovh.herisson.Clyde.Tables.User; import ovh.herisson.Clyde.Tables.User;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.util.Date; import java.util.Date;
@ -24,15 +22,9 @@ public class TokenService {
public String generateNewToken(){ public String generateNewToken(){
byte[] bytes = new byte[64]; byte[] bytes = new byte[64];
new SecureRandom().nextBytes(bytes); new SecureRandom().nextBytes(bytes);
for (int i = 0; i < bytes.length; i++) { String token = new String(bytes, StandardCharsets.US_ASCII);
bytes[i] = (byte) (((bytes[i]+256)%256 %95+ 32)); System.out.println(token);
} return token;
// will never end up in the catch because of the way that SecureRandom.nextBytes is implemented
try {
return new String(bytes,"ISO_8859_1");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
} }
public User getUserFromToken(String token){ public User getUserFromToken(String token){