SpelEvaluationException: EL1007E:(pos 43): Champ ou une propriété "groupe" ne peut pas être trouvé sur null

J'ai de PRINTEMPS MÉTHODE de sécurité entièrement configuré pour mon application web. (avec PRÉ/POST annotations activé).

Cependant, récemment, j'ai rencontré un étrange problème avec eux. Résumé comme suit:

  1. Résumé de POJO

    //User Class
    public class User {
        int id;
        String name;
        //getters and setters
    }
    
    //Group Class
    public class Group {
        int id;
        String name;
        //getters and setters
    }
    
    //GroupMembership class
    public class GroupMembership {
        private int id;
        private User user;
        private Group group;
        //getters and setters
    }
  2. PreAuthorise filtre sur la méthode .

    @PreAuthorize("canIEditGroupProfile(#membership.group.id)")
    public int updateGroupMembership(GroupMembership membership)
        throws GroupsServiceException;

Au passage d'une entièrement rempli GroupMembership objet (utilisateur et groupe de compositions présent), le filtre de sécurité throws exception suivante:

errorMessage: "Failed to evaluate expression
    canIEditGroupProfile(#membership.group.id)'"

À creuser dans l'exception:

La cause se trouve être:

org.springframework.expression.spel.SpelEvaluationException:
    EL1007E:(pos 33): Field or property 'group' cannot be found on null

Veuillez fournir des indications pour traiter le même.

  • Vérifier setter/getter et assurez-vous qu'ils sont corrects
  • Soit null est passé en argument ou le code est compilé sans les informations de débogage.
InformationsquelleAutor hemantvsn | 2014-04-09