2014-09-26 4 views
0

@Secured (타사 보안 프레임 워크를 통합 할 수있는 기능)와 함께 Deltaspike (1.0.3) 보안 모듈을 사용하고 있습니다. 클래스 수준에서 하나의 주석 (SecurityBinding) 만 사용하면 잘 작동합니다. 동일한 클래스에 두 번째 주석을 추가하면 두 번째 securityBinding의 CustomAccessDecisionVoter가 호출되지 않습니다. API를 강조하면 클래스 수준에서 여러 주석을 사용할 수 있지만 내 경우에는 작동하지 않습니다. 내가 뭘 잘못하고있어?클래스의 여러 Deltasike securityBindingType 주석

@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 "..."; 
      } 
     }); 

ANF finnally 빈 :

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

답변

1

많은 감사에 대한

내가 SecurityBinding를 선언하는 방법이다 Deltaspike 메일 링리스트에 대한 빠른 대답을위한 Gerhard Petracek 및 Deltaspike 팀 사용자.

이 순간에 특정 기능이 지원되지 않습니다,하지만 수정 (현재 스냅 샷) 버전 1.0.4

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

추가되었다