| ruoyi-auth/src/main/java/com/ruoyi/auth/exception/CustomOauthException.java | ●●●●● patch | view | raw | blame | history | |
| ruoyi-auth/src/main/java/com/ruoyi/auth/exception/CustomOauthExceptionSerializer.java | ●●●●● patch | view | raw | blame | history | |
| ruoyi-auth/src/main/java/com/ruoyi/auth/exception/CustomWebResponseExceptionTranslator.java | ●●●●● patch | view | raw | blame | history | |
| ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | ●●●●● patch | view | raw | blame | history |
ruoyi-auth/src/main/java/com/ruoyi/auth/exception/CustomOauthException.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.auth.exception; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; /** * oauth2自定义异常 * * @author ruoyi **/ @JsonSerialize(using = CustomOauthExceptionSerializer.class) public class CustomOauthException extends OAuth2Exception { private static final long serialVersionUID = 1L; public CustomOauthException(String msg) { super(msg); } } ruoyi-auth/src/main/java/com/ruoyi/auth/exception/CustomOauthExceptionSerializer.java
New file @@ -0,0 +1,48 @@ package com.ruoyi.auth.exception; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; /** * 自定义异常返回 * * @author ruoyi **/ public class CustomOauthExceptionSerializer extends StdSerializer<CustomOauthException> { private static final long serialVersionUID = 1L; private static final Logger log = LoggerFactory.getLogger(CustomOauthExceptionSerializer.class); public static final String BAD_CREDENTIALS = "Bad credentials"; public CustomOauthExceptionSerializer() { super(CustomOauthException.class); } @Override public void serialize(CustomOauthException e, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeNumberField(AjaxResult.CODE_TAG, HttpStatus.ERROR); if (StringUtils.equals(e.getMessage(), BAD_CREDENTIALS)) { jsonGenerator.writeStringField(AjaxResult.MSG_TAG, "用户名或密码错误"); } else { log.warn("oauth2 认证异常 {} ", e); jsonGenerator.writeStringField(AjaxResult.MSG_TAG, e.getMessage()); } jsonGenerator.writeEndObject(); } } ruoyi-auth/src/main/java/com/ruoyi/auth/exception/CustomWebResponseExceptionTranslator.java
@@ -1,6 +1,6 @@ package com.ruoyi.auth.exception; import javax.servlet.http.HttpServletResponse; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator; @@ -15,7 +15,6 @@ @Override public ResponseEntity<OAuth2Exception> translate(Exception e) { OAuth2Exception oAuth2Exception = (OAuth2Exception) e; return ResponseEntity.status(HttpServletResponse.SC_UNAUTHORIZED).body(oAuth2Exception); return ResponseEntity.status(HttpStatus.OK).body(new CustomOauthException(e.getMessage())); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -102,6 +102,10 @@ public R<UserInfo> info(@PathVariable("username") String username) { SysUser sysUser = userService.selectUserByUserName(username); if (StringUtils.isNull(sysUser)) { return R.failed("用户名或密码错误"); } // 角色集合 Set<String> roles = permissionService.getRolePermission(sysUser.getUserId()); // 权限集合