Безопасность Spring для нескольких сервлетов - PullRequest
0 голосов
/ 02 октября 2018

Я использую spring-boot 2.0.4 с Spring-security, OAuth и apache-cxf.для проверки работоспособности приложение регистрирует bean-компонент по умолчанию, который принимает urlMapping ping.html.

В целях безопасности я отметил, что все запросы должны иметь определенную роль, кроме ping.HTML.Но когда я пытаюсь получить доступ к ping.html, он запрашивает ту же безопасность, что и для любой другой страницы приложения.

Вот мои фрагменты кода:

    @Override
            protected void configure(HttpSecurity http) throws Exception {
                http = http.antMatcher("**").sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).enableSessionUrlRewriting(true).and();
                http.authorizeRequests().antMatchers("/ping.html").permitAll().anyRequest().access("oauthHasScope('myApplication.trust')").and().anonymous().disable();

http.httpBasic().authenticationEntryPoint(oAuthRedirectAuthenticationEntryPoint);
            http.addFilterBefore(oAuthTokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
            http.exceptionHandling().accessDeniedHandler(myAppAccessDeniedHandler);
            http.authorizeRequests().expressionHandler(oAuth2WebSecurityExpressionHandler);
            }

Воткод для регистрации сервлетов:

    @Bean
    public ServletRegistrationBean cxfServlet() {
        final ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new CXFServlet(), "/*");
        servletRegistrationBean.setLoadOnStartup(1);
        return servletRegistrationBean;
    }


    @Bean
    public ServletRegistrationBean healthCheckServletBean() {
        ServletRegistrationBean pingHealthCheckServletBean = new ServletRegistrationBean(new DefaultServlet(), "/ping.html");
        pingHealthCheckServletBean.setLoadOnStartup(1);
        return pingHealthCheckServletBean;
    }

Итак, у меня мало сомнений: 1. Как весенняя защита применяется к нескольким сервлетам, как в этом случае.2. Как включить защиту только для одного сервлета и разрешить все для (/ping.html) для сервлета по умолчанию.3. Хотя я упомянул allowAll () для ping.html, почему он блокируется системой безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...