我想覆盖两个 portal-impl.jar 类 NtlmFiler.java 和 NtlmPostFilter.java,我创建了一个 ext-plugin 项目并放置了我自定义编写的类在 ext-impl/src 中,但我无法配置我的 spring.xml 文件以使用我新编写的类而不是 portal-impl 类,也许我这样做是完全错误的。
我的 ext-spring.xml 代码是:
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="com.liferay.portal.servlet.filters.sso.ntlm.NtlmFilter"
class="com.liferay.portal.servlet.filters.sso.ntlm.NtlmFilter">
<property name="ntlmFilter">
<bean class="com.sso.ntlm.filter.CustomNtlmFilter">
<property name="CustomNtlmFilter" ref="customNtlmFilter" />
</bean>
</property>
</bean>
<bean id="com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter"
class="com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter">
<property name="ntlmPostFilter">
<bean class="com.sso.ntlm.filter.CustomNtlmPostFilter">
<property name="CustomNtlmPostFilter" ref="customNtlmPostFilter" />
</bean>
</property>
</bean>
最佳答案
因为 NtlmFilter
不是 Spring bean,所以在 ext-spring.xml
中定义它是没有用的。
参见portal.properties
:
# ... and the filter
# com.liferay.portal.servlet.filters.sso.ntlm.NtlmFilter must be referenced
# in web.xml.
所以你只需要在 liferay-web.xml
或 web-ext.xml
中引用你的过滤器类(我不知道后者是否适用于覆盖)。
这同样适用于 NtlmPostFilter
。
关于java - 如何覆盖 Liferay ext-plugin 中的 portal-impl jar 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915136/