J'essaie de filtrer certains modèles d'URL à la mise en cache. Ce que j'ai essayé est de mettre des codes dans l'implémentation WebSecurityConfigurerAdapter
.sécurité de printemps - comment supprimer le contrôle de cache dans certains modèle d'URL
@Override
protected void configure(HttpSecurity http) throws Exception {
initSecurityConfigService();
// For cache
http.headers().defaultsDisabled()
.cacheControl()
.and().frameOptions();
securityConfigService.configure(http,this);
}
Toutefois, ce code affectera l'ensemble de l'application Web. Comment puis-je l'appliquer à certains URL
ou Content-Type
comme images
.
J'ai déjà essayé avec RegexRequestMatcher
, mais ça ne marche pas pour moi.
// For cache
http.requestMatcher(new RegexRequestMatcher("/page/", "GET"))
.headers().defaultsDisabled()
.cacheControl()
.and().frameOptions();
Je lis cet article: SpringSecurityResponseHeaders, mais il n'y a pas d'échantillon pour ce cas.
Merci.
P.S. En bref, je veux supprimer SpringSecurity defaults
pour certaines URL et ressources.
peut-être que je ne comprends pas bien votre question. Puisque vous voulez ajouter un contrôle de cache pour les requêtes générales, pourquoi Spring Security est-il impliqué? Pouvez-vous essayer d'ajouter un filtre pour cela? – Simon
@Simon Les paramètres par défaut de la sécurité doivent être valables pour les appels généraux, mais je veux cette option uniquement pour les types 'image/*'. C'est pourquoi je veux séparer ces options. –
Je comprends ce point, mais pour moi, c'est très simple avec un filtre, vous pouvez configurer un motif d'URL (dans votre cas image/*) pour filtrer. Vous venez de définir des en-têtes dans la réponse, alors tout devrait être réglé. Si vous préférez Spring Security, il a la chaîne de filtre, vous ajoutez juste un filtre après le dernier et définissez la réponse – Simon