femo
I'm new here

fs-search und personalisation

Hallo,

wir haben das BasicSearch (ehem. FS-Search) und das Personalisation Modul im Einsatz.

Einige Seiten sind über das Personalisation geschützt. Bei der Indizierung läuft die SpiderEngine auf einen Fehler, wenn sie auf die geschützten Seiten zugreifen will, obwohl der Benutzer, der in den Credentials angegeben ist Berechtigungen für diese Seiten hat. Im Log des fs-search Moduls werden mehrere Exceptions ausgegeben. U.a.

[...]

ERROR 2012-02-07 11:46:53,418 (de.espirit.firstspirit.opt.personalisation.modules.login.NTLMLoginModule) [SessionId: 87DE96383C5030AA834240DEC7C262DE] SmbException occured while performing NTLM-Authentication for user [DOMAIN]\[BENUTZER]

jcifs.smb.SmbException:

java.lang.ArrayIndexOutOfBoundsException

          at java.lang.System.arraycopy(Native Method)

          at jcifs.smb.SigningDigest.<init>(SigningDigest.java:42)

[...]

INFO  2012-02-07 11:46:53,419 (de.espirit.firstspirit.opt.personalisation.modules.login.NTLMLoginModule) [SessionId: 87DE96383C5030AA834240DEC7C262DE] NTLM-Autologin was not successfull for user '[BENUTZER]'

ERROR 2012-02-07 11:46:53,419 (de.espirit.firstspirit.opt.personalisation.LoginManager) [SessionId: 87DE96383C5030AA834240DEC7C262DE] NTLM-Autologin was not successfull!

java.lang.Exception: NTLM-Autologin was not successfull!

          at de.espirit.firstspirit.opt.personalisation.modules.login.NTLMLoginModule.getLoginData(NTLMLoginModule.java:430)

          at de.espirit.firstspirit.opt.personalisation.LoginManager.performLogin(LoginManager.java:168)

[...]

INFO  2012-02-07 11:46:53,420 (de.espirit.firstspirit.opt.personalisation.LoginManager) [SessionId: 87DE96383C5030AA834240DEC7C262DE] Can't get login-data: Error during login (NTLM-Autologin was not successfull!)!

ERROR 2012-02-07 11:46:53,420 (de.espirit.firstspirit.opt.personalisation.LoginManager) [SessionId: 87DE96383C5030AA834240DEC7C262DE] No login-data available!

java.lang.Exception: No login-data available!

          at de.espirit.firstspirit.opt.personalisation.modules.login.RequestParameterLoginModule.getLoginData(RequestParameterLoginModule.java:61)

          at de.espirit.firstspirit.opt.personalisation.LoginManager.performLogin(LoginManager.java:168)

          at de.espirit.firstspirit.opt.personalisation.LoginManager.performLogin(LoginManager.java:109)

[...]

INFO  2012-02-07 11:46:53,421 (de.espirit.firstspirit.opt.personalisation.LoginManager) [SessionId: 87DE96383C5030AA834240DEC7C262DE] Can't get login-data: Error during login (No login-data available!)!

ERROR 2012-02-07 11:46:53,422 (de.espirit.firstspirit.opt.personalisation.modules.login.NTLMLoginModule) [SessionId: 87DE96383C5030AA834240DEC7C262DE] SmbException occured while performing NTLM-Authentication for user [DOMAIN]\[BENUTZER]

jcifs.smb.SmbException:

java.lang.ArrayIndexOutOfBoundsException

          at java.lang.System.arraycopy(Native Method)

          at jcifs.smb.SigningDigest.<init>(SigningDigest.java:42)

[...]

Habe ich die SpiderEngine falsch konfiguriert?

Die fs-search.xml sieht wie folgt aus:

<service class="de.espirit.firstspirit.opt.search.service.adapter.ServerService">

      <server class="de.espirit.firstspirit.opt.search.server.SimpleServer">

         <engine name="fssEngine" class="de.espirit.firstspirit.opt.search.engine.proxy.SecurityEngineProxy">

              <engine class="de.espirit.firstspirit.opt.search.engine.spider.SpiderEngine">

                                                       <attribute name="urls" type="list">

                                                                      <!-- StartURL der Suche -->

                                                                      <attribute>http://meinserver/index.jsp</attribute>

                                                       </attribute>

                                                       <!-- Index-Speicherort -->

                                                       <attribute name="index">/opt/fssearch/index</attribute>

                                                       <!-- Java Threads -->

                                                       <attribute name="maxThreads">2</attribute>

                                                       <attribute name="threadPriority">1</attribute>

                                                       <!-- Zur Indizierung freigegebene Ordner (Verbotene mit forbidden) -->

                 <attribute name="allowed" type="list">

         <attribute class="de.espirit.firstspirit.opt.search.engine.spider.link.RegexWebLinkFilter">http://meinserver/</attribute>

                                        </attribute>

                                        <!-- Indizierungsparameter -->

                                        <attribute name="maxDocuments">10000</attribute>

                                        <attribute name="maxTime">120m</attribute>

                                        <attribute name="credentials" type="list">

                                        <attribute type="map">

                                                  <attribute name="authType">ntlm</attribute>

                                                  <attribute name="authUsername">[Benutzer]</attribute>

                                                  <attribute name="authPassword">[Kennwort]</attribute>

                                                  <attribute name="authHost">[IP-Adresse des Domain-Controllers]</attribute>

                                                  <attribute name="authDomain">[Domain]</attribute>

                                        </attribute>

                    </attribute>

                    </engine>

