public class SecurityConstants {
public static final String TOKEN_AUTHENTICATION = "Authorization";
public static final String TOKEN_PREFIX = "Bearer ";
public static final String USER_ID = "user_id";
public static final String USER_NO = "user_no";
public static final String USER_TYPE = "user_type";
public static final String LOGIN_NAME = "login_name";
public static final String USER_NAME = "user_name";
public static final String NICK_NAME = "nick_name";
public static final String AUTHORIZATION_HEADER = "authorization";
public static final String OPEN_ID = "open_id";
public static final String COMPANY_NAME = "company_name";
public static final String CUSTOMER_NO = "customer_no";
}
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.dcqc.destinationdata.exception.BusinessException;
import com.dcqc.destinationdata.util.ServletUtils;
import com.dcqc.destinationdata.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
@Component
public class SecurityUtils {
private static final Logger log = LoggerFactory.getLogger(SecurityUtils.class);
public static String urlDecode(String str)
{
try
{
return URLDecoder.decode(str,"UTF-8");
}
catch (UnsupportedEncodingException e)
{
return "";
}
}
public static String getCustomerNo() {
String customerNo = ServletUtils.getRequest().getHeader(SecurityConstants.CUSTOMER_NO);
Assert.isFalse(StrUtil.isBlank(customerNo), () -> new BusinessException("会员号不能为空"));
return urlDecode(customerNo);
}
public static String getToken() {
return getToken(ServletUtils.getRequest());
}
public static String getToken(HttpServletRequest request) {
String token = request.getHeader(SecurityConstants.TOKEN_AUTHENTICATION);
return replaceTokenPrefix(token);
}
public static String getToken(ServerHttpRequest request) {
String token = request.getHeaders().getFirst(SecurityConstants.TOKEN_AUTHENTICATION);
return replaceTokenPrefix(token);
}
public static String replaceTokenPrefix(String token) {
if (StringUtils.isNotEmpty(token) && token.startsWith(SecurityConstants.TOKEN_PREFIX)) {
token = token.replace(SecurityConstants.TOKEN_PREFIX, "");
}
return token;
}
}