記錄一下使用springSecurity搭建用戶認證和授權的代碼、、、
技術堆疊使用springSecurity + redis + JWT + mybatisPlus
部分代碼來自:https://blog.csdn.net/I_am_Hutengfei/article/details/100561564
零. 共用工具類和sql
1.工具類
@Data
public class JsonResult<T> implements Serializable {
private Boolean success;
private Integer errorCode;
private String errorMsg;
private T data;
?
public JsonResult() {
}
?
public JsonResult(Boolean success, Integer errorCode, String errorMsg, T data) {
this.success = success;
this.errorCode = errorCode;
this.errorMsg = errorMsg;
this.data = data;
}
?
// 成功或者失敗都能走這個
public JsonResult(boolean success) {
this.success = success;
this.errorMsg = success ? ResultCode.SUCCESS.getMessage() : ResultCode.COMMON_FAIL.getMessage();
this.errorCode = success ? ResultCode.SUCCESS.getCode() : ResultCode.COMMON_FAIL.getCode();
}
?
// 成功或者失敗都能走這個,并且可以傳一個列舉來改變默認列舉的值
public JsonResult(boolean success, ResultCode resultEnum) {
this.success = success;
// 傳來的列舉為null就用默認的,不為null就用傳來的列舉
this.errorCode = success ? (resultEnum==null?ResultCode.SUCCESS.getCode():resultEnum.getCode()) : (resultEnum == null ? ResultCode.COMMON_FAIL.getCode() : resultEnum.getCode());
this.errorMsg = success ? (resultEnum==null?ResultCode.SUCCESS.getMessage():resultEnum.getMessage()): (resultEnum == null ? ResultCode.COMMON_FAIL.getMessage() : resultEnum.getMessage());
}
?
// 成功或者失敗都能用
// 用戶可以傳一個任意物件過來,用默認的成功或者失敗的列舉
public JsonResult(boolean success, T data) {
this.success = success;
this.errorCode = success ? ResultCode.SUCCESS.getCode() : ResultCode.COMMON_FAIL.getCode();
this.errorMsg = success ? ResultCode.SUCCESS.getMessage() : ResultCode.COMMON_FAIL.getMessage();
this.data = data;
}
?
// 成功或者失敗都能用
// 用戶可以傳一個任意物件和自定義列舉過來
public JsonResult(boolean success, ResultCode resultEnum, T data) {
this.success = success;
this.errorCode = success ? (resultEnum==null ?