@@ -1,20 +0,0 @@ | |||||
package com.ningdatech.pmapi.user.controller; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.stereotype.Controller; | |||||
/** | |||||
* <p> | |||||
* 用户角色表 前端控制器 | |||||
* </p> | |||||
* | |||||
* @author Liuxinxin | |||||
* @since 2023-01-05 | |||||
*/ | |||||
@Controller | |||||
@RequestMapping("/pmapi.user/user-role") | |||||
public class UserRoleController { | |||||
} |
@@ -53,7 +53,7 @@ public class AgentAuthFilter extends AbstractAuthenticationProcessingFilter { | |||||
setDetails(request, authRequest); | setDetails(request, authRequest); | ||||
return this.getAuthenticationManager().authenticate(authRequest); | return this.getAuthenticationManager().authenticate(authRequest); | ||||
} catch (AuthenticationException e) { | } catch (AuthenticationException e) { | ||||
throw new BadCredentialsException("账号或密码错误"); | |||||
throw new BadCredentialsException("用户id 不能为空"); | |||||
} catch (BizException e) { | } catch (BizException e) { | ||||
throw new BadCredentialsException(e.getMessage()); | throw new BadCredentialsException(e.getMessage()); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
@@ -2,6 +2,7 @@ package com.ningdatech.pmapi.user.security.auth.credential; | |||||
import com.ningdatech.basic.exception.BizException; | import com.ningdatech.basic.exception.BizException; | ||||
import com.ningdatech.pmapi.user.constant.LoginTypeEnum; | import com.ningdatech.pmapi.user.constant.LoginTypeEnum; | ||||
import com.ningdatech.pmapi.user.security.auth.validate.CommonLoginException; | |||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.http.HttpMethod; | import org.springframework.http.HttpMethod; | ||||
import org.springframework.security.authentication.AuthenticationServiceException; | import org.springframework.security.authentication.AuthenticationServiceException; | ||||
@@ -53,7 +54,6 @@ public class CredentialAuthFilter extends AbstractAuthenticationProcessingFilter | |||||
} | } | ||||
paramValid(identifier, credential, loginType); | paramValid(identifier, credential, loginType); | ||||
identifier = trim(identifier); | identifier = trim(identifier); | ||||
credential = trim(credential); | credential = trim(credential); | ||||
loginType = trim(loginType); | loginType = trim(loginType); | ||||
@@ -62,6 +62,10 @@ public class CredentialAuthFilter extends AbstractAuthenticationProcessingFilter | |||||
// Allow subclasses to set the "details" property | // Allow subclasses to set the "details" property | ||||
setDetails(request, authRequest); | setDetails(request, authRequest); | ||||
return this.getAuthenticationManager().authenticate(authRequest); | return this.getAuthenticationManager().authenticate(authRequest); | ||||
} catch (CommonLoginException e) { | |||||
throw new CommonLoginException(e.getMessage()); | |||||
} catch (BadCredentialsException e) { | |||||
throw new BadCredentialsException(e.getMessage()); | |||||
} catch (AuthenticationException e) { | } catch (AuthenticationException e) { | ||||
throw new BadCredentialsException("账号或密码错误"); | throw new BadCredentialsException("账号或密码错误"); | ||||
} catch (BizException e) { | } catch (BizException e) { | ||||
@@ -80,19 +84,19 @@ public class CredentialAuthFilter extends AbstractAuthenticationProcessingFilter | |||||
switch (loginTypeEnum) { | switch (loginTypeEnum) { | ||||
case DING_QR_LOGIN: { | case DING_QR_LOGIN: { | ||||
if (StringUtils.isBlank(credential)) { | if (StringUtils.isBlank(credential)) { | ||||
throw new BadCredentialsException("浙政钉扫码登陆 授权码 不能为空 credential"); | |||||
throw new CommonLoginException("浙政钉扫码登陆 授权码 不能为空 credential"); | |||||
} | } | ||||
} | } | ||||
break; | break; | ||||
case USERNAME_PASSWORD_LOGIN: { | case USERNAME_PASSWORD_LOGIN: { | ||||
if (StringUtils.isBlank(identifier) || StringUtils.isBlank(credential)) { | if (StringUtils.isBlank(identifier) || StringUtils.isBlank(credential)) { | ||||
throw new BadCredentialsException("账号密码登陆 账号密码不能为空 identifier credential"); | |||||
throw new CommonLoginException("账号密码登陆 账号密码不能为空 identifier credential"); | |||||
} | } | ||||
} | } | ||||
break; | break; | ||||
case PHONE_VERIFICATION_CODE_LOGIN: { | case PHONE_VERIFICATION_CODE_LOGIN: { | ||||
if (StringUtils.isBlank(identifier) || StringUtils.isBlank(credential)) { | if (StringUtils.isBlank(identifier) || StringUtils.isBlank(credential)) { | ||||
throw new BadCredentialsException("手机号验证码登陆 手机号或验证码不能为空 identifier credential"); | |||||
throw new CommonLoginException("手机号验证码登陆 手机号或验证码不能为空 identifier credential"); | |||||
} | } | ||||
} | } | ||||
break; | break; | ||||
@@ -3,6 +3,7 @@ package com.ningdatech.pmapi.user.security.auth.handler; | |||||
import com.fasterxml.jackson.databind.ObjectMapper; | import com.fasterxml.jackson.databind.ObjectMapper; | ||||
import com.ningdatech.basic.model.ApiResponse; | import com.ningdatech.basic.model.ApiResponse; | ||||
import com.ningdatech.pmapi.user.security.auth.errorcode.AuthErrorCodeEnum; | import com.ningdatech.pmapi.user.security.auth.errorcode.AuthErrorCodeEnum; | ||||
import com.ningdatech.pmapi.user.security.auth.validate.CommonLoginException; | |||||
import org.springframework.security.authentication.BadCredentialsException; | import org.springframework.security.authentication.BadCredentialsException; | ||||
import org.springframework.security.core.AuthenticationException; | import org.springframework.security.core.AuthenticationException; | ||||
import org.springframework.security.core.userdetails.UsernameNotFoundException; | import org.springframework.security.core.userdetails.UsernameNotFoundException; | ||||
@@ -32,7 +33,10 @@ public class DefaultLoginFailureHandler extends SimpleUrlAuthenticationFailureHa | |||||
String errorMsg; | String errorMsg; | ||||
// 所有的认证异常都可以在这里添加,目前只支持用户名密码错误异常 | // 所有的认证异常都可以在这里添加,目前只支持用户名密码错误异常 | ||||
if (exception instanceof BadCredentialsException || exception instanceof UsernameNotFoundException) { | |||||
if (exception instanceof CommonLoginException) { | |||||
errorCode = 400; | |||||
errorMsg = exception.getMessage(); | |||||
} else if (exception instanceof BadCredentialsException || exception instanceof UsernameNotFoundException) { | |||||
errorCode = AuthErrorCodeEnum.USERNAME_OR_PASSWORD_ERROR.getCode(); | errorCode = AuthErrorCodeEnum.USERNAME_OR_PASSWORD_ERROR.getCode(); | ||||
errorMsg = exception.getMessage(); | errorMsg = exception.getMessage(); | ||||
} else { | } else { | ||||
@@ -0,0 +1,17 @@ | |||||
package com.ningdatech.pmapi.user.security.auth.validate; | |||||
import org.springframework.security.core.AuthenticationException; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2023/3/24 上午11:47 | |||||
* 通用登陆错误 | |||||
*/ | |||||
public class CommonLoginException extends AuthenticationException { | |||||
public CommonLoginException(String message) { | |||||
super(message); | |||||
} | |||||
} |
@@ -1,10 +1,14 @@ | |||||
package com.ningdatech.pmapi.user.security.auth.validate; | package com.ningdatech.pmapi.user.security.auth.validate; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* @author liuxinxin | * @author liuxinxin | ||||
* @date 2023/3/24 上午11:47 | * @date 2023/3/24 上午11:47 | ||||
* 浙政钉扫码登陆错误 | |||||
*/ | */ | ||||
@Data | |||||
public class DingQrLoginException extends RuntimeException { | public class DingQrLoginException extends RuntimeException { | ||||
private Integer code; | private Integer code; | ||||