截取url需要java配置中的通道

9jyewag0  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(441)

我正在基于WebSecurityConfigureAdapter将xml spring安全配置迁移到java配置。在xml配置中,我可以指定每个截取url需要的通道,例如:

<sec:http entry-point-ref="authenticationEntryPoint"
          use-expressions="true"
          disable-url-rewriting="false">

    <!-- ERRORS -->
    <sec:intercept-url pattern="/error/**" requires-channel="any"/>

    <!-- private -->
    <sec:intercept-url pattern="/`private/**" requires-channel="https"/>
</sec:http>

在我的java配置中,我有如下内容:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.requiresChannel()          /**How can specify channels at authorizeRequest level?**/
            .channelProcessors(channelProcessors()).and()
            .authorizeRequests()
            .antMatchers("/error/**")
            .permitAll()
            .and()
            .authorizeRequests()
            .antMatchers("/private/**")
            .authenticated();
}

如何在授权请求级别指定通道?
当做

jmp7cifd

jmp7cifd1#

您还可以在java配置中指定模式。这个 requiresChannel 块与您在中指定的内容无关 authorizeRequests .
这是等效的配置

http
    .requiresChannel(channel -> channel
        .antMatchers("/error/**").requires(ChannelDecisionManagerImpl.ANY_CHANNEL)
        .antMatchers("/private/**").requiresSecure()
    );

相关问题