如何在春季的过滤器中排除特定URL?
我有一个基本的应用程序过滤器配置,如下所示:
@Configuration
public class ApplicationFilterConfig {
/**
* Check if user is logged in
*/
@Bean
public FilterRegistrationBean applicationFilterRegistration() {
// created a collections that need logins to be validated.
ArrayList<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/home");
urlPatterns.add("/about");
urlPatterns.add("/contact");
// ...
LoginFilter loginFilter = new LoginFilter();
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(loginFilter);
registration.setUrlPatterns(urlPatterns);
registration.setOrder(1);
return registration;
}
}
但是,即使使用星形注释(例如),列表也会变得非常长。我不只使用的主要原因是因为我不想要求我的登录页面进行登录验证。如果我这样做,它会创建一个无限的重定向循环。urlPatterns
/employees/*
/*
该类是否允许您将筛选器应用于除某些模式之外的所有 URL 模式?FilterRegistrationBean
我可以将除登录页面之外的所有内容都放在一个目录中,并将我的URL模式设置为,但这会为webapp中的每个文件添加不必要的深度级别。/subdirectory/*