Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Commit

Permalink
fix(JWTToken): sign secret move to properties (#42)
Browse files Browse the repository at this point in the history
  • Loading branch information
2b3c511 committed Feb 1, 2023
1 parent 3e24474 commit 83c5ef9
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 15 deletions.
2 changes: 2 additions & 0 deletions backend/doc/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@

![](image/配置文件.PNG)

务必在application-prod.properties中设置jwt.sign.secret

2 打包

![](image/打包.png)
Expand Down
47 changes: 35 additions & 12 deletions backend/src/main/java/org/apache/iotdb/admin/tool/JJwtTool.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,59 @@
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/** date:2022/12/6 author:yzf project_name:backend */
@Slf4j
@Configuration
@ConfigurationProperties(prefix = "jwt.sign")
public class JJwtTool {
private static String secret =
"HSyJ0eXAiOiJKV1QasdfffffffSd3g8923402347523fffasdfasgwaegwaegawegawegawegawetwgewagagew"
+ "asdf23r23DEEasdfawef134t2fawt2g325gafasdfasdfiLCJhbGciOiJIUzI1NiJ9";

private static List<String> jwtCache = new ArrayList<>();
private static String secret;

public String getSecret() {
return secret;
}

public void setSecret(String payload) {
secret = payload;
}

public static String generateToken(User user) {
log.info("user=" + user.toString());
Date now = new Date();
// Calendar instance = Calendar.getInstance();
// instance.add(Calendar.HOUR_OF_DAY, 24);
Date expireDate = new Date(new Date().getTime() + (1000 * 60 * 60 * 10));
return Jwts.builder()
.setHeaderParam("type", "JWT")
.setSubject(user.getId() + "")
.setIssuedAt(now) // 签发时间
.claim("userId", user.getId())
.claim("name", user.getName())
.setExpiration(expireDate) // 过期时间
.signWith(SignatureAlgorithm.HS512, secret)
.compact();
String compact =
Jwts.builder()
.setHeaderParam("type", "JWT")
.setSubject(user.getId() + "")
.setIssuedAt(now) // 签发时间
.claim("userId", user.getId())
.claim("name", user.getName())
.setExpiration(expireDate) // 过期时间
.signWith(SignatureAlgorithm.HS512, secret)
.compact();
if (StringUtils.hasLength(compact) && !jwtCache.contains(compact)) {
jwtCache.add(compact);
}
return compact;
}

/** 解析token */
public static Claims getClaimsByToken(String token) {
try {
if (StringUtils.hasLength(token) && !jwtCache.contains(token)) {
return null;
}
return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
} catch (Exception e) {
System.out.println("validate is token error");
Expand Down
5 changes: 4 additions & 1 deletion backend/src/main/resources/application-dev.properties
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,7 @@ spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=215MB

# All files generated during CSV import and export are stored in this folder
file.temp-dir=./tempFile
file.temp-dir=./tempFile

# token secret
jwt.sign.secret = HSyJ0eXAiOiJKV1QasdfffffffSd3g8923402347523fffasdfasgwaegwaegawegawegawegawetwgewagagewasdf23r23DEEasdfawef134t2fawt2g325gafasdfasdfiLCJhbGciOiJIUzI1NiJ9
5 changes: 4 additions & 1 deletion backend/src/main/resources/application-prod.properties
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,7 @@ spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=215MB

# All files generated during CSV import and export are stored in this folder
file.temp-dir=./tempFile
file.temp-dir=./tempFile

# token secret
jwt.sign.secret =
5 changes: 4 additions & 1 deletion backend/src/main/resources/application-test.properties
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,7 @@ spring.servlet.multipart.file-size-threshold=2KB
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=215MB

file.temp-dir=./tempFile
file.temp-dir=./tempFile

# token secret
jwt.sign.secret =

0 comments on commit 83c5ef9

Please sign in to comment.