在Acegi安全框架中,提供了Acl的实现 ,而Acl又包含两个,分别对用afterInvoction() 和 beforeInvocation()..
其中beforeInvocation()方法是在方法体执行之前调用(method.processed()).对应配置文件中的ACL_READ之类的权限。可以应用于参数为指定对象时的情景,主要是用来在方法执行之前判断该用户对这个被访问对象有没有对应的权限(从acl_object_indentity 和acl_permission中读取)。
还有一个afterInvation()方法是在方法体执行之后调用,对应配置文件中的AfterInvactionMananger之类的,他的configattribute 在相应处理文件中已经指定(默认实现了的又俩个After_ACL_Read,After_Acl_Collec...),当然你也可以自己在外面设定。这个可以应用于返回对象为指定对象类型时的情景。其中After_ACL_Read,是对于返回是单个对象时比如 getObject() , 而After_Acl_Collec。。。对返回对象是list时使用。