[ADD] AVANCE

parent 4c3d7a2a
......@@ -144,7 +144,7 @@ class JWTokenApi {
if (json.has("ms")) {
json.remove("ms");
}
String tokenized = jwtTokenUtil.tokenizeData(data, ms, onelife);
String tokenized = jwtTokenUtil.tokenizeData(json.toString(), ms, onelife);
if (onelife) {
tokenSingleton.addToken(tokenized);
}
......@@ -155,16 +155,25 @@ class JWTokenApi {
}
@PostMapping("/detokenize")
public ResponseEntity<?> detokenize(@RequestBody String token) {
JSONObject json = new JSONObject(token);
public ResponseEntity<?> detokenize(@RequestBody String tokenBody) {
JSONObject json = new JSONObject(tokenBody);
String token = json.getString("token");
boolean doConsume = json.optBoolean("consume", false);
try {
if (!tokenSingleton.isTokenAvailable(json.getString("token"))) {
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "1-life token has been already consumed").put("status", false).toMap());
if (jwtTokenUtil.isTokenExpired(token)) {
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "Token has expired").put("status", false).toMap());
} else {
if (jwtTokenUtil.isTokenExpired(json.getString("token"))) {
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "Token has expired").put("status", false).toMap());
if (!tokenSingleton.isTokenAvailable(token)) {
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "token has been already consumed").put("status", false).toMap());
} else {
String detokenized = jwtTokenUtil.detokenizeData(json.getString("token"));
String detokenized = jwtTokenUtil.detokenizeData(token, doConsume);
if(detokenized.isEmpty()){
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "Invalid Token").put("status", false).toMap());
}else{
if (doConsume) {
tokenSingleton.consumeToken(token);
}
}
return ResponseEntity.ok(new JSONObject().put("data", detokenized).put("message", "OK").put("status", true).toMap());
}
}
......
......@@ -9,8 +9,6 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import web.multitask.trismegistoservices.utils.JWTokenUtil;
import java.util.stream.IntStream;
@Getter
@Component
@NoArgsConstructor
......
......@@ -15,6 +15,8 @@ import org.springframework.stereotype.Component;
import web.multitask.trismegistoservices.model.User;
import web.multitask.trismegistoservices.singleton.TokenSingleton;
import javax.annotation.Nullable;
@Component
public class JWTokenUtil implements Serializable{
......@@ -22,7 +24,6 @@ public class JWTokenUtil implements Serializable{
private String jwtSecret;
@Value("${app.jwtSecret2}")
private String jwtSecret2;
TokenSingleton tokenSingleton = new TokenSingleton();
public String generateToken(User user, BigInteger ms,boolean onelife) {
JSONObject json = new JSONObject();
......@@ -51,7 +52,8 @@ public class JWTokenUtil implements Serializable{
.compact();
}
public String detokenizeData(String token){
public String detokenizeData(String token, @Nullable boolean doConsume){
String tokenReturned = "";
try{
tokenReturned = Jwts.parserBuilder()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment