diff --git a/backend/build.gradle b/backend/build.gradle
index 8b92fc3e..d3adcfde 100644
--- a/backend/build.gradle
+++ b/backend/build.gradle
@@ -58,6 +58,7 @@ exclude(module: 'protobuf-java')
compile group: 'cn.cisdigital', name: 'exception-component', version:'1.0.0'
compile group: 'com.dianping.cat', name: 'cat-client', version:'3.0.0'
compile group: 'org.hibernate.validator', name: 'hibernate-validator', version:'6.0.9.Final'
+ compile group: 'io.jsonwebtoken', name: 'jjwt', version:'0.6.0'
compile group: 'org.aspectj', name: 'aspectjweaver', version:'1.9.6'
testCompile(group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:'2.3.3.RELEASE') {
exclude(module: 'junit-vintage-engine')
diff --git a/backend/pom.xml b/backend/pom.xml
index e3fb378e..fb5d805e 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -54,6 +54,12 @@
+
+ io.jsonwebtoken
+ jjwt
+ 0.6.0
+
+
org.springframework.boot
spring-boot-starter-log4j2
@@ -71,11 +77,7 @@
3.34.0
-
- com.auth0
- java-jwt
- 3.4.0
-
+
org.projectlombok
diff --git a/backend/src/main/java/org/apache/iotdb/admin/common/utils/AuthenticationUtils.java b/backend/src/main/java/org/apache/iotdb/admin/common/utils/AuthenticationUtils.java
index 1b2e1495..9f72d566 100644
--- a/backend/src/main/java/org/apache/iotdb/admin/common/utils/AuthenticationUtils.java
+++ b/backend/src/main/java/org/apache/iotdb/admin/common/utils/AuthenticationUtils.java
@@ -21,9 +21,9 @@
import org.apache.iotdb.admin.common.exception.BaseException;
import org.apache.iotdb.admin.common.exception.ErrorCode;
+import org.apache.iotdb.admin.tool.JJwtTool;
-import com.auth0.jwt.JWT;
-import com.auth0.jwt.interfaces.DecodedJWT;
+import io.jsonwebtoken.Claims;
import javax.servlet.http.HttpServletRequest;
@@ -35,15 +35,20 @@ public static void userAuthentication(Integer userId, HttpServletRequest request
if (userId == null) {
throw new BaseException(ErrorCode.NO_USER, ErrorCode.NO_USER_MSG);
}
- DecodedJWT authorization = JWT.decode(request.getHeader("Authorization"));
- Integer tokenUserId = authorization.getClaim("userId").asInt();
+ String authorization = request.getHeader("Authorization");
+ Claims claimsByToken = JJwtTool.getClaimsByToken(authorization);
+ if (null == claimsByToken) {
+ throw new BaseException(ErrorCode.TOKEN_ERR, ErrorCode.TOKEN_ERR_MSG);
+ }
+ Integer tokenUserId = claimsByToken.get("userId", Integer.class);
if (!tokenUserId.equals(userId)) {
throw new BaseException(ErrorCode.USER_AUTH_FAIL, ErrorCode.USER_AUTH_FAIL_MSG);
}
}
public static Integer getUserId(HttpServletRequest request) {
- DecodedJWT authentication = JWT.decode(request.getHeader("Authorization"));
- return authentication.getClaim("userId").asInt();
+ String authorization = request.getHeader("Authorization");
+ Claims claimsByToken = JJwtTool.getClaimsByToken(authorization);
+ return claimsByToken.get("userId", Integer.class);
}
}
diff --git a/backend/src/main/java/org/apache/iotdb/admin/config/FilterConfig.java b/backend/src/main/java/org/apache/iotdb/admin/config/FilterConfig.java
index 6a6ed82b..e9357403 100644
--- a/backend/src/main/java/org/apache/iotdb/admin/config/FilterConfig.java
+++ b/backend/src/main/java/org/apache/iotdb/admin/config/FilterConfig.java
@@ -39,6 +39,8 @@ public void addInterceptors(InterceptorRegistry registry) {
List paths = new ArrayList();
paths.add("/servers/**");
paths.add("/get");
+ paths.add("/save");
+ paths.add("/delete");
paths.add("/downloadFile/**");
interceptorRegistration.addPathPatterns(paths);
}
diff --git a/backend/src/main/java/org/apache/iotdb/admin/controller/UserController.java b/backend/src/main/java/org/apache/iotdb/admin/controller/UserController.java
index b1a7f97f..93adb9a2 100644
--- a/backend/src/main/java/org/apache/iotdb/admin/controller/UserController.java
+++ b/backend/src/main/java/org/apache/iotdb/admin/controller/UserController.java
@@ -28,10 +28,9 @@
import org.apache.iotdb.admin.model.vo.ConnectionVO;
import org.apache.iotdb.admin.service.ConnectionService;
import org.apache.iotdb.admin.service.UserService;
+import org.apache.iotdb.admin.tool.JJwtTool;
-import com.auth0.jwt.JWT;
-import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.interfaces.DecodedJWT;
+import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
@@ -42,8 +41,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.net.InetAddress;
-import java.util.Calendar;
import java.util.List;
@RestController
@@ -70,7 +67,7 @@ public BaseVO login(
int userId = user.getId();
List connVOs = connectionService.getAllConnections(userId);
ConnectionVO connectionVO = new ConnectionVO(connVOs, userId, name);
- response.addHeader("Authorization", getToken(user));
+ response.addHeader("Authorization", JJwtTool.generateToken(user));
return BaseVO.success("Login successful", connectionVO);
}
@@ -94,11 +91,11 @@ public BaseVO delete(@RequestParam("userId") Integer userId, HttpServletRequest
@ApiOperation("Get information of user")
public BaseVO getUser(HttpServletRequest request) {
String authorization = request.getHeader("Authorization");
- DecodedJWT decode = JWT.decode(authorization);
+ Claims claimsByToken = JJwtTool.getClaimsByToken(authorization);
User user = new User();
- if (decode != null) {
- Integer userId = decode.getClaim("userId").asInt();
- String name = decode.getClaim("name").asString();
+ if (claimsByToken != null) {
+ Integer userId = claimsByToken.get("userId", Integer.class);
+ String name = claimsByToken.get("name", String.class);
user.setId(userId);
user.setName(name);
}
@@ -121,22 +118,4 @@ public String welcome() {
+ "