在Spring Boot中使用Sa-Token实现路径拦截和特定接口放行
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
public class SaTokenInterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器
HandlerInterceptor interceptor = new HandlerInterceptor() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// 在这里写拦截逻辑,例如检查token
return SaTokenUtil.checkToken(request, response, handler);
}
};
// 拦截所有路径,除了/api/login和/api/user/**
registry.addInterceptor(interceptor)
.addPathPatterns("/**")
.excludePathPatterns("/api/login")
.excludePathPatterns("/api/user/**");
}
}
// SaTokenUtil工具类,包含checkToken方法
class SaTokenUtil {
public static boolean checkToken(HttpServletRequest request, HttpServletResponse response, Object handler) {
// 实现Token验证逻辑,例如使用Sa-Token的Api
// return SaTokenManager.getSaTokenServlet().matchPath(request, response);
// 示例:假设我们只是简单地返回true表示通过
return true;
}
}
这个代码示例展示了如何在Spring Boot项目中使用WebMvcConfigurer
接口和拦截器来实现路径拦截,并针对特定的接口放行。在addInterceptors
方法中,我们定义了一个拦截器,并在其preHandle
方法中调用了SaTokenUtil
的checkToken
方法来实现Token验证。同时,我们指定了要拦截的路径和不拦截的特定路径。
评论已关闭