UserApiJwtUtil.java
926 Bytes
package com.srh.api.utils;
import com.srh.api.model.Admin;
import com.srh.api.repository.AdminRepository;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Optional;
@Component
public class UserApiJwtUtil {
@Value("${srh.jwt.secret}")
private String secret;
@Autowired
private AdminRepository adminRepository;
public boolean verifyIfUserIsAdmin(String token) {
Integer id = getUserId(token);
Optional<Admin> admin = adminRepository.findById(id);
return admin.isPresent();
}
public Integer getUserId(String token) {
Claims claims = Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
return Integer.parseInt(claims.getSubject());
}
}