Commit 4e65c777 by tutingyin

doc: 创建 管控_PC

parent 14ce6205
## **分支概况** ## **分支概况**
| 项目名 | 父分支名 | 分支名 | 维护人 | 拉取时间 | | 项目名 | 父分支名 | 分支名 | 维护人 | 拉取时间 |
|-----| -------- | ------- |-----|------------| |------| -------- |--------|-----|------------|
| BYOD| master | | 涂庭银 | 2024-03-01 | | 管控PC | master | mdm_pc | 涂庭银 | 2024-04-12 |
## **项目更新详情** ## **项目更新详情**
### 2024年 ### 2024年
#### 3 #### 4
**20240301** **20240412**
1 [doc] add: 项目初始化(source: 管控3.0) 1 [doc] add: 项目初始化(source: BYOD)
## **功能模块** ## **功能模块**
......
...@@ -23,9 +23,6 @@ public class GaodeTerminalQO { ...@@ -23,9 +23,6 @@ public class GaodeTerminalQO {
private String companyName; private String companyName;
private String imei; private String serialNum;
private String oaid; }
\ No newline at end of file
private String uuid;
}
...@@ -30,13 +30,8 @@ public class EquipmentAddUpdateQO { ...@@ -30,13 +30,8 @@ public class EquipmentAddUpdateQO {
@ApiModelProperty("设备名称") @ApiModelProperty("设备名称")
private String equipmentName; private String equipmentName;
@ApiModelProperty("imei") @ApiModelProperty("serialNum")
private String imei; 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; ...@@ -4,21 +4,12 @@ import com.skr.mdm.authentication.user.UserAuthenticationEntryPoint;
import com.skr.mdm.authentication.user.UserAuthenticationFailureHandler; import com.skr.mdm.authentication.user.UserAuthenticationFailureHandler;
import com.skr.mdm.authentication.user.UserAuthenticationSuccessHandler; import com.skr.mdm.authentication.user.UserAuthenticationSuccessHandler;
import com.skr.mdm.authentication.user.UserLogoutSuccessHandler; 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.UsernameAuthenticationFilter;
import com.skr.mdm.authentication.user.qr.UsernameAuthenticationProvider; 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.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.AuCompanyDao;
import com.skr.mdm.dao.DeviceEquipmentDao; import com.skr.mdm.dao.DeviceEquipmentDao;
import com.skr.mdm.filter.UserPreventReplayFilter; import com.skr.mdm.filter.UserPreventReplayFilter;
...@@ -44,15 +35,15 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic ...@@ -44,15 +35,15 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
@EnableWebSecurity @EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter { public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${mdm.encrypt}")
private String mdmEncrypt; private String mdmEncrypt = "AES";
@Autowired @Autowired
private UserAuthenticationSuccessHandler userAuthenticationSuccessHandler; private UserAuthenticationSuccessHandler userAuthenticationSuccessHandler;
@Autowired @Autowired
private UserAuthenticationFailureHandler userAuthenticationFailureHandler; private UserAuthenticationFailureHandler userAuthenticationFailureHandler;
@Autowired @Autowired
private ImeiUserDetailsServiceImpl imeiUserDetailsService; private SerialUserDetailsServiceImpl imeiUserDetailsService;
@Autowired @Autowired
private UsernameDetailsServiceImpl usernameDetailsService; private UsernameDetailsServiceImpl usernameDetailsService;
@Autowired @Autowired
...@@ -68,12 +59,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -68,12 +59,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired @Autowired
private RabbitMQProvider rabbitMQProvider; private RabbitMQProvider rabbitMQProvider;
@Autowired @Autowired
private OaidUserDetailsServiceImpl oaidUserDetailsService;
@Autowired
private UuidUserDetailsServiceImpl uuidUserDetailsService;
@Autowired
private SmsDetailsServiceImpl smsDetailsService;
@Autowired
private UserPreventReplayFilter userPreventReplayFilter; private UserPreventReplayFilter userPreventReplayFilter;
@Override @Override
...@@ -113,20 +98,15 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -113,20 +98,15 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
.logout() .logout()
.logoutSuccessHandler(userLogoutSuccessHandler); .logoutSuccessHandler(userLogoutSuccessHandler);
http.addFilterAfter(imeiAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); http.addFilterAfter(serialAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
http.addFilterAfter(oaidAuthenticationFilter(), ImeiAuthenticationFilter.class); http.addFilterAfter(usernameAuthenticationFilter(), SerialAuthenticationFilter.class);
http.addFilterAfter(uuidAuthenticationFilter(), OaidAuthenticationFilter.class); http.addFilterBefore(userTokenFilter, SerialAuthenticationFilter.class);
http.addFilterAfter(usernameAuthenticationFilter(), UuidAuthenticationFilter.class);
http.addFilterAfter(smsAuthenticationFilter(), UsernameAuthenticationFilter.class);
http.addFilterBefore(userTokenFilter, ImeiAuthenticationFilter.class);
http.addFilterBefore(userPreventReplayFilter, UserTokenFilter.class); http.addFilterBefore(userPreventReplayFilter, UserTokenFilter.class);
} }
@Override @Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception { protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(imeiAuthenticationProvider()).authenticationProvider(usernameAuthenticationProvider()) auth.authenticationProvider(serialAuthenticationProvider()).authenticationProvider(usernameAuthenticationProvider());
.authenticationProvider(oaidAuthenticationProvider()).authenticationProvider(uuidAuthenticationProvider())
.authenticationProvider(smsAuthenticationProvider());
} }
@Override @Override
...@@ -135,32 +115,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -135,32 +115,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
return super.authenticationManagerBean(); 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 { ...@@ -189,70 +143,30 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
} }
/** /**
* oaid登录 * imei登录
* @return * @return
* @throws Exception * @throws Exception
*/ */
@Bean @Bean
public OaidAuthenticationFilter oaidAuthenticationFilter() throws Exception { public SerialAuthenticationFilter serialAuthenticationFilter() throws Exception {
OaidAuthenticationFilter oaidAuthenticationFilter = new OaidAuthenticationFilter(); SerialAuthenticationFilter serialAuthenticationFilter = new SerialAuthenticationFilter();
oaidAuthenticationFilter.setMdmEncrypt(mdmEncrypt); serialAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
oaidAuthenticationFilter.setAuthenticationManager(authenticationManagerBean()); serialAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
oaidAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler); serialAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
oaidAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler); serialAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return oaidAuthenticationFilter; return serialAuthenticationFilter;
} }
@Bean @Bean
public OaidAuthenticationProvider oaidAuthenticationProvider() { public SerialAuthenticationProvider serialAuthenticationProvider() {
OaidAuthenticationProvider oaidAuthenticationProvider = new OaidAuthenticationProvider(); SerialAuthenticationProvider serialAuthenticationProvider = new SerialAuthenticationProvider();
oaidAuthenticationProvider.setUserDetailsService(oaidUserDetailsService); serialAuthenticationProvider.setUserDetailsService(imeiUserDetailsService);
return oaidAuthenticationProvider; 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 @Bean
public SmsAuthenticationFilter smsAuthenticationFilter() throws Exception { public PasswordEncoder passwordEncoder() {
SmsAuthenticationFilter smsAuthenticationFilter = new SmsAuthenticationFilter(); return new BCryptPasswordEncoder();
smsAuthenticationFilter.setMdmEncrypt(mdmEncrypt);
smsAuthenticationFilter.setAuthenticationManager(authenticationManagerBean());
smsAuthenticationFilter.setAuthenticationSuccessHandler(userAuthenticationSuccessHandler);
smsAuthenticationFilter.setAuthenticationFailureHandler(userAuthenticationFailureHandler);
return smsAuthenticationFilter;
} }
@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 { ...@@ -33,22 +33,7 @@ public class EquipmentInfoController {
return strategy.cmdHandler(loginUserDTO.getId(), data); 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") @PostMapping("delete")
@ApiOperation("设备删除") @ApiOperation("设备删除")
......
...@@ -6,17 +6,12 @@ import com.skr.mdm.result.ResponseResult; ...@@ -6,17 +6,12 @@ import com.skr.mdm.result.ResponseResult;
import com.skr.mdm.service.CmdHandlerService; import com.skr.mdm.service.CmdHandlerService;
import com.skr.mdm.service.StrategyFactory; import com.skr.mdm.service.StrategyFactory;
import com.skr.mdm.service.impl.equipment.DeviceDebugLogServiceImpl; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
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.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
...@@ -30,10 +25,6 @@ import springfox.documentation.annotations.ApiIgnore; ...@@ -30,10 +25,6 @@ import springfox.documentation.annotations.ApiIgnore;
public class UserLogController { public class UserLogController {
@Autowired @Autowired
private SafeWechatServiceImpl safeWechatService;
@Autowired
private SafeQqServiceImpl safeQqService;
@Autowired
private DeviceDebugLogServiceImpl deviceDebugLogService; private DeviceDebugLogServiceImpl deviceDebugLogService;
@PostMapping("upload") @PostMapping("upload")
...@@ -45,104 +36,6 @@ public class UserLogController { ...@@ -45,104 +36,6 @@ public class UserLogController {
return strategy.cmdHandler(loginUserDTO.getId(), data); 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") @PostMapping("confirm")
@ApiOperation("日志确认") @ApiOperation("日志确认")
...@@ -158,6 +51,14 @@ public class UserLogController { ...@@ -158,6 +51,14 @@ public class UserLogController {
public ResponseResult debugUploadLog(@ApiParam(value = "文件", required = true) MultipartFile file, public ResponseResult debugUploadLog(@ApiParam(value = "文件", required = true) MultipartFile file,
@ApiIgnore Authentication authentication) { @ApiIgnore Authentication authentication) {
LoginUserDTO loginUserDTO = (LoginUserDTO) authentication.getPrincipal(); 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