Почему токен JWT не защищен? - PullRequest
0 голосов
/ 11 мая 2018

Я использую токен JWT в своем проекте spring boot.Я удивлен, что мой токен JWT расшифрован с их официального сайта и все данные восстановлены с токена.Вот мой токен eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJTdGVlbERvYyIsImV4cCI6MTU1NzU2ODQ1MiwibG9naW5JZCI6ImFkbWluIiwidXNlcklkIjoyLCJlbWFpbElkIjoiZGhpcmVuZHJhQHRlc3QuY29tIn0.o4UKtwO22cAXLjIsUuDRgAQf7OjUbe_O9DbSGxPYgfQ

Ссылка, где он декодируется Ссылка ..

Вот мой код

public class JwtHelper {

static String subject = "SteelDoc";
static String secret = "faa76006-6fef-413d-9cae-a05e63170cbf";

Integer userId = null;
String loginId = "";
String emailId = "";

public String getUserName() {
    return loginId;
}

public void setUserName(String userName) {
    this.loginId = userName;
}

public Integer getUserId() {
    return userId;
}

public void setUserId(Integer userId) {
    this.userId = userId;
}

public String getToken(String loginId, Integer userId, String email) {
    try {
        Date d = new Date();
        Date de = d;
        de.setYear(de.getYear() + 1);
        String jwt = Jwts.builder().setSubject(subject).setExpiration(de).claim("loginId", loginId)
                .claim("userId", userId).claim("emailId", email)
                .signWith(SignatureAlgorithm.HS256, secret.getBytes("UTF-8")).compact();
        return jwt;
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }
}

public boolean validateToken(String token) {
    String jwt = token;
    Jws<Claims> claims;
    try {
        claims = Jwts.parser().setSigningKey(secret.getBytes("UTF-8")).parseClaimsJws(jwt);
        userId = (Integer) claims.getBody().get("userId");
        loginId = (String) claims.getBody().get("loginId");
        emailId = (String) claims.getBody().get("emailId");
        return true;
    } catch (ExpiredJwtException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (UnsupportedJwtException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MalformedJwtException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SignatureException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}}

Мои вопросы ...

  1. Почему это происходит .?

  2. Если это не безопасно, то почему мы его используем .?

  3. Есть ли способ защитить этот токен.?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...