diff --git a/config/application-dispose.properties b/config/application-dispose.properties index 3cf4a4bc..17e4a274 100644 --- a/config/application-dispose.properties +++ b/config/application-dispose.properties @@ -1,7 +1,6 @@ #调试配置 dispose.debug-model=true dispose.check-protocol-timeout=false -dispose.check-request-token=true dispose.split_char=, dispose.request-timeout-second=5 @@ -18,4 +17,5 @@ permission.admin-check=true permission.admin-users=admin # 认证配置 -auth.token-timeout-minute=30 \ No newline at end of file +auth.verify-request-token=true +auth.token-timeout-minute=30 diff --git a/src/main/java/com/dispose/common/AuthConfigValue.java b/src/main/java/com/dispose/common/AuthConfigValue.java index 9adb97b3..4230f7bb 100644 --- a/src/main/java/com/dispose/common/AuthConfigValue.java +++ b/src/main/java/com/dispose/common/AuthConfigValue.java @@ -1,11 +1,16 @@ package com.dispose.common; /** - * The type Global configure. + * The type Auth config value. * * @author */ public class AuthConfigValue { + /** + * The constant VERIFY_REQUEST_TOKEN. + */ + public static volatile boolean VERIFY_REQUEST_TOKEN = true; + /** * The constant ALLOW_PWD_ERR_TIMES. */ diff --git a/src/main/java/com/dispose/config/AuthConfigure.java b/src/main/java/com/dispose/config/AuthConfigure.java index e41482cc..d10d46d4 100644 --- a/src/main/java/com/dispose/config/AuthConfigure.java +++ b/src/main/java/com/dispose/config/AuthConfigure.java @@ -16,7 +16,12 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "auth") public class AuthConfigure { /** - * The Token timout value. + * The Token timeout minute. */ private String tokenTimeoutMinute; + + /** + * The Verify request token. + */ + private String verifyRequestToken; } diff --git a/src/main/java/com/dispose/config/DisposeConfigure.java b/src/main/java/com/dispose/config/DisposeConfigure.java index 57a58d8e..11f19f29 100644 --- a/src/main/java/com/dispose/config/DisposeConfigure.java +++ b/src/main/java/com/dispose/config/DisposeConfigure.java @@ -19,10 +19,7 @@ public class DisposeConfigure { * The Check protocol timeout. */ private String checkProtocolTimeout; - /** - * The Check request token. - */ - private String checkRequestToken; + /** * The Split char. */ diff --git a/src/main/java/com/dispose/interceptor/TokenInterceptor.java b/src/main/java/com/dispose/interceptor/TokenInterceptor.java index 4a5f4aaa..bee1b38e 100644 --- a/src/main/java/com/dispose/interceptor/TokenInterceptor.java +++ b/src/main/java/com/dispose/interceptor/TokenInterceptor.java @@ -1,5 +1,6 @@ package com.dispose.interceptor; +import com.dispose.common.AuthConfigValue; import com.dispose.common.ConstValue; import com.dispose.common.ErrorCode; import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO; @@ -20,6 +21,9 @@ import javax.servlet.http.HttpServletResponse; */ @Slf4j public class TokenInterceptor implements HandlerInterceptor { + /** + * The User account service. + */ @Resource private UserAccountService userAccountService; @@ -33,9 +37,13 @@ public class TokenInterceptor implements HandlerInterceptor { * @throws Exception the exception */ @Override - public boolean preHandle(HttpServletRequest request, + public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler) throws Exception { + // 配置为不需要认证 + if (!AuthConfigValue.VERIFY_REQUEST_TOKEN) { + return true; + } // 提取header中的Authorization字段里面的token值 String token = request.getHeader("Authorization"); diff --git a/src/main/java/com/dispose/manager/DisposeTaskManager.java b/src/main/java/com/dispose/manager/DisposeTaskManager.java new file mode 100644 index 00000000..f3d6b8a8 --- /dev/null +++ b/src/main/java/com/dispose/manager/DisposeTaskManager.java @@ -0,0 +1,97 @@ +package com.dispose.manager; + +import com.dispose.common.DisposeTaskStatus; +import com.dispose.common.ErrorCode; +import com.dispose.pojo.entity.DisposeTask; +import com.dispose.pojo.entity.TaskInfo; +import com.dispose.pojo.po.MulReturnType; + +import java.util.List; + +/** + * The interface Dispose task manager. + * + * @author + */ +public interface DisposeTaskManager { + /** + * Gets unfinished task. + * + * @return the unfinished task + */ + List getUnfinishedTask(); + + /** + * Create new task mul return type. + * + * @param task the task + * @return the mul return type + */ + MulReturnType createNewTask(DisposeTask task); + + /** + * Add task info mul return type. + * + * @param taskId the task id + * @param taskInfo the task info + * @return the mul return type + */ + MulReturnType addTaskInfo(Long taskId, TaskInfo taskInfo); + + /** + * Sets dispose task status. + * + * @param taskId the task id + * @param status the status + * @return the dispose task status + */ + ErrorCode setDisposeTaskStatus(Long taskId, DisposeTaskStatus status); + + /** + * Gets task attack type mask. + * + * @param taskId the task id + * @return the task attack type mask + */ + Long getTaskAttackTypeMask(Long taskId); + + /** + * Gets cur attack type mask. + * + * @param taskId the task id + * @return the cur attack type mask + */ + Long getCurAttackTypeMask(Long taskId); + + /** + * Gets attack type mask status. + * + * @param taskId the task id + * @return the attack type mask status + */ + Long getAttackTypeMaskStatus(Long taskId); + + /** + * Sets task attack type mask. + * + * @param taskId the task id + * @param mask the mask + */ + void setTaskAttackTypeMask(Long taskId, Long mask); + + /** + * Sets cur attack type mask. + * + * @param taskId the task id + * @param mask the mask + */ + void setCurAttackTypeMask(Long taskId, Long mask); + + /** + * Sets attack type mask status. + * + * @param taskId the task id + * @param mask the mask + */ + void setAttackTypeMaskStatus(Long taskId, Long mask); +} diff --git a/src/main/java/com/dispose/manager/UserAccountManager.java b/src/main/java/com/dispose/manager/UserAccountManager.java index 7fccb20f..34c80a32 100644 --- a/src/main/java/com/dispose/manager/UserAccountManager.java +++ b/src/main/java/com/dispose/manager/UserAccountManager.java @@ -11,7 +11,6 @@ import java.security.NoSuchAlgorithmException; * @author */ public interface UserAccountManager { - /** * Gets user by name. * diff --git a/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java b/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java new file mode 100644 index 00000000..86253b5c --- /dev/null +++ b/src/main/java/com/dispose/manager/impl/DisposeTaskManagerImpl.java @@ -0,0 +1,143 @@ +package com.dispose.manager.impl; + +import com.dispose.common.DisposeTaskStatus; +import com.dispose.common.ErrorCode; +import com.dispose.manager.DisposeTaskManager; +import com.dispose.mapper.DisposeTaskMapper; +import com.dispose.mapper.TaskInfoMapper; +import com.dispose.pojo.entity.DisposeTask; +import com.dispose.pojo.entity.TaskInfo; +import com.dispose.pojo.po.MulReturnType; + +import javax.annotation.Resource; +import java.util.List; + +/** + * The type Dispose task manager. + * + * @author + */ +public class DisposeTaskManagerImpl implements DisposeTaskManager { + /** + * The Dispose task mapper. + */ + @Resource + private DisposeTaskMapper disposeTaskMapper; + + /** + * The Task info mapper. + */ + @Resource + private TaskInfoMapper taskInfoMapper; + + /** + * Create new task mul return type. + * + * @param task the task + * @return the mul return type + */ + @Override + public MulReturnType createNewTask(DisposeTask task) { + return null; + } + + /** + * Add task info mul return type. + * + * @param taskId the task id + * @param taskInfo the task info + * @return the mul return type + */ + @Override + public MulReturnType addTaskInfo(Long taskId, TaskInfo taskInfo) { + return null; + } + + /** + * Gets unfinished task. + * + * @return the unfinished task + */ + @Override + public List getUnfinishedTask() { + return null; + } + + /** + * Gets task attack type mask. + * + * @param taskId the task id + * @return the task attack type mask + */ + @Override + public Long getTaskAttackTypeMask(Long taskId) { + return null; + } + + /** + * Gets attack type mask status. + * + * @param taskId the task id + * @return the attack type mask status + */ + @Override + public Long getAttackTypeMaskStatus(Long taskId) { + return null; + } + + /** + * Gets cur attack type mask. + * + * @param taskId the task id + * @return the cur attack type mask + */ + @Override + public Long getCurAttackTypeMask(Long taskId) { + return null; + } + + /** + * Sets task attack type mask. + * + * @param taskId the task id + * @param mask the mask + */ + @Override + public void setTaskAttackTypeMask(Long taskId, Long mask) { + + } + + /** + * Sets cur attack type mask. + * + * @param taskId the task id + * @param mask the mask + */ + @Override + public void setCurAttackTypeMask(Long taskId, Long mask) { + + } + + /** + * Sets attack type mask status. + * + * @param taskId the task id + * @param mask the mask + */ + @Override + public void setAttackTypeMaskStatus(Long taskId, Long mask) { + + } + + /** + * Sets dispose task status. + * + * @param taskId the task id + * @param status the status + * @return the dispose task status + */ + @Override + public ErrorCode setDisposeTaskStatus(Long taskId, DisposeTaskStatus status) { + return null; + } +} diff --git a/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java b/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java index 5be9c750..8d49b8bd 100644 --- a/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java @@ -3,7 +3,6 @@ package com.dispose.service.impl; import com.dispose.common.AuthConfigValue; import com.dispose.common.ErrorCode; import com.dispose.common.ObjectStatus; -import com.dispose.config.DisposeConfigure; import com.dispose.manager.UserAccountManager; import com.dispose.pojo.entity.UserAccount; import com.dispose.pojo.po.MulReturnType; @@ -29,12 +28,6 @@ public class UserAccountServiceImpl implements UserAccountService { @Resource private UserAccountManager userAccountManager; - /** - * The Dispose configure. - */ - @Resource - private DisposeConfigure disposeConfigure; - /** * Auth token check error code. * @@ -44,7 +37,7 @@ public class UserAccountServiceImpl implements UserAccountService { @Override public ErrorCode authTokenCheck(String token) { // 判断当前配置是否需要校验 token - if (String.valueOf(false).equals(disposeConfigure.getCheckRequestToken())) { + if (!AuthConfigValue.VERIFY_REQUEST_TOKEN) { return ErrorCode.ERR_OK; } @@ -61,6 +54,12 @@ public class UserAccountServiceImpl implements UserAccountService { */ @Override public MulReturnType loginService(String username, String password) throws NoSuchAlgorithmException { + + // 配置文件配置为不检测认证,则不需要登录 + if(!AuthConfigValue.VERIFY_REQUEST_TOKEN) { + return new MulReturnType<>(ErrorCode.ERR_UNSUPPORT, ""); + } + userAccountManager.upgradeLoginTime(username); UserAccount loginUser = userAccountManager.getUserByName(username); @@ -114,6 +113,11 @@ public class UserAccountServiceImpl implements UserAccountService { */ @Override public ErrorCode logoutService(String username, String token) { + // 配置文件配置为不检测认证,则不需要登录 + if(!AuthConfigValue.VERIFY_REQUEST_TOKEN) { + return ErrorCode.ERR_UNSUPPORT; + } + UserAccount loginUser = userAccountManager.getUserByName(username); if (loginUser == null) { @@ -137,6 +141,11 @@ public class UserAccountServiceImpl implements UserAccountService { */ @Override public UserAccount getUserByToken(String token) { + // 无需认证 + if (!AuthConfigValue.VERIFY_REQUEST_TOKEN) { + return null; + } + return userAccountManager.getUserByToken(token); } diff --git a/src/main/java/com/dispose/setup/SystemInitial.java b/src/main/java/com/dispose/setup/SystemInitial.java index dfba827a..fbf815a7 100644 --- a/src/main/java/com/dispose/setup/SystemInitial.java +++ b/src/main/java/com/dispose/setup/SystemInitial.java @@ -60,6 +60,12 @@ public class SystemInitial implements CommandLineRunner { log.error("load TOKEN_EXPIRED_TIME_MS configure error: {}", ex.getMessage()); } + try { + AuthConfigValue.VERIFY_REQUEST_TOKEN = Boolean.parseBoolean(authConfigure.getVerifyRequestToken()); + } catch (Exception ex) { + log.error("load VERIFY_REQUEST_TOKEN configure error: {}", ex.getMessage()); + } + try { DpTechConfigValue.SOAP_CONNECT_TIMEOUT_SECOND = Integer.parseInt(dpTechConfigure.getSoapConnTimeoutSecond()); diff --git a/src/test/java/com/dispose/test/service/UserAccountServiceTest.java b/src/test/java/com/dispose/test/service/UserAccountServiceTest.java index afd75e86..732043d2 100644 --- a/src/test/java/com/dispose/test/service/UserAccountServiceTest.java +++ b/src/test/java/com/dispose/test/service/UserAccountServiceTest.java @@ -1,5 +1,6 @@ package com.dispose.test.service; +import com.dispose.common.AuthConfigValue; import com.dispose.common.ErrorCode; import com.dispose.config.DisposeConfigure; import com.dispose.pojo.entity.UserAccount; @@ -115,7 +116,7 @@ public class UserAccountServiceTest extends InitTestEnvironment { public void a4_authTokenCheckTest() { Assert.assertEquals(userAccountService.authTokenCheck(token), ErrorCode.ERR_OK); - if (String.valueOf(true).equals(disposeConfigure.getCheckRequestToken())) { + if (AuthConfigValue.VERIFY_REQUEST_TOKEN) { Assert.assertEquals(userAccountService.authTokenCheck(token + "1235"), ErrorCode.ERR_LOGOUT); } }