7.5 SpringBoot 拦截器Interceptor实战 统一角色权限校验
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class RoleInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// 获取请求中的用户角色信息
String role = (String) request.getAttribute("role");
// 假设有效的角色是 "ADMIN"
if ("ADMIN".equals(role)) {
// 如果是有效角色,则允许请求继续
return true;
} else {
// 如果不是有效角色,则返回错误信息或者重定向到错误页面
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return false;
}
}
}
这段代码定义了一个HandlerInterceptor的实现类RoleInterceptor,用于检查用户角色是否为"ADMIN"。如果是,则允许请求继续;如果不是,则返回HTTP 403 Forbidden状态码,表示请求被拒绝。这是一个简化的例子,实际应用中可能需要更复杂的角色权限验证逻辑。
评论已关闭