2011-03-23 27 views
8

@PreAuthorize Spring Spring'in Meta Annotatations ürününü @Component veya @Qualifier benzeri bir meta oluşturmak mümkün müdür?Spring Security Meta Açıklaması

Yapmak istediğim @PreAuthorize("hasRole('ADMIN')")'u @IsAdmin gibi bir kısayolla değiştirmektir. Ama belgelerinde herhangi bir ipucu bulamadım.

cevap

5

Bu en azından Bahar Güvenlik 3.0.2.RELEASE çalışır: Ben bunu birkaç kez test ettik

@Target(ElementType.METHOD) 
@Retention(RetentionPolicy.RUNTIME) 
@PreAuthorize("hasRole('ADMIN')") 
public @interface IsAdmin 
{ 
} 
+0

, ancak çalışmıyor. Sorun, dikiş dikmek, yeni bir açıklama 'IsAdmin' bir Aspect pointcut tetiklemez. – Ralph

+0

Ne yazık ki, artık bunu test ettiğim projeye (eski bir işverenindeydim) sahip değilim ve artık web-yazılımı/Spring Security ile çalışmadığım için özellikleri hatırlamıyorum. Bir yapılandırma sorunu olabilir mi? Bazı sürüm farkı? Bunu arayüze yerleştirmeye çalıştınız (en azından bazı Spring Security ek açıklamalarıyla birlikte çalışmanın tek yolunun, uygulama sınıfında değil, arayüzü yerleştirmesi olduğunu hatırlıyorum). – esaj

+0

Dokuma mekanizması olarak gerçek AspectJ kullanıyorum (çünkü Arabirim yok). AspectJ ve Spring AOP arasında bir fark olabilir. Ancak genel olarak, Annotation Meta Definition'ı temel alan bir Pointcut'a sahip olmanın mümkün olmadığına inanıyorum çünkü Annotation Meta Definition'ı destekleyen bir nokta kesim tanımını bilmiyorum. – Ralph

İlgili konular