课表申请功能重写 bug修复

This commit is contained in:
liumengyu
2026-08-25 18:47:22 +08:00
parent aa4145fd33
commit a30b963dea
58 changed files with 1203 additions and 1632 deletions
@@ -100,7 +100,7 @@ public class SecurityConfig
.authorizeHttpRequests((requests) -> {
permitAllUrl.getUrls().forEach(url -> requests.requestMatchers(url).permitAll());
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
requests.requestMatchers("/login", "/register", "/captchaImage","/jwtest/pk/all").permitAll()
requests.requestMatchers("/login", "/register", "/captchaImage", "/jwtest/pk/all").permitAll()
// 静态资源,可匿名访问
.requestMatchers(HttpMethod.GET, "/", "/*.html", "/**.html", "/**.css", "/**.js", "/profile/**").permitAll()
.requestMatchers("/swagger-ui.html", "/v3/api-docs/**", "/swagger-ui/**", "/druid/**").permitAll()
@@ -73,6 +73,10 @@ public class TokenService
String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
String userKey = getTokenKey(uuid);
LoginUser user = redisCache.getCacheObject(userKey);
if (user == null)
{
log.warn("令牌签名有效,但登录缓存已失效,请重新登录");
}
return user;
}
catch (Exception e)
@@ -218,14 +222,42 @@ public class TokenService
*/
private String getToken(HttpServletRequest request)
{
String token = request.getHeader(header);
if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
String token = firstHeader(request, header, "Authorization", "token");
if (StringUtils.isNotEmpty(token))
{
token = token.replace(Constants.TOKEN_PREFIX, "");
token = token.trim();
if (StringUtils.startsWithIgnoreCase(token, Constants.TOKEN_PREFIX))
{
token = token.substring(Constants.TOKEN_PREFIX.length()).trim();
}
}
return token;
}
/**
* 按顺序读取请求头,兼容 Authorization / token。
*/
private String firstHeader(HttpServletRequest request, String... names)
{
if (names == null)
{
return null;
}
for (String name : names)
{
if (StringUtils.isEmpty(name))
{
continue;
}
String value = request.getHeader(name);
if (StringUtils.isNotEmpty(value))
{
return value;
}
}
return null;
}
private String getTokenKey(String uuid)
{
return CacheConstants.LOGIN_TOKEN_KEY + uuid;