0
votes

Sécurité du ressort: appliquez le filtre à un point final

Actuellement, j'ai deux types de points d'extrémité dans mon service:

  • / portail / ** : j'ai besoin d'ajouter un filtre portalauthorizizfilter
  • Les autres: je dois ajouter un filtre autresAuthorizationFilter

    Il est important que autresFilter ne doit pas être appliqué sur / portail / ** appels.

    J'ai créé un WebsecurityConfigurierAdapter . Mon code actuel est le suivant: xxx

    J'ai débogué ce code lorsqu'un appel est effectué sur / portail / ** , portalauthorizizfilter < / Code> est atteint, mais alors d'autresAuthorizationfilter est atteint également.

    Je ne comprends pas tout à fait comment le résoudre.

    Toutes idées?


2 commentaires

Avant de rechercher une cible de Dupe et que vous supprimez également ces questions, je commente d'abord: vous avez ajouté les deux filtres à la configuration, donc les deux sont appliqués.


Si vous ne voulez pas appliquer AutresAuthorizationFilter Supprimer .Addfilter (Nouveau AutresAuthorizyFilter ()) à partir de votre configuration.


3 Réponses :


0
votes

Vous devez créer une autre classe de configuration qui prolongera également WebSecurityConfigurierAdapter, vous correspondez à votre URL avec antmatchers et ajoutez votre filtre. Quel que soit le match de modèle exécutera cette configuration de sécurité Lisez cette POST


1 commentaires

Ce n'était pas la question de l'OP. Cependant, vous avez raison, configurez AutresAuthorizationfilter n'a aucun sens, s'il ne doit pas être appliqué.



0
votes
doFilter(...) {
  if(match(request, "/portal/**")
    ....
}

0 commentaires

0
votes

Une autre option consiste à utiliser un modèle de délégué. Imaginez si vous avez un filtre qui ressemble à ce xxx pré>

puis au lieu de p> xxx pré>

vous auriez simplement p>

.addFilter(new PickAndChooseFilter(
    new PortalAuthorizationFilter(),
    new OthersAuthorizationFilter()
)


0 commentaires