如何将PAX CDI与声明性服务

时间:2017-06-08 20:02:42

标签: osgi cdi karaf deltaspike

我们正在使用CXF + DOSGI休息服务

接口:

@Path("/") 
public interface DefaultApi{ 
 @POST 
    @Path("/public/login") 
    @Consumes({ "application/json" }) 
    @Produces({ "application/json" }) 
    public Response login(@HeaderParam("User-Agent") String userAgent,@QueryParam("username") String username,@QueryParam("password") String password, 
                     @Context UriInfo uriInfo, 
                     @Context ResourceContext recourceContext); 

实现:

@Component(immediate = true, configurationPolicy = ConfigurationPolicy.REQUIRE, configurationPid = "frontend.rest") 
public class DefaultApiImpl implements DefaultApi { 

是否可以将Apache Deltaspike与CXF + DOSGI一起用于方法级别授权 https://deltaspike.apache.org/documentation/security.html 如果可能怎么做?

是否还有其他方法可以使用CXF + DOSGI进行方法级别授权

1 个答案:

答案 0 :(得分:0)

您不能混合使用deltaspike和声明性服务。 Deltaspike安全性是cdi扩展,因此您需要使用pax cdi来公开您的OSGi服务。

另一件事是你需要以某种方式进行身份验证。我建议使用CXF JAASAuthenticationFeature。它可以对karaf中配置的jaas提供程序进行基本身份验证。结果是一个jaas登录,你可以在deltaspike安全性中使用它来为你的授权奠定基础。