Spring Security: я могу загружать ресурсы c, но не изображения - PullRequest
0 голосов
/ 21 июня 2020

Я пробовал все предложения отсюда, но не смог заставить его работать безопасность весенней загрузки c ресурсы

Я должен указать, что изображение, которое я пытаюсь добавить на странице входа.

Я использую maven для создания веб-приложения весенней загрузки с безопасностью и тимелеафом. Кажется, что все мои stati c ресурсы загружаются нормально (css / jss), но изображения нет. Когда я проверяю инструменты разработчика в chrome, я получаю ошибку 404 для этого изображения в консоли. Независимо от того, какой путь Я использую, я получаю ту же ошибку. Я разрешил доступ ко всему содержимому stati c здесь

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
 @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests().antMatchers(HttpMethod.GET,"/resources/**" ,"/js/**", "/css/**", "/images/**" ,"/fonts/**", "/scss/**", "/index", "/", "/login").permitAll()
                .and()
                .authorizeRequests()
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .defaultSuccessUrl("/home", true)
                .and()
                .logout()
                .logoutSuccessUrl("/")
                .logoutUrl("/signout");

    }

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

вот как я получаю к нему доступ в тимелеафе

 <div class="col-lg-2 ml-auto"  data-aos="fade-up" data-aos-delay="100">
                    <figure class="img-absolute">
                        <img th:src="@{/images/car.jpeg}" alt="Image" class="img-fluid">
                    </figure>
                </div>

this это моя структура папок

src->main->resources->static->images->car.jpeg

, и это ошибка, которую я получаю в инструментах разработчика GET http://localhost:8080/images/car.jpeg 404

, любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 22 июня 2020

Используйте этот подход, чтобы получить статические c изображения и другие ресурсы для загрузки на вашу html страницу -

1.) Исправьте структуру папок для изображений. Это должно быть - your_project_name -> sr c -> main -> resources -> stati c -> assets -> img -> ваши изображения

NOTE - Добавьте другие файлы и папки stati c внутри папки ресурсов.

2.) И ваш класс конфигурации безопасности -

    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
         // your code

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

3.) Используйте правильный URL-адрес на своей html странице для доступа к изображениям -

//your code
<img th:src="@{/assets/img/car.jpeg}" alt="Image" class="img-fluid">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...