Spring Security antMatcher无法按预期工作

时间:2019-09-17 11:24:00

标签: spring spring-boot spring-security

我有我的自定义控制器"/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"仍能按预期工作。

1 个答案:

答案 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)