我有我的自定义控制器"/my-endpoint"
和带有以下配置的spring应用:
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/my-endpoint", "/health")
.permitAll()
.antMatchers(DENY_RESOURCE_PATTERNS)
.denyAll()
.anyRequest()
.authenticated()
}
对于一个一致的用户来说,它工作正常。但是,如果我已经授权(使用oauth2)并且我的会话(或令牌)已过期-> spring尝试将我重定向到登录页面。
我不想要这个,我想允许任何用户连接到“ / my-endpoint”端点。
我忘记配置什么?
有趣的是,即使会话终止,内置端点"/health"
仍能按预期工作。
答案 0 :(得分:1)
您可以使用private void Window_Loaded(object sender, RoutedEventArgs e) {
//Subscribe to generated containers event of the ItemsControl
MyItemsControl.ItemContainerGenerator.StatusChanged += ContainerGenerator_StatusChanged;
}
/// <summary>
/// Handles changed in container generator status.
///</summary>
private void ContainerGenerator_StatusChanged(object sender, EventArgs e) {
var generator = sender as ItemContainerGenerator;
//Check that containers have been generated
if (generator.Status == GeneratorStatus.ContainersGenerated ) {
//Do stuff
}
}
。它将绕过Spring安全过滤器,并允许任何用户访问端点。参见 HttpSecurity vs WebSecurity
configure(WebSecurity web)