我有一个弹簧应用程序(不使用弹簧启动)部署到雄猫
我尝试在给定条件下使用 返回特定URL上的错误401() 。HttpServletResponse.SC_UNAUTHORIZEDOncePerRequestFilter
但我不断得到 找不到错误:
Response code: 404
我的过滤器(删除条件):
@Component
public class MyFilter extends OncePerRequestFilter {
private static final Logger logger = Logger.getLogger(MyFilter.class);
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Not autorized");
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
try {
PrintWriter out = response.getWriter();
out.write(""); // Empty
out.flush();
} catch (IOException e) {
logger.error("error filtering", e);
}
return; // stop chain
}
}
我尝试使用与以前类似答案类似的代码
我相信你可以响应.send内部的错误做过滤方法。
编辑
如果我只是抛出一个异常,我得到一个通用错误代码500
Response code: 500
编辑 2
我正在添加过滤器内部的方法覆盖onStartupWebApplicationInitializer
FilterRegistration myFilter = servletContext.addFilter("myFilter ", MyFilter.class);
myFilter.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint/*");
编辑 3
此外,我的过滤器及其软件包包含在组件扫描中@Componenet
@ComponentScan(basePackages = { "my.parent.pacakge"})
qq_遁去的一_1
慕慕森
慕尼黑的夜晚无繁华
随时随地看视频慕课网APP
相关分类