Метод настройки Spring не вызывается

#spring #spring-security

#spring #spring-безопасность

Вопрос:

Я попытался настроить spring, чтобы разрешить кодированные косые черты в URL, но я не могу применить конфигурацию

Я попытался добавить @EnableWebSecurity, но, похоже, это ничего не изменило. Когда я ставлю точки останова, вызывается метод @Bean, но не configure() .

 @Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Bean
    public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
        DefaultHttpFirewall firewall = new DefaultHttpFirewall();
        firewall.setAllowUrlEncodedSlash(true);
        return firewall;
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.httpFirewall(allowUrlEncodedSlashHttpFirewall());
    }
}
 

Ответ №1:

Мне удалось заставить его работать, используя конфигурацию xml. Я добавил следующее в свой applicationContext.xml:

 <bean id="allowUrlEncodedSlashHttpFirewall"
      class="org.springframework.security.web.firewall.DefaultHttpFirewall">
    <property name="allowUrlEncodedSlash" value="true"/>
</bean>
<security:http-firewall ref="allowUrlEncodedSlashHttpFirewall"/>