mirror of
https://gitee.com/log4j/pig.git
synced 2024-12-22 20:54:25 +08:00
♻️ Refactoring code. 优化sas 异常提示
This commit is contained in:
parent
10b65a0def
commit
66296afd26
@ -33,6 +33,7 @@ import org.springframework.http.MediaType;
|
|||||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
import org.springframework.http.server.ServletServerHttpResponse;
|
import org.springframework.http.server.ServletServerHttpResponse;
|
||||||
import org.springframework.security.core.AuthenticationException;
|
import org.springframework.security.core.AuthenticationException;
|
||||||
|
import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
|
||||||
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
|
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
|
||||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
||||||
|
|
||||||
@ -87,14 +88,21 @@ public class PigAuthenticationFailureEventHandler implements AuthenticationFailu
|
|||||||
httpResponse.setStatusCode(HttpStatus.UNAUTHORIZED);
|
httpResponse.setStatusCode(HttpStatus.UNAUTHORIZED);
|
||||||
String errorMessage;
|
String errorMessage;
|
||||||
|
|
||||||
|
if (exception instanceof OAuth2AuthenticationException) {
|
||||||
|
OAuth2AuthenticationException authorizationException = (OAuth2AuthenticationException) exception;
|
||||||
|
errorMessage = StrUtil.isBlank(authorizationException.getError().getDescription())
|
||||||
|
? authorizationException.getError().getErrorCode()
|
||||||
|
: authorizationException.getError().getDescription();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
errorMessage = exception.getLocalizedMessage();
|
||||||
|
}
|
||||||
|
|
||||||
// 手机号登录
|
// 手机号登录
|
||||||
String grantType = request.getParameter(OAuth2ParameterNames.GRANT_TYPE);
|
String grantType = request.getParameter(OAuth2ParameterNames.GRANT_TYPE);
|
||||||
if (SecurityConstants.APP.equals(grantType)) {
|
if (SecurityConstants.APP.equals(grantType)) {
|
||||||
errorMessage = MsgUtils.getSecurityMessage("AbstractUserDetailsAuthenticationProvider.smsBadCredentials");
|
errorMessage = MsgUtils.getSecurityMessage("AbstractUserDetailsAuthenticationProvider.smsBadCredentials");
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
errorMessage = exception.getLocalizedMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.errorHttpResponseConverter.write(R.failed(errorMessage), MediaType.APPLICATION_JSON, httpResponse);
|
this.errorHttpResponseConverter.write(R.failed(errorMessage), MediaType.APPLICATION_JSON, httpResponse);
|
||||||
}
|
}
|
||||||
|
@ -7,12 +7,13 @@ import com.pig4cloud.pig.admin.api.feign.RemoteClientDetailsService;
|
|||||||
import com.pig4cloud.pig.common.core.constant.CacheConstants;
|
import com.pig4cloud.pig.common.core.constant.CacheConstants;
|
||||||
import com.pig4cloud.pig.common.core.constant.SecurityConstants;
|
import com.pig4cloud.pig.common.core.constant.SecurityConstants;
|
||||||
import com.pig4cloud.pig.common.core.util.RetOps;
|
import com.pig4cloud.pig.common.core.util.RetOps;
|
||||||
import com.pig4cloud.pig.common.security.util.OAuthClientException;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.security.oauth2.core.AuthorizationGrantType;
|
import org.springframework.security.oauth2.core.AuthorizationGrantType;
|
||||||
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
|
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
|
||||||
|
import org.springframework.security.oauth2.core.OAuth2Error;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationException;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
|
||||||
@ -87,7 +88,8 @@ public class PigRemoteRegisteredClientRepository implements RegisteredClientRepo
|
|||||||
public RegisteredClient findByClientId(String clientId) {
|
public RegisteredClient findByClientId(String clientId) {
|
||||||
|
|
||||||
SysOauthClientDetails clientDetails = RetOps.of(clientDetailsService.getClientDetailsById(clientId)).getData()
|
SysOauthClientDetails clientDetails = RetOps.of(clientDetailsService.getClientDetailsById(clientId)).getData()
|
||||||
.orElseThrow(() -> new OAuthClientException("客户端查询异常,请检查数据库链接"));
|
.orElseThrow(() -> new OAuth2AuthorizationCodeRequestAuthenticationException(
|
||||||
|
new OAuth2Error("客户端查询异常,请检查数据库链接"), null));
|
||||||
|
|
||||||
RegisteredClient.Builder builder = RegisteredClient.withId(clientDetails.getClientId())
|
RegisteredClient.Builder builder = RegisteredClient.withId(clientDetails.getClientId())
|
||||||
.clientId(clientDetails.getClientId())
|
.clientId(clientDetails.getClientId())
|
||||||
|
Loading…
Reference in New Issue
Block a user