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

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

WBOY
Libérer: 2024-02-22 13:19:06
avant
1236 Les gens l'ont consulté

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();
    }
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal