2017-01-26 35 views
5

Sonar tarama raporu tarafından gösterilen yetersiz şube kapsamı sorununu çözmek için bir sınıfın özel yapıcısını çağırmak için yansıma kullandım.Fortify high: Özel bir yapıcıyı çağırmak için kullanılan yansıma özellik belirtecine erişme

// reflection to access a private constructor of a class 
     Constructor<CMISBridgeMaps> c = CMISBridgeMaps.class.getDeclaredConstructor(new Class[0]); 
     c.setAccessible(true); 
     cmisBridgeMaps = c.newInstance(new Object[0]); 

Yukarıdaki kod benim sonar tarama kritik sorunu çözüldü: Bu, üzerinde çalıştığım benim kod snippet'idir. Ama ne yazık ki şimdi aşağıdaki satırda Erişim belirteci manipülasyon sorunu gösteriyor güçlendirecek:

c.setAccessible(true); 

nasıl çözmek hem güçlendirmek ve sorunları sonarcube edebilir? Herhangi bir yardım büyük takdir edilecektir.

cevap

-2

Yay kullanırsanız, bu alanı erişilebilir hale getirmek için ReflectionUtils.makeAccessible(field) kullanabilirsiniz. Fortify bu ince ayardan şikayet etmez.

Bu konuda daha fazla bilgiyi this article numaralı telefondan bulabilirsiniz.