我有一个具有各种终结点的基本Spring应用程序,以及一个登录页面,该登录页面是通过配置WebSecurityConfigurerAdapter的HttpSecurity定义的。
我有一个服务,可在我的应用程序中查找所有端点并收集有关它们的一些基本信息,这些信息是通过自动装配RequestMappingHandlerMapping类并遍历不同的处理程序方法来实现的。
我想为WebSecurityCongigurer适配器定义的路径收集一些类似的信息。
例如,在configue方法中,如果有的话,说:
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeRequests()
.antMatchers(HttpMethod.POST, "/login").permitAll()
我想从服务内收集以下信息:"/login"
和HttpMethod.POST
。任何帮助将不胜感激!
答案 0 :(得分:0)
我的帖子没有直接回答问题,因为我不知道这样做的方法。但是,有一种解决方法,这个想法值得尝试:
我建议您有一个映射源并动态设置antMatchers
。此解决方案既可以配置适配器,也可以保留映射源以供将来使用(我建议将值本身保持不变)。
List<MatcherMapping> mappings = ....
for (MatcherMapping mapping: mappings ) {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeRequests()
.antMatchers(mapping.getHttpMethod, mapping.getUrl).permitAll()
}
类MatcherMapping
仅仅是一个简单的数据容器。
public final class MatcherMapping {
private final HttpMethod httpMethod;
private final String url;
// constructor and getters
}
最终由您决定使用服务获取数据还是直接获取数据都没有关系。