如何为特定url启用spring安全会话管理

lyr7nygr  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(175)

我有一个场景,在这个场景中,我必须实现Spring Security ,以便在已经存在的其他端点之间保护一个新端点。
我目前的配置如下:

protected void configure(HttpSecurity http) throws Exception {
    http.addFilterBefore(authenticationFilter(), UsernamePasswordAuthenticationFilter.class)
        .csrf().requireCsrfProtectionMatcher(new CsrfRequestMatcher())
        .and()
        .sessionManagement().invalidSessionUrl("/invalidSession")
        .and()
        .sessionManagement().maximumSessions(1).expiredUrl("/expiredSession").and()
        .and()
        .authorizeRequests()
            .antMatchers("/user/manage/*").authenticated()
            .anyRequest().permitAll()
            .and()
        .formLogin()
            .loginPage("/user/login").permitAll()
            .defaultSuccessUrl("/user/manage")
            .and()
        .logout().permitAll();
}

我的要求是只对/user/manage/*路径实施上述spring安全配置。但是,我注意到我的应用程序中的其他mvc端点导致重定向到/invalidsessions url。
我希望其他端点能够正常工作,并完全禁用这些端点的Spring Security (以及会话管理指令)。我只知道在提供的另一个configure override中执行此操作,但它并不完全满足我的需要:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/cof/manage/*"); //need something like NOT "/cof/manage/*"
}

上面的忽略可以在每个url的基础上完成,但不可能禁用除给定url以外的所有url。我唯一的选择是列出除“/cof/manage/*”路径之外的当前存在于我的应用程序中的所有mvc端点吗?
谢谢您

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题