public static <T> ApiResponse<T> success(String msg, T data) {
ApiResponse<T> apiResponse = new ApiResponse<>(200, msg, data);
return apiResponse;
}
/**
* 失败统一响应格式
*
* @param code
* @param message
* @param <T>
* @return
*/
public static <T> ApiResponse<T> fail(Integer code, String message) {
return new ApiResponse<>(code, message, null);
}
/**
* 失败统一响应格式
*
* @param errorCode
* @param <T>
* @return
*/
public static <T> ApiResponse<T> fail(ErrorCode errorCode) {
return new ApiResponse<>(errorCode.getCode(), errorCode.getMsg(), null);
}
}
**⑦ 统一错误码定义**
package com.yundi.atp.commom;
public enum ErrorCode {
SYSTEM_ERROR(10000, “系统错误!”),
UN_AUTH(10001, “用户未认证,请先登录!”),
AUTH_FAILURE(10002, “认证失败,用户名或密码错误!”),
UN_ACCESS(10003, “该用户没有此操作权限!”),
METHOD_ARGS_VALID(10004, “方法参数验证失败!”),
TOKEN_VALID(10005, “token鉴权失败!”),
TOKEN_NOT_EXIST(10006, “token不存在!”),
;
private Integer code;
private String msg;
ErrorCode(Integer code, String message) {
this.code = code;
this.msg = message;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
**⑧创建DbUserDetailsManager类实现UserDetailsManager和UserDetailsPasswordService接口方法,用于实现数据库版本的认证权限管理,该类主要是实现用户数据和权限数据的获取,用于认证和授权使用**
package com.yundi.atp.auth;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yundi.atp.entity.AuthUser;
import com.yundi.atp.mapper.AuthUserMapper;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsPasswordService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.provisioning.UserDetailsManager;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
@Service
public class DbUserDetailsManager implements UserDetailsManager, UserDetailsPasswordService {
@Resource
private AuthUserMapper authUserMapper;
@Override
public UserDetails updatePassword(UserDetails user, String newPassword) {
return null;
}
@Override
public void createUser(UserDetails userDetails) {
AuthUser authUser = new AuthUser();
authUser.setUsername(userDetails.getUsername());
authUser.setPassword(userDetails.getPassword());
authUser.setEnabled(true);
authUserMapper.insert(authUser);
}
@Override
public void updateUser(UserDetails user) {
}
@Override
public void deleteUser(String username) {
}
@Override
public void changePassword(String oldPassword, String newPassword) {
}
@Override
public boolean userExists(String username) {
return false;
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//查询用户数据
QueryWrapper<AuthUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username", username);
AuthUser authUser = authUserMapper.selectOne(queryWrapper);
if (authUser == null)