Spring Boot, обслуживающий статический контент, заблокированный системой безопасности - PullRequest
0 голосов
/ 04 декабря 2018

Я запустил приложение Spring Boot + Angular, и сейчас я хочу развернуть все это как jarПоэтому я создал конфигурацию maven, в которой приложение angular создается и затем копируется в / target / classes / resources

Но каждый запрос к root (localhost: 8080) блокируется безопасностью.Когда я отключаю его, я могу видеть страницу, что означает, что все развернуто правильно, но почему-то весна не позволяет мне видеть это.Вот моя простая конфигурация безопасности, я хочу, чтобы статические ресурсы не были защищены, в то время как любой другой запрос требует аутентификации:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
                .anyRequest().authenticated()
                .and().httpBasic();
    }
}

РЕДАКТИРОВАТЬ: минимальный пример моей проблемы здесь: https://gitlab.com/jnowacki/security-issue-demo

РЕДАКТИРОВАТЬ 2: Я пытаюсь все из этого поста: Обслуживание статических веб-ресурсов в приложении Spring Boot & Spring Security Я делаю что-то не так на концептуальном уровне?Разве неправильно показывать статический контент вместе с приложением Spring Boot?

Ответы [ 4 ]

0 голосов
/ 06 декабря 2018

Согласно StaticResourceLocation документам :

.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()

будет разрешен доступ к CSS, JS, ICO, изображениям и НЕ к html .

Для разрешения index.html вы можете использовать следующую конфигурацию:

 http.authorizeRequests()
                .antMatchers("/index.html", "/").permitAll()
                .anyRequest().authenticated()
                .and().httpBasic();
0 голосов
/ 04 декабря 2018

Добавьте это дополнительное переопределение:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring()
            .antMatchers(AUTH_WHITELIST);
}

, где AUTH_WHITELIST будет содержать пути, которые следует игнорировать.Например:

private static final String[] SWAGGER_AUTH_WHITELIST = {
        // -- swagger ui
        "/v2/api-docs",
        "/swagger-resources",
        "/swagger-resources/**",
        "/swagger-ui.html",
        "/resources/**"
};
0 голосов
/ 04 декабря 2018

Используйте этот метод, чтобы позволить пружинным средствам игнорировать статические ресурсы.

0 голосов
/ 04 декабря 2018

попробуйте ниже.

@Override
public void configure(WebSecurity web) throws Exception {
    web
    .ignoring()
    .antMatchers("/resources/**");
}

См. spring-securitys-antmatcher

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