Maison  >  Article  >  La sécurité Spring empêche l'accès aux styles

La sécurité Spring empêche l'accès aux styles

WBOY
WBOYavant
2024-02-22 13:19:061184parcourir

L'éditeur php Banana vous propose le dernier contenu de questions-réponses Java : comment la sécurité dans le framework Spring empêche-t-elle l'accès aux styles ? Il s’agit d’un problème important en matière de sécurité des applications Web. Lors du développement d'applications Web à l'aide du framework Spring, la manière de protéger efficacement les fichiers de style contre les accès non autorisés est un problème qui mérite attention. Cet article répondra pour vous à cette question en détail et vous aidera à mieux améliorer la sécurité des applications Web.

Contenu de la question

J'ai rencontré un problème où, à un moment donné, certains styles de mon projet de printemps ont cessé de fonctionner. J'ai utilisé des styles d'amorçage et des styles écrits par moi-même dans des fichiers CSS. Pour une raison quelconque, après le lancement du programme, seule une partie de celui-ci s'affiche. Lors de l'affichage de "Réseau" dans les outils de développement Google, je constate que les fichiers de style sont redirigés vers http://localhost:8080/login pour une raison quelconque, bien que je puisse accéder aux fichiers de style. (https://i.stack.imgur.com/ggort.png)

@Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests((requests) -> requests
                        .requestMatchers("/", "/reg", "/registration/**", "/static/**", "/static/images/**", "/static/styles/**").permitAll()
                        .anyRequest().authenticated()
                )
                .formLogin((form) -> form
                        .loginPage("/login")
                        .failureUrl("/login_error")
                        .defaultSuccessUrl("/pc")
                        .permitAll()
                )
                .logout((logout) -> logout.permitAll().logoutSuccessUrl("/"));

        return http.build();
    }

Après avoir découvert cela, j'ai décidé de commenter la dépendance de sécurité Spring dans pom.xml et de commenter toutes les classes qui l'utilisent. Après cela, les styles ont commencé à fonctionner et tout a continué à fonctionner lorsque la sécurité du printemps n'était pas annotée. Cependant, lorsque j'ai redémarré mon ordinateur et démarré le projet, j'ai de nouveau rencontré le même problème. A quoi cela peut-il être lié et comment y remédier ? J'ai vraiment besoin de ton aide!

Solution de contournement

Vous devez dire à Spring Security d'ignorer les ressources sous src/main/resources/static. Vous pouvez le faire en ajoutant une référence http.authorizeRequests((requests) -> requests..requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()) 添加到安全配置中并删除所有 "/static/ 来实现此目的。 .. à partir d'une configuration existante.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer