Только что понял: PermissionEvaluator управляется Spring, поэтому
@Inject
private PermissionManager permissionManager;
будет отлично работать.
edit: Для нашего проекта мыМы реализуем наш собственный PermissionResolver, вероятно, расширяя стандартную реализацию:
public class OurPermissionEvaluator extends AclPermissionEvaluator{
public CombinedPermissionEvaluator(AclService aclService) {
super(aclService);
}
и внедряя пользовательский ACLService (следующий этот учебник)
public class OurAclServiceImpl implements AclService {
, где мы получаем ACLинформация из нашей пользовательской структуры базы данных.
Чтобы связать все это, мы будем следовать примеру контактов пружинной защиты:
<b:bean id="permissionEvaluator" class="path.to.OurPermissionEvaluator">
<b:constructor-arg ref="aclService"/>
</b:bean>
, где aclService должен быть объявлен таким образом:
<bean id="aclService" class="path.to.OurAclServiceImpl">
<constructor args here... >
</bean>