|
@@ -1,10 +1,6 @@
|
|
package com.ym.mec.auth.core.filter;
|
|
package com.ym.mec.auth.core.filter;
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Date;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import javax.servlet.FilterChain;
|
|
import javax.servlet.FilterChain;
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.ServletException;
|
|
@@ -13,7 +9,6 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.security.authentication.AuthenticationServiceException;
|
|
import org.springframework.security.authentication.AuthenticationServiceException;
|
|
-import org.springframework.security.authentication.BadCredentialsException;
|
|
|
|
import org.springframework.security.authentication.LockedException;
|
|
import org.springframework.security.authentication.LockedException;
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
import org.springframework.security.core.Authentication;
|
|
import org.springframework.security.core.Authentication;
|
|
@@ -24,7 +19,6 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
|
import org.springframework.util.Assert;
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
import com.ym.mec.auth.api.dto.SysUserInfo;
|
|
import com.ym.mec.auth.api.dto.SysUserInfo;
|
|
-import com.ym.mec.auth.api.entity.SysUserDevice;
|
|
|
|
import com.ym.mec.auth.service.SysUserDeviceService;
|
|
import com.ym.mec.auth.service.SysUserDeviceService;
|
|
import com.ym.mec.auth.service.SysUserService;
|
|
import com.ym.mec.auth.service.SysUserService;
|
|
import com.ym.mec.common.security.SecurityConstants;
|
|
import com.ym.mec.common.security.SecurityConstants;
|
|
@@ -101,34 +95,7 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
|
|
String deviceNum = request.getParameter(deviceNumParameter);
|
|
String deviceNum = request.getParameter(deviceNumParameter);
|
|
if (StringUtils.isNotBlank(deviceNum)) {
|
|
if (StringUtils.isNotBlank(deviceNum)) {
|
|
// 检查设备
|
|
// 检查设备
|
|
- if (StringUtils.equals("STUDENT", clientId)) {
|
|
|
|
- // 检查学生是否绑定了多个设备号
|
|
|
|
- List<SysUserDevice> sysUserDeviceList = sysUserDeviceService.queryByUserId(clientId, userInfo.getSysUser().getId());
|
|
|
|
-
|
|
|
|
- if (sysUserDeviceList == null) {
|
|
|
|
- sysUserDeviceList = new ArrayList<SysUserDevice>();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List<String> deviceList = sysUserDeviceList.stream().map(t -> t.getDeviceNum()).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- if (!deviceList.contains(deviceNum)) {
|
|
|
|
- if (deviceList.size() >= 5) {
|
|
|
|
- throw new BadCredentialsException("当前账号绑定设备过多,请联系主教老师");
|
|
|
|
- }
|
|
|
|
- SysUserDevice sysUserDevice = new SysUserDevice();
|
|
|
|
- sysUserDevice.setUserId(userInfo.getSysUser().getId());
|
|
|
|
- sysUserDevice.setDeviceNum(deviceNum);
|
|
|
|
- sysUserDevice.setBindTime(new Date());
|
|
|
|
- sysUserDevice.setClientId(clientId);
|
|
|
|
- sysUserDeviceService.insert(sysUserDevice);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- try {
|
|
|
|
- sysUserDeviceService.bindDevice(clientId, userInfo.getSysUser().getId(), deviceNum);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- throw new BadCredentialsException("当前设备已绑定账号,请更换设备");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ sysUserDeviceService.bindDevice(clientId, userInfo.getSysUser().getId(), deviceNum);
|
|
}
|
|
}
|
|
|
|
|
|
return authentication;
|
|
return authentication;
|