parent
c6d3b3f0fe
commit
6e345aee01
|
@ -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.verify-request-token=true
|
||||
auth.token-timeout-minute=30
|
|
@ -1,11 +1,16 @@
|
|||
package com.dispose.common;
|
||||
|
||||
/**
|
||||
* The type Global configure.
|
||||
* The type Auth config value.
|
||||
*
|
||||
* @author <huangxin@cmhi.chinamoblie.com>
|
||||
*/
|
||||
public class AuthConfigValue {
|
||||
/**
|
||||
* The constant VERIFY_REQUEST_TOKEN.
|
||||
*/
|
||||
public static volatile boolean VERIFY_REQUEST_TOKEN = true;
|
||||
|
||||
/**
|
||||
* The constant ALLOW_PWD_ERR_TIMES.
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -19,10 +19,7 @@ public class DisposeConfigure {
|
|||
* The Check protocol timeout.
|
||||
*/
|
||||
private String checkProtocolTimeout;
|
||||
/**
|
||||
* The Check request token.
|
||||
*/
|
||||
private String checkRequestToken;
|
||||
|
||||
/**
|
||||
* The Split char.
|
||||
*/
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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 <huangxin@cmhi.chinamoblie.com>
|
||||
*/
|
||||
public interface DisposeTaskManager {
|
||||
/**
|
||||
* Gets unfinished task.
|
||||
*
|
||||
* @return the unfinished task
|
||||
*/
|
||||
List<TaskInfo> getUnfinishedTask();
|
||||
|
||||
/**
|
||||
* Create new task mul return type.
|
||||
*
|
||||
* @param task the task
|
||||
* @return the mul return type
|
||||
*/
|
||||
MulReturnType<ErrorCode, Long> 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<ErrorCode, Long> 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);
|
||||
}
|
|
@ -11,7 +11,6 @@ import java.security.NoSuchAlgorithmException;
|
|||
* @author <huangxin@cmhi.chinamoblie.com>
|
||||
*/
|
||||
public interface UserAccountManager {
|
||||
|
||||
/**
|
||||
* Gets user by name.
|
||||
*
|
||||
|
|
|
@ -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 <huangxin@cmhi.chinamoblie.com>
|
||||
*/
|
||||
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<ErrorCode, Long> 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<ErrorCode, Long> addTaskInfo(Long taskId, TaskInfo taskInfo) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets unfinished task.
|
||||
*
|
||||
* @return the unfinished task
|
||||
*/
|
||||
@Override
|
||||
public List<TaskInfo> 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;
|
||||
}
|
||||
}
|
|
@ -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<ErrorCode, String> 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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue