如何忽略从 LDAP 错误中删除的 Liferay 用户?
How to ignore Liferay user removed from LDAP errors?
我有一个连接到 LDAP 的 Liferay 6.1 实例。新用户可以很好地导入,但是当我从 LDAP 目录中删除用户时,Liferay 在尝试从 LDAP 同步用户时开始抛出异常。
忽略这些似乎是安全的,但它们会产生几兆字节的日志,这使得日志解析非常烦人。我也认为这可能会影响性能。如果已删除的用户登录,他们什么也看不到。
16:13:54,422 ERROR [liferay/scheduler_dispatch-790][PortalLDAPImporterImpl:995] LDAP user not found with fullUserDN cn=foobar,ou=people,o=foo,dc=bar,dc=baz
javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'cn=foobar,ou=people,o=foo,dc=bar,dc=baz'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
... etc
我怎样才能让 Liferay 相信这真的没问题?或者还有什么我应该做的吗?
在 Liferay 支持 LDAP 中丢失的用户之前,您可以关闭此特定消息的日志记录。只需创建包含以下内容的文件 ROOT.war/WEB-INF/classes/META-INF/portal-log4j-ext.xml:
<?xml version="1.0">
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Copy all appenders from
ROOT.war/WEB-INF/lib/portal-impl.jar/META-INF/portal-log4j.xml
and add the following filter: -->
<appender ...>
...
<filter class="org.apache.log4j.filter.StringMatchFilter">
<param name="StringToMatch" value="LDAP user not found with fullUserDN" />
<param name="AcceptOnMatch" value="false" />
</filter>
</appender>
<!-- Keep the root definition from portal-log4j.xml
to trigger the parsing of the appenders: -->
<root>
<priority value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
您可以在 Liferay Wiki 找到更多关于登录的信息。
我有一个连接到 LDAP 的 Liferay 6.1 实例。新用户可以很好地导入,但是当我从 LDAP 目录中删除用户时,Liferay 在尝试从 LDAP 同步用户时开始抛出异常。
忽略这些似乎是安全的,但它们会产生几兆字节的日志,这使得日志解析非常烦人。我也认为这可能会影响性能。如果已删除的用户登录,他们什么也看不到。
16:13:54,422 ERROR [liferay/scheduler_dispatch-790][PortalLDAPImporterImpl:995] LDAP user not found with fullUserDN cn=foobar,ou=people,o=foo,dc=bar,dc=baz
javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'cn=foobar,ou=people,o=foo,dc=bar,dc=baz'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3057)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2978)
... etc
我怎样才能让 Liferay 相信这真的没问题?或者还有什么我应该做的吗?
在 Liferay 支持 LDAP 中丢失的用户之前,您可以关闭此特定消息的日志记录。只需创建包含以下内容的文件 ROOT.war/WEB-INF/classes/META-INF/portal-log4j-ext.xml:
<?xml version="1.0">
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Copy all appenders from
ROOT.war/WEB-INF/lib/portal-impl.jar/META-INF/portal-log4j.xml
and add the following filter: -->
<appender ...>
...
<filter class="org.apache.log4j.filter.StringMatchFilter">
<param name="StringToMatch" value="LDAP user not found with fullUserDN" />
<param name="AcceptOnMatch" value="false" />
</filter>
</appender>
<!-- Keep the root definition from portal-log4j.xml
to trigger the parsing of the appenders: -->
<root>
<priority value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
您可以在 Liferay Wiki 找到更多关于登录的信息。