2012-11-25 66 views
0

註釋我有以下問題:建議對類或方法

我有安全創建註釋:

@Retention(RetentionPolicy.RUNTIME) 
@Target({ElementType.METHOD, ElementType.TYPE}) 
@Inherited 
@Documented 
public @interface Security { 
    Role[] roles(); 
} 

我現在註釋類和方法與此註釋。在某些情況下,該類使用此註釋進行註釋,並且此類中的特定方法也使用具有不同角色的@Security進行註釋。

如何創建@Before建議,可以捕獲用@Security註釋的類中的@Security或方法註解的任一方法,以及在類和方法都有註解的情況下獲取更具體的定義。

我當然也需要註釋的內容(角色)。

可能嗎?

如果我在兩個類之間存在不透明的情況下,它們都可以使用@Security註釋來獲得最具體的定義,

Yosi

+1

你不是重塑春季安全?我是這樣,爲什麼? –

+0

我發現彈簧安全對我來說太複雜了 – yosi

回答

1

這應該工作(本機的AspectJ代碼,但你可以轉化爲@Aspect如果你喜歡的):

pointcut secureMethods() : execution(@Security * *(..)); 

pointcut secureTypes() : execution(* (@Security *).*(..)); 

Object around(Security security) : secureMethods() && @annotation(security) { 
    apply(security); 
    return proceed(security); 
} 

Object around(Security security) : secureTypes() && !secureMethods() && @target(security) { 
    apply(security); 
    return proceed(security); 
} 
+0

非常好,正是我需要的! – yosi