[ADD] AVANCE

parent 4c3d7a2a
...@@ -144,7 +144,7 @@ class JWTokenApi { ...@@ -144,7 +144,7 @@ class JWTokenApi {
if (json.has("ms")) { if (json.has("ms")) {
json.remove("ms"); json.remove("ms");
} }
String tokenized = jwtTokenUtil.tokenizeData(data, ms, onelife); String tokenized = jwtTokenUtil.tokenizeData(json.toString(), ms, onelife);
if (onelife) { if (onelife) {
tokenSingleton.addToken(tokenized); tokenSingleton.addToken(tokenized);
} }
...@@ -155,16 +155,25 @@ class JWTokenApi { ...@@ -155,16 +155,25 @@ class JWTokenApi {
} }
@PostMapping("/detokenize") @PostMapping("/detokenize")
public ResponseEntity<?> detokenize(@RequestBody String token) { public ResponseEntity<?> detokenize(@RequestBody String tokenBody) {
JSONObject json = new JSONObject(token); JSONObject json = new JSONObject(tokenBody);
String token = json.getString("token");
boolean doConsume = json.optBoolean("consume", false);
try { try {
if (!tokenSingleton.isTokenAvailable(json.getString("token"))) { if (jwtTokenUtil.isTokenExpired(token)) {
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "1-life token has been already consumed").put("status", false).toMap()); return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "Token has expired").put("status", false).toMap());
} else { } else {
if (jwtTokenUtil.isTokenExpired(json.getString("token"))) { if (!tokenSingleton.isTokenAvailable(token)) {
return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "Token has expired").put("status", false).toMap()); return ResponseEntity.status(400).body(new JSONObject().put("data", "").put("message", "token has been already consumed").put("status", false).toMap());
} else { } 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()); 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; ...@@ -9,8 +9,6 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import web.multitask.trismegistoservices.utils.JWTokenUtil; import web.multitask.trismegistoservices.utils.JWTokenUtil;
import java.util.stream.IntStream;
@Getter @Getter
@Component @Component
@NoArgsConstructor @NoArgsConstructor
......
...@@ -15,6 +15,8 @@ import org.springframework.stereotype.Component; ...@@ -15,6 +15,8 @@ import org.springframework.stereotype.Component;
import web.multitask.trismegistoservices.model.User; import web.multitask.trismegistoservices.model.User;
import web.multitask.trismegistoservices.singleton.TokenSingleton; import web.multitask.trismegistoservices.singleton.TokenSingleton;
import javax.annotation.Nullable;
@Component @Component
public class JWTokenUtil implements Serializable{ public class JWTokenUtil implements Serializable{
...@@ -22,7 +24,6 @@ public class JWTokenUtil implements Serializable{ ...@@ -22,7 +24,6 @@ public class JWTokenUtil implements Serializable{
private String jwtSecret; private String jwtSecret;
@Value("${app.jwtSecret2}") @Value("${app.jwtSecret2}")
private String jwtSecret2; private String jwtSecret2;
TokenSingleton tokenSingleton = new TokenSingleton();
public String generateToken(User user, BigInteger ms,boolean onelife) { public String generateToken(User user, BigInteger ms,boolean onelife) {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
...@@ -51,7 +52,8 @@ public class JWTokenUtil implements Serializable{ ...@@ -51,7 +52,8 @@ public class JWTokenUtil implements Serializable{
.compact(); .compact();
} }
public String detokenizeData(String token){ public String detokenizeData(String token, @Nullable boolean doConsume){
String tokenReturned = ""; String tokenReturned = "";
try{ try{
tokenReturned = Jwts.parserBuilder() 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