ResourceProvider与Sling 8 .. 403响应

时间:2017-01-27 21:16:26

标签: sling

我需要在Sling中提供Restful API,但对于某些不在repo中的数据...此API将代理到其他外部数据存储。

Sling开发人员建议创建一个ResourceProvider。我已经创建了这个ResourceProvider实现,但是当我提出请求时我得到了403:

@Component
@Service(value=ResourceProvider.class)
@Properties({
        @Property(name = ResourceProvider.ROOTS, value = "things"),
        @Property(name = ResourceProvider.OWNS_ROOTS, value = "true")
})
public class ImageResourceProvider implements ResourceProvider {

@Override
public Resource getResource(ResourceResolver resourceResolver, String path) {
    Resource returnResource = new SyntheticResource(resourceResolver, path, "edlio/microservice/image");
    returnResource.getValueMap().put("myProp" , "myValue");
    return returnResource;
}

@Override
public Resource getResource(ResourceResolver resourceResolver, HttpServletRequest httpServletRequest, String path) {
    return getResource(resourceResolver , path);
}

@Override
public Iterator<Resource> listChildren(Resource resource) {
    return null;
}

当我去/东西时,我得到403.如何控制不存在的资源的身份验证/授权规则?

另外,我无法使用ResourceProvider示例代码here,因为它使用的spi包不在Sling 8中... Sling 8使用旧版本的sling api封装

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题并将答案发布在这里: Adobe CQ5 custom servlet path

从lance.dolan搜索答案