Commit 4e65c777 by tutingyin

doc: 创建 管控_PC

parent 14ce6205
## **分支概况**
| 项目名 | 父分支名 | 分支名 | 维护人 | 拉取时间 |
|-----| -------- | ------- |-----|------------|
| BYOD| master | | 涂庭银 | 2024-03-01 |
| 项目名 | 父分支名 | 分支名 | 维护人 | 拉取时间 |
|------| -------- |--------|-----|------------|
| 管控PC | master | mdm_pc | 涂庭银 | 2024-04-12 |
## **项目更新详情**
### 2024年
#### 3
#### 4
**20240301**
**20240412**
1 [doc] add: 项目初始化(source: 管控3.0)
1 [doc] add: 项目初始化(source: BYOD)
## **功能模块**
......
......@@ -23,9 +23,6 @@ public class GaodeTerminalQO {
private String companyName;
private String imei;
private String serialNum;
private String oaid;
private String uuid;
}
}
\ No newline at end of file
......@@ -30,13 +30,8 @@ public class EquipmentAddUpdateQO {
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("imei")
private String imei;
@ApiModelProperty("serialNum")
private String serialNum;
@ApiModelProperty("uuid")
private String uuid;
@ApiModelProperty("oaid")
private String oaid;
}
}
\ No newline at end of file
......@@ -4,21 +4,12 @@ import com.skr.mdm.authentication.user.UserAuthenticationEntryPoint;
import com.skr.mdm.authentication.user.UserAuthenticationFailureHandler;
import com.skr.mdm.authentication.user.UserAuthenticationSuccessHandler;
import com.skr.mdm.authentication.user.UserLogoutSuccessHandler;
import com.skr.mdm.authentication.user.imei.ImeiAuthenticationFilter;
import com.skr.mdm.authentication.user.imei.ImeiAuthenticationProvider;
import com.skr.mdm.authentication.user.imei.ImeiUserDetailsServiceImpl;
import com.skr.mdm.authentication.user.oaid.OaidAuthenticationFilter;
import com.skr.mdm.authentication.user.oaid.OaidAuthenticationProvider;
import com.skr.mdm.authentication.user.oaid.OaidUserDetailsServiceImpl;
import com.skr.mdm.authentication.user.qr.UsernameAuthenticationFilter;
import com.skr.mdm.authentication.user.qr.UsernameAuthenticationProvider;
import com.skr.mdm.authentication.user.serial.SerialAuthenticationFilter;
import com.skr.mdm.authentication.user.serial.SerialAuthenticationProvider;
import com.skr.mdm.authentication.user.serial.SerialUserDetailsServiceImpl;
import com.skr.mdm.authentication.user.qr.UsernameDetailsServiceImpl;
import com.skr.mdm.authentication.user.sms.SmsAuthenticationFilter;
import com.skr.mdm.authentication.user.sms.SmsAuthenticationProvider;
import com.skr.mdm.authentication.user.sms.SmsDetailsServiceImpl;
import com.skr.mdm.authentication.user.uuid.UuidAuthenticationFilter;
import com.skr.mdm.authentication.user.uuid.UuidAuthenticationProvider;
import com.skr.mdm.authentication.user.uuid.UuidUserDetailsServiceImpl;
import com.skr.mdm.dao.AuCompanyDao;
import com.skr.mdm.dao.DeviceEquipmentDao;
import com.skr.mdm.filter.UserPreventReplayFilter;
......@@ -44,15 +35,15 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${mdm.encrypt}")
private String mdmEncrypt;
private String mdmEncrypt = "AES";
@Autowired
private UserAuthenticationSuccessHandler userAuthenticationSuccessHandler;
@Autowired
private UserAuthenticationFailureHandler userAuthenticationFailureHandler;
@Autowired
private ImeiUserDetailsServiceImpl imeiUserDetailsService;
private SerialUserDetailsServiceImpl imeiUserDetailsService;
@Autowired
private UsernameDetailsServiceImpl usernameDetailsService;
@Autowired
......@@ -68,12 +59,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private RabbitMQProvider rabbitMQProvider;
@Autowired
private OaidUserDetailsServiceImpl oaidUserDetailsService;
@Autowired
private UuidUserDetailsServiceImpl uuidUserDetailsService;
@Autowired
private SmsDetailsServiceImpl smsDetailsService;
@Autowired
private UserPreventReplayFilter userPreventReplayFilter;
@Override
......@@ -113,20 +98,15 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
.logout()
.logoutSuccessHandler(userLogoutSuccessHandler);
http.addFilterAfter(imeiAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
http.addFilterAfter(oaidAuthenticationFilter(), ImeiAuthenticationFilter.class);
http.addFilterAfter(uuidAuthenticationFilter(), OaidAuthenticationFilter.class);
http.addFilterAfter(usernameAuthenticationFilter(), UuidAuthenticationFilter.class);
http.addFilterAfter(smsAuthenticationFilter(), UsernameAuthenticationFilter.class);
http.addFilterBefore(userTokenFilter, ImeiAuthenticationFilter.class);
http.addFilterAfter(serialAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
http.addFilterAfter(usernameAuthenticationFilter(), SerialAuthenticationFilter.class);
http.addFilterBefore(userTokenFilter, SerialAuthenticationFilter.class);
http.addFilterBefore(userPreventReplayFilter, UserTokenFilter.class);
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(imeiAuthenticationProvider()).authenticationProvider(usernameAuthenticationProvider())
.authenticationProvider(oaidAuthenticationProvider()).authenticationProvider(uuidAuthenticationProvider())
.authenticationProvider(smsAuthenticationProvider());
auth.authenticationProvider(serialAuthenticationProvider()).authenticationProvider(usernameAuthenticationProvider());
}
@Override
......@@ -135,32 +115,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
return super.authenticationManagerBean();
}
/**
* imei登录
* @return
* @throws Exception
*/
@Bean
public ImeiAuthenticationFilter imeiAuthenticationFilter() throws Exception {
ImeiAuthenticationFilter imeiAuthenticationFilter = new ImeiAuthenticationFilter();
imeiAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
imeiAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
imeiAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
imeiAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return imeiAuthenticationFilter;
}
@Bean
public ImeiAuthenticationProvider imeiAuthenticationProvider() {
ImeiAuthenticationProvider imeiAuthenticationProvider = new ImeiAuthenticationProvider();
imeiAuthenticationProvider.setUserDetailsService(imeiUserDetailsService);
return imeiAuthenticationProvider;
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
/**
* 用户密码注册并登录
......@@ -189,70 +143,30 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
}
/**
* oaid登录
* imei登录
* @return
* @throws Exception
*/
@Bean
public OaidAuthenticationFilter oaidAuthenticationFilter() throws Exception {
OaidAuthenticationFilter oaidAuthenticationFilter = new OaidAuthenticationFilter();
oaidAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
oaidAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
oaidAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
oaidAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return oaidAuthenticationFilter;
public SerialAuthenticationFilter serialAuthenticationFilter() throws Exception {
SerialAuthenticationFilter serialAuthenticationFilter = new SerialAuthenticationFilter();
serialAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
serialAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
serialAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
serialAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return serialAuthenticationFilter;
}
@Bean
public OaidAuthenticationProvider oaidAuthenticationProvider() {
OaidAuthenticationProvider oaidAuthenticationProvider = new OaidAuthenticationProvider();
oaidAuthenticationProvider.setUserDetailsService(oaidUserDetailsService);
return oaidAuthenticationProvider;
public SerialAuthenticationProvider serialAuthenticationProvider() {
SerialAuthenticationProvider serialAuthenticationProvider = new SerialAuthenticationProvider();
serialAuthenticationProvider.setUserDetailsService(imeiUserDetailsService);
return serialAuthenticationProvider;
}
/**
* uuid登录
* @return
* @throws Exception
*/
@Bean
public UuidAuthenticationFilter uuidAuthenticationFilter() throws Exception {
UuidAuthenticationFilter uuidAuthenticationFilter = new UuidAuthenticationFilter();
uuidAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
uuidAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
uuidAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
uuidAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return uuidAuthenticationFilter;
}
@Bean
public UuidAuthenticationProvider uuidAuthenticationProvider() {
UuidAuthenticationProvider uuidAuthenticationProvider = new UuidAuthenticationProvider();
uuidAuthenticationProvider.setUserDetailsService(uuidUserDetailsService);
return uuidAuthenticationProvider;
}
/**
* 短信登录-注册
* @return
* @throws Exception
*/
@Bean
public SmsAuthenticationFilter smsAuthenticationFilter() throws Exception {
SmsAuthenticationFilter smsAuthenticationFilter = new SmsAuthenticationFilter();
smsAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
smsAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
smsAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
smsAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return smsAuthenticationFilter;
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public SmsAuthenticationProvider smsAuthenticationProvider() {
SmsAuthenticationProvider smsAuthenticationProvider = new SmsAuthenticationProvider();
smsAuthenticationProvider.setCompanyDao(companyDao);
smsAuthenticationProvider.setEquipmentDao(equipmentDao);
smsAuthenticationProvider.setUserDetailsService(smsDetailsService);
smsAuthenticationProvider.setRabbitMQProvider(rabbitMQProvider);
return smsAuthenticationProvider;
}
}
\ No newline at end of file
......@@ -33,22 +33,7 @@ public class EquipmentInfoController {
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("card/bind")
@ApiOperation("机卡绑定解绑")
public ResponseResult cardBindUnbind(@RequestParam @ApiParam(value = "绑定解绑参数", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.CARD_BIND_UNBIND);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("card/state")
@ApiOperation("机卡绑定状态(0x386)")
public ResponseResult cardBindUnbind(@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.CARD_BIND_STATE);
return strategy.cmdHandler(loginUserDTO.getId(), null);
}
@PostMapping("delete")
@ApiOperation("设备删除")
......
......@@ -6,17 +6,12 @@ import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService;
import com.skr.mdm.service.StrategyFactory;
import com.skr.mdm.service.impl.equipment.DeviceDebugLogServiceImpl;
import com.skr.mdm.service.impl.log.SafeQqServiceImpl;
import com.skr.mdm.service.impl.log.SafeWechatServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
......@@ -30,10 +25,6 @@ import springfox.documentation.annotations.ApiIgnore;
public class UserLogController {
@Autowired
private SafeWechatServiceImpl safeWechatService;
@Autowired
private SafeQqServiceImpl safeQqService;
@Autowired
private DeviceDebugLogServiceImpl deviceDebugLogService;
@PostMapping("upload")
......@@ -45,104 +36,6 @@ public class UserLogController {
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("wechat/upload")
@ApiOperation("普通系统上传微信日志(0x3DD)")
public ResponseResult wechatUploadLog(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.WECHAT_SEND);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("qq/upload")
@ApiOperation("普通系统上传QQ日志(0x3ED)")
public ResponseResult qqUploadLog(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.QQ_SEND);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("wechat/user")
@ApiOperation("微信用户信息(0x3E3)")
public ResponseResult wechatUser(@RequestParam @ApiParam(value = "微信用户信息", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.WECHAT_USER_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("safe/wechat")
@ApiOperation("安全空间微信聊天记录")
public ResponseResult safeWechat(@RequestParam @ApiParam(value = "微信用户信息", required = true) String data,
@RequestParam(required = false) @ApiParam(value = "微信聊天文件", required = false) MultipartFile file,
@ApiIgnore Authentication authentication) throws Exception {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
return safeWechatService.uploadWechatRecord(file, data, loginUserDTO);
}
@PostMapping("qq/user")
@ApiOperation("QQ用户信息(0x3EC)")
public ResponseResult qqUser(@RequestParam @ApiParam(value = "QQ用户信息", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.QQ_USER_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("safe/qq")
@ApiOperation("安全空间QQ聊天记录")
public ResponseResult safeQq(@RequestParam @ApiParam(value = "QQ用户信息", required = true) String data,
@RequestParam(required = false) @ApiParam(value = "QQ聊天文件", required = false) MultipartFile file,
@ApiIgnore Authentication authentication) throws Exception {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
return safeQqService.uploadQqRecord(file, data, loginUserDTO);
}
@PostMapping("deal/upload")
@ApiOperation("上传交易日志")
public ResponseResult dealLogUpload(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.LOG_DEAL_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("url/blacklist/upload")
@ApiOperation("上传网址黑名单日志(0x3E5)")
public ResponseResult urlBlacklistUpload(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.LOG_URL_BLACKLIST_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("url/violation/upload")
@ApiOperation("上传违规网址日志(0x3E6)")
public ResponseResult urlViolationUpload(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.LOG_URL_VIOLATION_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("url/bad/upload")
@ApiOperation("上传不良网址日志(0x3E7)")
public ResponseResult urlVisitBadUpload(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.LOG_URL_VISIT_BAD_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("url/upload")
@ApiOperation("上传网址访问日志(0x3E8)")
public ResponseResult urlVisitUpload(@RequestParam @ApiParam(value = "数据", required = true) String data,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
CmdHandlerService strategy = StrategyFactory.getStrategy(CmdTypeConstants.LOG_URL_VISIT_UPLOAD);
return strategy.cmdHandler(loginUserDTO.getId(), data);
}
@PostMapping("confirm")
@ApiOperation("日志确认")
......@@ -158,6 +51,14 @@ public class UserLogController {
public ResponseResult debugUploadLog(@ApiParam(value = "文件", required = true) MultipartFile file,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
return deviceDebugLogService.upload(loginUserDTO, file);
return deviceDebugLogService.upload(loginUserDTO, "info", file);
}
@PostMapping("file/upload2")
@ApiOperation("调试日志上传")
public ResponseResult debugUploadLog2(@RequestParam @ApiParam(value = "文件", required = true) MultipartFile file,
@RequestParam String info,
@ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal();
return deviceDebugLogService.upload(loginUserDTO, info, file);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment