Я хочу защитить свой EJb без гражданства с помощью DeltaSpike-API.
@Stateless
@Remote(UserServiceRemote.class)
public class UserService implements UserServiceRemote
На уровне метода у меня есть пользовательская аннотация «Поддержка».
@Support
public void doSomething() {}
Поэтому я написал пользовательскую аннотацию «@Support»:
@Retention(value = RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD })
@Documented
@SecurityBindingType
public @interface Support {
Мой пользовательский авторизатор выглядит так:
@Secures
@Support
public boolean doAdminCheck(Identity identity, IdentityManager identityManager, RelationshipManager relationshipManager)
throws Exception {
return hasRole(relationshipManager, identity.getAccount(), getRole(identityManager, "Support"));
}
В мой файл "beans.xml" я включил:
<interceptors>
<class>org.apache.deltaspike.security.impl.extension.SecurityInterceptor</class>
</interceptors>
Но после того, как я войду в свое приложение и вызову метод «doSomething» для каждого удаленного вызова, аннотация «Поддержка» игнорируется, независимо от того, есть ли у меня роль или нет.
Что я делаю неправильно? Спасибо за все предложения!!!