6

alan veya özellik 'grup' bulunamıyor Web uygulama için tam olarak yapılandırılmış BAHAR YÖNTEMİ güvenlik var. (PRE/POST ek açıklamaları etkinleştirildi). Ancak son zamanlarda onlarla garip bir sorunla karşılaştım. Özet aşağıdaki gibi: yöntemi ön provizyon filtre SpelEvalueException: EL1007E: (pos 43): null

// 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 
} 
  • POJOs

    arasında

    1. Özeti. Tam doldurulan GroupMembership nesne (uygun bir kullanıcı ve grup bileşimler Mevcut) geçtikten sonra

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

    , güvenlik filtresi aşağıdaki atış istisna:

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

    dışında kazma üzerine:

    Nedeni şu şekilde bulunur:

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

    Lütfen aynı adrese işaretçiler verin.

  • +0

    Ayarlayıcı/alıcıyı kontrol edin ve doğru olduklarından emin olun. – xyz

    +1

    Her null' argüman olarak iletildi veya kod hata ayıklama bilgisi olmadan derlendi. – zeroflagL

    cevap

    4

    alıcı/ayarlayıcılar iyi görünüyor ... ayrıca hiçbir durumda null. Bununla birlikte, ilginç bir gözlem; Bu iyi çalışır

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

    :

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

    Ayrıca ben gözlenen, parametre adı ilk (yani Servisi ve ServiceImpl de vardı farklı parametre adları) durumunda mismatching edildi bu bir bana bir hata verir. Tekdüzeliği koruyarak, sorun düzeltilmiş gibi görünüyor.

    0

    Aynı sorunu Spring Boot uygulamasında da aldım. Yukarıdaki yorumda belirtildiği gibi, hata ayıklama sembolleri bilgilerim olmadan derlediğim ortaya çıktı.

    1. (benim favorim): Ben iki şekilde sorunu çözmek olabilir belirtme istiyorum Sadece pom.xml'Bu dahil -> eklentileri

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <compilerArgument>-parameters</compilerArgument> 
         <testCompilerArgument>-parameters</testCompilerArgument> 
        </configuration> 
    </plugin> 
    
    1. Java 1.8 ve Eclipse'i IDE olarak kullanıyorsanız, Proje Özellikleri -> Java Derlemesi -> "Yöntem parametreleriyle ilgili bilgileri depola (yansımayla kullanılabilir)" seçeneğine gidin.

    Sorun hakkında daha fazla bilgi edinmek için gerçekten ilginç this link buldum.

    Umut eder!