Browse Source

perf: 优化登录授权部分逻辑

master
wangxiang 2 years ago
parent
commit
ac46d387bd
  1. 6
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java
  2. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
  3. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java

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

@ -34,14 +34,12 @@ public class KiccWebResponseExceptionTranslator implements WebResponseExceptionT @@ -34,14 +34,12 @@ public class KiccWebResponseExceptionTranslator implements WebResponseExceptionT
Throwable[] causeChain = throwableAnalyzer.determineCauseChain(e);
Exception ase = (AuthenticationException) throwableAnalyzer
.getFirstThrowableOfType(AuthenticationException.class, causeChain);
Exception ase = (AuthenticationException) throwableAnalyzer.getFirstThrowableOfType(AuthenticationException.class, causeChain);
if (ase != null) {
return handleOAuth2Exception(new UnauthorizedException(e.getMessage(), e));
}
ase = (AccessDeniedException) throwableAnalyzer.getFirstThrowableOfType(AccessDeniedException.class,
causeChain);
ase = (AccessDeniedException) throwableAnalyzer.getFirstThrowableOfType(AccessDeniedException.class, causeChain);
if (ase != null) {
return handleOAuth2Exception(new ForbiddenException(ase.getMessage(), ase));
}

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

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

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

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

Loading…
Cancel
Save