如何在 Liferay ext-plugin 中覆盖 portal-impl jar 类
How to override portal-impl jar classes in Liferay ext-plugin
我想覆盖两个传送门-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
中引用您的过滤器 class(我不知道后者是否适用于覆盖)。
同样适用于NtlmPostFilter
。
我想覆盖两个传送门-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
中引用您的过滤器 class(我不知道后者是否适用于覆盖)。
同样适用于NtlmPostFilter
。