@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 {...}