01-12-25
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
package com.billpaymentservice.bbps.config;
|
||||
|
||||
import java.security.Key;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.Base64;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
@@ -67,13 +69,13 @@ public class JwtUtil {
|
||||
|
||||
private String createToken(Map<String, Object> claims, String subject) {
|
||||
return Jwts.builder().setClaims(claims).setSubject(subject).setIssuedAt(new Date(System.currentTimeMillis()))
|
||||
.setExpiration(new Date(System.currentTimeMillis() + BBPSConstant.JWT_EXPIRATION_MS))
|
||||
.setExpiration(new Date(System.currentTimeMillis() + BBPSConstant.JWT_TEMPERARY_EXPIRATION_MS))
|
||||
.signWith(getSigningKey(), SignatureAlgorithm.HS512).compact();
|
||||
}
|
||||
|
||||
private String createToken1(Map<String, Object> claims,String subject) {
|
||||
private String createToken1(Map<String, Object> claims, String subject) {
|
||||
return Jwts.builder().setClaims(claims).setSubject(subject).setIssuedAt(new Date(System.currentTimeMillis()))
|
||||
.setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 10))
|
||||
.setExpiration(new Date(System.currentTimeMillis() + BBPSConstant.JWT_EXPIRATION_MS))
|
||||
.signWith(getSigningKey(), SignatureAlgorithm.HS512).compact();
|
||||
}
|
||||
|
||||
@@ -83,10 +85,10 @@ public class JwtUtil {
|
||||
// }
|
||||
|
||||
public Boolean validateToken(String token, UserDetails userDetails) {
|
||||
final String mobileNo = extractUsername(token);
|
||||
final String mobileNo = extractUsername(token);
|
||||
// System.out.println("Extracted mobileNo from token: " + mobileNo );
|
||||
// System.out.println("Username from UserDetails: " + userDetails.getUsername());
|
||||
return (mobileNo .equals(userDetails.getUsername()) && !isTokenExpired(token));
|
||||
return (mobileNo.equals(userDetails.getUsername()) && !isTokenExpired(token));
|
||||
}
|
||||
|
||||
public void invalidateToken(String token) {
|
||||
@@ -101,7 +103,28 @@ public class JwtUtil {
|
||||
public String generateToken(String mobileNo) {
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
claims.put("mobileNo", mobileNo);
|
||||
return createToken1(claims,mobileNo);
|
||||
return createToken1(claims, mobileNo);
|
||||
}
|
||||
|
||||
public String generateTemperaryToken(String mobileNo) {
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
long currentTime = System.currentTimeMillis();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a dd/MM/yyyy");
|
||||
String formattedDate = sdf.format(new Date(currentTime));
|
||||
claims.put("mobileNo", mobileNo);
|
||||
claims.put("timestamp", formattedDate);
|
||||
return createToken(claims, mobileNo);
|
||||
}
|
||||
|
||||
public Claims parseToken(String token) {
|
||||
byte[] decodedKey = Base64.getDecoder().decode(secret);
|
||||
Key key = Keys.hmacShaKeyFor(decodedKey); // Generate the key
|
||||
|
||||
return Jwts.parserBuilder() // Use parserBuilder() instead of parser() as it's more modern
|
||||
.setSigningKey(key) // Use the Key object
|
||||
.build() // Build the JwtParser
|
||||
.parseClaimsJws(token) // Parse the JWT
|
||||
.getBody(); // Return claims
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user