Я должен ответить на свой вопрос здесь, так как я обнаружил, что для этой библиотеки нет эквивалентной конфигурации Java, так как в последний раз она поддерживалась в 2012 году. Решение представляет собой сочетание конфигурации Java и XML.Этой конфигурации можно избежать, если вы используете обратный прокси-сервер.Тем не менее, я хотел избежать этого и иметь один сервер приложений, чтобы делать все что угодно.Итак, вот оно:
Файл конфигурации:
@Configuration
public class UrlRewriteConfig extends UrlRewriteFilter {
private UrlRewriter urlRewriter;
@Bean
public FilterRegistrationBean tuckeyRegistrationBean() {
final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new UrlRewriteConfig());
return registrationBean;
}
@Override
public void loadUrlRewriter(FilterConfig filterConfig) throws ServletException {
try {
ClassPathResource classPathResource = new ClassPathResource("urlrewrite.xml");
InputStream inputStream = classPathResource.getInputStream();
Conf conf1 = new Conf(filterConfig.getServletContext(), inputStream, "urlrewrite.xml", "");
urlRewriter = new UrlRewriter(conf1);
} catch (Exception e) {
throw new ServletException(e);
}
}
@Override
public UrlRewriter getUrlRewriter(ServletRequest request, ServletResponse response, FilterChain chain) {
return urlRewriter;
}
@Override
public void destroyUrlRewriter() {
if (urlRewriter != null)
urlRewriter.destroy();
}
}
Структура проекта:
Афайл urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
<rule>
<name>SEO Redirect and Secure Channel</name>
<condition name="host" operator="equal">^example.com</condition>
<from>^(.*)$</from>
<to type="permanent-redirect">https://www.example.com$1</to>
</rule>
</urlrewrite>
Очень важный момент, на который следует обратить внимание , - это то, что мне пришлось удалить небезопасное перенаправление с http на https в конфигурации сервера Undertow, так как оно вызвалоошибка - "СЛИШКОМ МНОГО РЕДИРЕКТОВ".Поэтому я оставил открытыми два порта - 80 и 443 для небезопасных и безопасных соединений, а конфигурация Tuckey выполняет все виды перенаправления, с http на https и с non-www на www.Надеюсь, это поможет.