add spring security and token management

This commit is contained in:
dirgantarasiahaan
2023-05-23 19:42:51 +07:00
parent 597d4062c7
commit c76c01a174
35 changed files with 1095 additions and 53 deletions

View File

@ -0,0 +1,53 @@
package com.iconplus.smartproc.helper.service;
import com.nimbusds.jose.JWSObject;
import com.nimbusds.jose.Payload;
import lombok.extern.log4j.Log4j2;
import net.minidev.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Log4j2
public class TokenUtils {
private TokenUtils() {
}
public static Map<String, String> decodeToken(String jwtToken) {
Map<String, String> body = new HashMap<>();
try {
if (jwtToken != null) {
jwtToken = jwtToken.replace("Bearer", "");
jwtToken = jwtToken.trim();
}
if (StringUtils.isBlank(jwtToken)) {
return body;
}
JWSObject token = JWSObject.parse(jwtToken);
Payload tokenPayload = token.getPayload();
JSONObject tokenBody = tokenPayload.toJSONObject();
tokenBody.forEach((key, value) -> {
if (Objects.isNull(value)) {
value = "";
}
body.put(key, value.toString());
});
} catch (Exception e) {
log.error("Failed to parse JWT Token. Error: {}", e.getMessage());
}
return body;
}
public static Object getValueByParam(String param, String token) {
return decodeToken(token).get(param);
}
}