Browse Source

perf: 调整登录提示

master
wangxiang 2 years ago
parent
commit
9f89df5f86
  1. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/ForbiddenException.java
  2. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/InvalidException.java
  3. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/KiccAuth2Exception.java
  4. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/MethodNotAllowed.java
  5. 36
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/SecurityCheckedException.java
  6. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/ServerErrorException.java
  7. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/TokenInvalidException.java
  8. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/UnauthorizedException.java
  9. 2
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java
  10. 9
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java
  11. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
  12. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/ForbiddenException.java

@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus;
public class ForbiddenException extends KiccAuth2Exception { public class ForbiddenException extends KiccAuth2Exception {
public ForbiddenException(String msg, Throwable t) { public ForbiddenException(String msg, Throwable t) {
super(msg); super(msg, t);
} }
@Override @Override

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/InvalidException.java

@ -14,7 +14,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
public class InvalidException extends KiccAuth2Exception { public class InvalidException extends KiccAuth2Exception {
public InvalidException(String msg, Throwable t) { public InvalidException(String msg, Throwable t) {
super(msg); super(msg, t);
} }
@Override @Override

4
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/KiccAuth2Exception.java

@ -22,6 +22,10 @@ public class KiccAuth2Exception extends OAuth2Exception {
super(msg); super(msg);
} }
public KiccAuth2Exception(String msg, Throwable t) {
super(msg, t);
}
public KiccAuth2Exception(String msg, String errorCode) { public KiccAuth2Exception(String msg, String errorCode) {
super(msg); super(msg);
this.errorCode = errorCode; this.errorCode = errorCode;

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/MethodNotAllowed.java

@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus;
public class MethodNotAllowed extends KiccAuth2Exception { public class MethodNotAllowed extends KiccAuth2Exception {
public MethodNotAllowed(String msg, Throwable t) { public MethodNotAllowed(String msg, Throwable t) {
super(msg); super(msg, t);
} }
@Override @Override

36
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/SecurityCheckedException.java

@ -0,0 +1,36 @@
package com.cloud.kicc.common.security.exception;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.http.HttpStatus;
/**
*<p>
* 安全检查异常
* 可绕过前端设置的状态码提示消息
*</p>
*
* @Author: entfrm开发团队-王翔
* @Date: 2022/2/18
*/
@JsonSerialize(using = KiccAuth2ExceptionSerializer.class)
public class SecurityCheckedException extends KiccAuth2Exception {
public SecurityCheckedException(String msg) {
super(msg);
}
public SecurityCheckedException(String msg, Throwable t) {
super(msg, t);
}
@Override
public String getOAuth2ErrorCode() {
return "checked_not_pass";
}
@Override
public int getHttpErrorCode() {
return HttpStatus.NETWORK_AUTHENTICATION_REQUIRED.value();
}
}

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/ServerErrorException.java

@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus;
public class ServerErrorException extends KiccAuth2Exception { public class ServerErrorException extends KiccAuth2Exception {
public ServerErrorException(String msg, Throwable t) { public ServerErrorException(String msg, Throwable t) {
super(msg); super(msg, t);
} }
@Override @Override

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/TokenInvalidException.java

@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus;
public class TokenInvalidException extends KiccAuth2Exception { public class TokenInvalidException extends KiccAuth2Exception {
public TokenInvalidException(String msg, Throwable t) { public TokenInvalidException(String msg, Throwable t) {
super(msg); super(msg, t);
} }
@Override @Override

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/UnauthorizedException.java

@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus;
public class UnauthorizedException extends KiccAuth2Exception { public class UnauthorizedException extends KiccAuth2Exception {
public UnauthorizedException(String msg, Throwable t) { public UnauthorizedException(String msg, Throwable t) {
super(msg); super(msg, t);
} }
@Override @Override

2
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java

@ -112,8 +112,6 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica
throw ex; throw ex;
} catch (InternalAuthenticationServiceException ex) { } catch (InternalAuthenticationServiceException ex) {
throw ex; throw ex;
} catch (Exception ex) {
throw new InternalAuthenticationServiceException(ex.getMessage(), ex);
} }
} }

9
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java

@ -55,14 +55,17 @@ public class KiccWebResponseExceptionTranslator implements WebResponseExceptionT
return handleOAuth2Exception(new TokenInvalidException(ase.getMessage(), ase)); return handleOAuth2Exception(new TokenInvalidException(ase.getMessage(), ase));
} }
ase = (HttpRequestMethodNotSupportedException) throwableAnalyzer ase = (HttpRequestMethodNotSupportedException) throwableAnalyzer.getFirstThrowableOfType(HttpRequestMethodNotSupportedException.class, causeChain);
.getFirstThrowableOfType(HttpRequestMethodNotSupportedException.class, causeChain);
if (ase != null) { if (ase != null) {
return handleOAuth2Exception(new MethodNotAllowed(ase.getMessage(), ase)); return handleOAuth2Exception(new MethodNotAllowed(ase.getMessage(), ase));
} }
ase = (OAuth2Exception) throwableAnalyzer.getFirstThrowableOfType(OAuth2Exception.class, causeChain); ase = (SecurityCheckedException) throwableAnalyzer.getFirstThrowableOfType(SecurityCheckedException.class, causeChain);
if (ase != null) {
return handleOAuth2Exception(new SecurityCheckedException(ase.getMessage(), ase));
}
ase = (OAuth2Exception) throwableAnalyzer.getFirstThrowableOfType(OAuth2Exception.class, causeChain);
if (ase != null) { if (ase != null) {
return handleOAuth2Exception((OAuth2Exception) ase); return handleOAuth2Exception((OAuth2Exception) ase);
} }

4
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java

@ -3,6 +3,7 @@ package com.cloud.kicc.common.security.service.impl;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException;
import com.cloud.kicc.common.security.service.KiccUserDetailsService; import com.cloud.kicc.common.security.service.KiccUserDetailsService;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;
@ -10,7 +11,6 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
/** /**
*<p> *<p>
@ -36,7 +36,7 @@ public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService {
public UserDetails loadUserByUsername(String phone) { public UserDetails loadUserByUsername(String phone) {
R<User> result = remoteUserService.selectByPhone(phone, SecurityConstants.FROM_IN); R<User> result = remoteUserService.selectByPhone(phone, SecurityConstants.FROM_IN);
if (result == null || result.getData() == null) { if (result == null || result.getData() == null) {
throw new UsernameNotFoundException("手机号不存在!"); throw new SecurityCheckedException("手机号不存在!");
} }
UserDetails userDetails = getUserDetails(result); UserDetails userDetails = getUserDetails(result);
return userDetails; return userDetails;

4
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java

@ -2,6 +2,7 @@ package com.cloud.kicc.common.security.service.impl;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.security.exception.SecurityCheckedException;
import com.cloud.kicc.common.security.service.KiccUserDetailsService; import com.cloud.kicc.common.security.service.KiccUserDetailsService;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;
@ -10,7 +11,6 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
/** /**
*<p> *<p>
@ -37,7 +37,7 @@ public class KiccUserDetailsServiceImpl implements KiccUserDetailsService {
public UserDetails loadUserByUsername(String username) { public UserDetails loadUserByUsername(String username) {
R<User> result = remoteUserService.selectByUserName(username, SecurityConstants.FROM_IN); R<User> result = remoteUserService.selectByUserName(username, SecurityConstants.FROM_IN);
if (result == null || result.getData() == null) { if (result == null || result.getData() == null) {
throw new UsernameNotFoundException("用户不存在!"); throw new SecurityCheckedException("用户不存在!");
} }
UserDetails userDetails = getUserDetails(result); UserDetails userDetails = getUserDetails(result);
return userDetails; return userDetails;

Loading…
Cancel
Save