@Apache CXF 中允许的角色

问题描述 投票:0回答:1

我正在尝试将 JAX-RS 应用程序从 Jersey 迁移到 Apache CXF。我没有使用 Spring,所以我尝试通过扩展 javax.ws.rs.core.Application 来配置它。

我也实现了

    public class RolesAllowedCXFFeature implements Feature {
        @Override
        public boolean configure(FeatureContext featureContext) {
            SecureAnnotationsInterceptor interceptor = new SecureAnnotationsInterceptor();
            featureContext.register(interceptor);
            SimpleAuthorizingFilter f = new SimpleAuthorizingFilter();
            f.setInterceptor(interceptor);
            featureContext.register(f);
            return true;
        }
    
        public static Object createAuthFilter() {
            SimpleAuthorizingFilter f = new SimpleAuthorizingFilter();
            f.setInterceptor(new SecureAnnotationsInterceptor());
            return f;
        }
    }

并在前述

getSingletons()
Application
方法中返回它。

问题是用@RolesAllowed注释的方法似乎不起作用。

在泽西岛足以从

new RolesAllowedDynamicFeature()
返回
Application#getSingletons()
并且方法已得到保护。

jax-rs cxf roles jakarta-ee-security-api
1个回答
0
投票

从代码来看,我认为 SecureAnnotationsInterceptor 不会自动获取所有用 @Path 注释的类,因此您必须使用 SecureAnnotationsInterceptor#setSecuredObject 自己向拦截器注册它们。

© www.soinside.com 2019 - 2024. All rights reserved.