Nous avons une application gwt qui utilise jcifs pour extraire le nom d'utilisateur de notre domaine NT. Voici un extrait de notre web.xml:GWT, jcifs et invites multiples pour la connexion
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>com.xxx.gwt.server.MyNTLMFilter</filter-class>
<init-param>
<param-name>jcifs.netbios.wins</param-name>
<param-value>192.168.109.20</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>its</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/trunkui/greet</url-pattern>
</filter-mapping>
<!-- Servlets -->
<servlet>
<servlet-name>greetServlet</servlet-name>
<servlet-class>com.xxx.gwt.server.GreetingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/trunkui/greet</url-pattern>
</servlet-mapping>
donc actuellement lorsque l'utilisateur va à notre site, ils obtiennent environ 2 ou 3 invites répétées en leur demandant de se connecter au domaine même si elles sont déjà (vous devez être sur le domaine pour accéder à notre application). Je voudrais au moins réduire l'incitation à ne se produire qu'une seule fois. Donc, j'allais faire un servlet factice de "/ trunkui/dummy" et laisser cela s'appeler seulement quand je demande le nom. La servlet à distance a cette méthode que nous appelons de manière asynchrone:
public String getUser() {
String userAgent = "";
try {
userAgent = getThreadLocalRequest().getUserPrincipal().getName();
int slashIdx = -1;
if ((slashIdx = userAgent.indexOf('\\')) >= 0)
userAgent = userAgent.substring(slashIdx + 1);
} catch (Exception npe) {
npe.printStackTrace();
}
return userAgent;
}
Alors je voulais faire une sorte d'appel à la servlet factice pour faire le domaine demandant, mais je ne suis pas sûr sur la façon de le faire à partir de la télécommande GWT un service. Ou s'il y a une meilleure façon de le faire?