1 package org.neo.swarm.core.aop.silc.comp;
2
3 import org.neo.swarm.core.aop.Aspect;
4 import org.neo.swarm.core.aop.AspectComponent;
5 import org.neo.swarm.core.aop.silc.comp.Perspective;
6 import org.neo.swarm.core.aop.silc.comp.RegexPointCut;
7
8 /***
9 * @author damiang
10 */
11 public class SecurityAspect implements Aspect {
12 private MethodInterceptor methodInterceptor;
13 private Pointcut pointcut = new RegexPointCut("(.*).secure(.*)");
14
15 public SecurityAspect(MethodInterceptor methodInterceptor) {
16 this.methodInterceptor = methodInterceptor;
17 }
18
19 public void advise(AspectComponent componentInstance) {
20 pointcut.advise(Perspective.DEFAULT, componentInstance, methodInterceptor);
21 }
22
23 public MethodInterceptor getInterceptor() {
24 return methodInterceptor;
25 }
26
27 public void replaceInterceptor(MethodInterceptor interceptor) {
28 this.methodInterceptor = interceptor;
29 }
30 }