gpt4 book ai didi

aem - 在 CQ5.6 中进行任何处理之前过滤请求 URL

转载 作者:行者123 更新时间:2023-12-02 08:38:57 24 4
gpt4 key购买 nike

在我的 CQ5.6 应用程序中,。一旦用户点击一个 URL,我需要使用特定参数对其进行编辑。所有这些都必须在 Sling 开始处理 URL 之前发生。

我基本上需要像这样转换 URL:www.mysite.fr --> 转换为 --> /content/mysite/fr/

等等....

我知道我需要为此创建一个 OSGi 包,但是我应该使用哪个 API 来确保 URL 首先由我的类过滤,然后由吊索。 ?

最佳答案

如果您想为多个网站提供基于代码的解决方案(并且您不想管理/etc/map),您可以设置自己的过滤器:

package your.package;

import org.apache.felix.scr.annotations.*;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.sling.commons.osgi.PropertiesUtil;
import org.osgi.service.component.ComponentContext;

@Component(immediate=true, enabled=true)
@Service(value=Filter.class)
@Properties({
@Property(name="sling.filter.scope", value="REQUEST", propertyPrivate=true),
@Property(name="service.ranking", intValue=-10000, propertyPrivate=true)
})
public class YourFilter implements Filter {
private static final Logger log = LoggerFactory.getLogger(ProductSEOFilter.class);

@Activate
protected void activate(ComponentContext ctx) throws Exception {
}

@Deactivate
protected void deactivate() throws Exception {
}

public void init(FilterConfig filterConfig) throws ServletException {
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws java.io.IOException, ServletException {
String lang = "en";

// 1. get domain and path
// 2. check if your conditions are met
// 3. extract language from domain
// 4. internal redirect

RequestDispatcher dispatch = request.getRequestDispatcher("/content/mysite/" + lang);
dispatch.forward(request, response);
}

public void destroy() {
}
}

您无需费心检查和传递查询字符串——这些都在调度程序中进行。它只需要一个新的 url 来转发。

关于aem - 在 CQ5.6 中进行任何处理之前过滤请求 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18440287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com