<attribute name="acceptUndefinedResults">true</attribute>

                    <attribute name="resultKey">groups</attribute>

                    <attribute name="propertyKey">FIRSTpersonalisation.usergroups</attribute>

                    <attribute name="locales" type="map">

                              <filter name="de" class="de.espirit.firstspirit.opt.search.filter.RegexFilter">

                                        <attribute name="property">url</attribute>

                                        <attribute name="pattern">(/de/)</attribute>

                              </filter>

                              <filter name="en" class="de.espirit.firstspirit.opt.search.filter.RegexFilter">

                                        <attribute name="property">url</attribute>

                                        <attribute name="pattern">(/en/)</attribute>

                              </filter>

                    </attribute>

 

                    </engine>

</server>

            <attribute name="localName">fssServer</attribute>

      <attribute name="createRMI">false</attribute>

      <attribute name="bindTo">local</attribute>

    </service>

Vielen Dank und Gruß,

Fernando Morales

0 Kudos
7 Replies
stephan
I'm new here

Hallo Herr Morales,

haben Sie schon die Lösungen/Konfiguration aus diesem Posting probiert?

Viele Grüße

Jörg Stephan

0 Kudos

Hallo Herr Stephan,

die Lösungen habe ich ausprobiert. Keine hat den gewünschten Erfolg gebracht.

Es werden alle Seiten, die keine Anmeldung benötigen vom crawler erfasst.

Auch die Seiten die eine Gruppenzuweisung im Sinne von personalisation (als meta-tag) haben, werden richtig gecrawlt. Sobald diese jedoch die authentifizierung verlangen (über <fsp:authorize/>) läuft er crawler auf oben genannte Fehlermeldung.

Werden die Credentials in der fs-search.xml nicht angegeben, dann wird im log folgende Warnung ausgegeben

[...]

INFO  2012-02-08 10:46:22,424 (org.apache.commons.httpclient.auth.AuthChallengeProcessor) ntlm authentication scheme selected

INFO  2012-02-08 10:46:22,424 (org.apache.commons.httpclient.HttpMethodDirector) No credentials available for NTLM <any realm>@meinserver

WARN  2012-02-08 10:46:22,424 (de.espirit.firstspirit.opt.search.engine.spider.indexer.WebIndexer) server error for url "http://meinserver/geschuetzte_seite.jsp": 401

[...]

Ich bin allerdings nicht sicher, ob ich in der Konfiguration alles richtig gemacht  habe.

Danke und viele Grüße,

Fernando Morales

0 Kudos

Hallo Herr Morales,

könnten Sie den Loglevel bitte einmal auf Debug stellen und dann nochmal das Log des fs-search Moduls anhängen?

Viele Grüße

Jörg Stephan

0 Kudos

Hallo,

anbei das gewünschte Log.

Viele Grüße,

Fernando Morales

0 Kudos

Hallo Herr Morales,

vielen Dank für das Logfile. Bei der Anmeldung über NTLM kommt es zu einer Exception die die Anmeldung verhindert. Setzen Sie NTLMV1 oder NTLMV2 ein?

Viele Grüße

Jörg Stephan

0 Kudos

Hallo,

wir setzen NTLMv1 ein.

Freundlichen Gruß,

Fernando Morales

0 Kudos
klein
Crownpeak employee

Die Lösung zum Problem müsste in der Dokumentation zu dem Search-Modul Kap. "5.4.2 Engine-Implementierung "Spider Engine"" stehen:

-------------------------------------------

Ab FirstSpirit Version 4.2R4 werden neue Sicherheitsmechanismen für den Zugriff auf generierte Projektinhalte eingesetzt (siehe FirstSpirit Release Notes 4.2R4). Die neuen Sicherheitseinstellungen müssen auch bei der Indizierung der Projektinhalte

durch die Spider Engine berücksichtigt werden. Dazu müssen neben der Start-URL, gültige Authentifizierungsinformationen (Login-Name und Passwort) für die zu indizierende Seite übermittelt werden. Andernfalls kann die Spider Engine die

gewünschten Inhalte nicht indizieren.

Beispiel:

Die Loginparameter werden an die URL der zu indizierende Seite gehängt

"?login=plain&login.user=techUser&login.password=techPwd".

Alle referenzierten Projektinhalte werden anschließend ausgehend von der Startseite indiziert.

Beispiel:

<attribute name="urls" type="list">

<attribute>

http://localhost:80/site1/index.html?login=plain&login.user=techUser&login.password=techPwd

</attribute>

<attribute>

http://localhost:80/site2/index.html?login=plain&login.user=techUser&login.password=techPwd

</attribute>

</attribute>

-------------------------------------------

0 Kudos