java - 类上的多个 Deltasike securityBindingType 注释

标签 java security jsf-2.2 deltaspike stereotype

我正在使用带有 @Secured 的 Deltaspike (1.0.3) 安全模块(允许集成第 3 方安全框架的功能)。当我在类级别仅使用一个注释(SecurityBinding)时,效果很好。当我在同一个类上添加第二个注释时,第二个 securityBinding 的 CustomAccessDecisionVoter 永远不会被调用。据我了解 api - 可以在类级别上有多个注释,但在我的情况下不起作用。我做错了什么?

这就是我声明 SecurityBinding 的方式:

@Retention(value = RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
@Documented
@Stereotype
@Secured(AnnotationOneAccessDecisionVoter.class)
public @interface AnnotationOne {
}

这是 AnnotationOne 的自定义 AccessDecisionVoter:

@ApplicationScoped
public class AnnotationOneAccessDecisionVoter implements AccessDecisionVoter {


public Set<SecurityViolation> checkPermission(AccessDecisionVoterContext voterContext) {

    Set<SecurityViolation> violations = new HashSet<SecurityViolation>(1);
    if(some validation...) {
        violations.add(new SecurityViolation() {
            private static final long serialVersionUID = ...;
            @Override
            public String getReason() {
                return "...";
            }
        });

终于找到了 bean :

@Named("...")
@ViewScoped
//Permission
@AnnotationOne
@AnnotationTwo
public class Bean implements Serializable {...}

最佳答案

非常感谢 Gerhard Petracek 和 Deltaspike 团队在 deltaspike 邮件列表中为用户提供的快速答复。

目前不支持特定功能,但已为版本 1.0.4 添加了修复(当前在快照中)

https://issues.apache.org/jira/browse/DELTASPIKE-735

关于java - 类上的多个 Deltasike securityBindingType 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068048/

相关文章:

java - 定时 JDialog 在指定时间后未关闭

security - 无线网络应该开放吗?

jsf - IllegalArgumentException : com. ibm.ws.jsf.config.annotation.WASMyFacesAnnotationProvider 不是 org.apache.myfaces.spi.AnnotationProvider

jsf - Mojarra 2.2 版本分歧

Java forEach lambda 抛出并发修改异常

java - 是否需要在同步块(synchronized block)内使用线程 wait() 和 notify()?

java - 接口(interface)的奇怪泛型行为

security - 保护生成的 PDF

security - Tomcat 7.11 JDBCRealm 和 UserDatabaseRealm 不能一起工作

ajax - h :commandLink action and f:ajax listener的调用顺序