Browse Source

Revert "JWT factory immutable and test fixed with > 512bit key"

This reverts commit 8dc455edc1.
pull/10594/head
Sergey Matvienko 2 years ago
parent
commit
df08a94bee
  1. 20
      application/src/main/java/org/thingsboard/server/service/security/model/token/JwtTokenFactory.java
  2. 2
      application/src/test/java/org/thingsboard/server/service/security/auth/JwtTokenFactoryTest.java

20
application/src/main/java/org/thingsboard/server/service/security/model/token/JwtTokenFactory.java

@ -16,7 +16,6 @@
package org.thingsboard.server.service.security.model.token; package org.thingsboard.server.service.security.model.token;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ClaimsBuilder;
import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jws; import io.jsonwebtoken.Jws;
import io.jsonwebtoken.JwtBuilder; import io.jsonwebtoken.JwtBuilder;
@ -184,21 +183,20 @@ public class JwtTokenFactory {
UserPrincipal principal = securityUser.getUserPrincipal(); UserPrincipal principal = securityUser.getUserPrincipal();
ClaimsBuilder claims = Jwts.claims() Claims claims = Jwts.claims().setSubject(principal.getValue()).build();
.subject(principal.getValue()) claims.put(USER_ID, securityUser.getId().getId().toString());
.add(USER_ID, securityUser.getId().getId().toString()) claims.put(SCOPES, scopes);
.add(SCOPES, scopes);
if (securityUser.getSessionId() != null) { if (securityUser.getSessionId() != null) {
claims.add(SESSION_ID, securityUser.getSessionId()); claims.put(SESSION_ID, securityUser.getSessionId());
} }
ZonedDateTime currentTime = ZonedDateTime.now(); ZonedDateTime currentTime = ZonedDateTime.now();
return Jwts.builder() return Jwts.builder()
.claims(claims.build()) .setClaims(claims)
.issuer(jwtSettingsService.getJwtSettings().getTokenIssuer()) .setIssuer(jwtSettingsService.getJwtSettings().getTokenIssuer())
.issuedAt(Date.from(currentTime.toInstant())) .setIssuedAt(Date.from(currentTime.toInstant()))
.expiration(Date.from(currentTime.plusSeconds(expirationTime).toInstant())) .setExpiration(Date.from(currentTime.plusSeconds(expirationTime).toInstant()))
.signWith(SignatureAlgorithm.HS512, jwtSettingsService.getJwtSettings().getTokenSigningKey()); .signWith(SignatureAlgorithm.HS512, jwtSettingsService.getJwtSettings().getTokenSigningKey());
} }
@ -207,7 +205,7 @@ public class JwtTokenFactory {
return Jwts.parser() return Jwts.parser()
.setSigningKey(jwtSettingsService.getJwtSettings().getTokenSigningKey()) .setSigningKey(jwtSettingsService.getJwtSettings().getTokenSigningKey())
.build() .build()
.parseSignedClaims(token); .parseClaimsJws(token);
} catch (UnsupportedJwtException | MalformedJwtException | IllegalArgumentException ex) { } catch (UnsupportedJwtException | MalformedJwtException | IllegalArgumentException ex) {
log.debug("Invalid JWT Token", ex); log.debug("Invalid JWT Token", ex);
throw new BadCredentialsException("Invalid JWT token: ", ex); throw new BadCredentialsException("Invalid JWT token: ", ex);

2
application/src/test/java/org/thingsboard/server/service/security/auth/JwtTokenFactoryTest.java

@ -66,7 +66,7 @@ public class JwtTokenFactoryTest {
public void beforeEach() { public void beforeEach() {
jwtSettings = new JwtSettings(); jwtSettings = new JwtSettings();
jwtSettings.setTokenIssuer("tb"); jwtSettings.setTokenIssuer("tb");
jwtSettings.setTokenSigningKey("abewafaf".repeat(11)); //48*11 bits key > 512 bits jwtSettings.setTokenSigningKey("abewafaf");
jwtSettings.setTokenExpirationTime((int) TimeUnit.HOURS.toSeconds(2)); jwtSettings.setTokenExpirationTime((int) TimeUnit.HOURS.toSeconds(2));
jwtSettings.setRefreshTokenExpTime((int) TimeUnit.DAYS.toSeconds(7)); jwtSettings.setRefreshTokenExpTime((int) TimeUnit.DAYS.toSeconds(7));

Loading…
Cancel
Save