GWT、jcifs和多个登录提示
我们有一个gwt应用程序,它使用jcifs从我们的NT域中提取用户名。以下是我们的web.xml的剪辑:GWT、jcifs和多个登录提示,gwt,jcifs,Gwt,Jcifs,我们有一个gwt应用程序,它使用jcifs从我们的NT域中提取用户名。以下是我们的web.xml的剪辑: <filter> <filter-name>NtlmHttpFilter</filter-name> <filter-class>com.xxx.gwt.server.MyNTLMFilter</filter-class> <init-param> <param-name&
<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>
因此,我想对虚拟servlet进行某种调用,以执行域提示,但我不确定如何从gwt远程服务执行此操作。或者有没有更好的方法呢?我想出来了。我构建了虚拟servlet,然后在客户端使用RequestBuilder对该servlet进行访问。然后,该servlet获取userprincipal。以下是客户端:
RequestBuilder getNameRB = new RequestBuilder(RequestBuilder.GET, "naming");
getNameRB.setCallback( new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
loadUserName(response.getText());
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert("Unable to authenticate user\n"+exception.getMessage());
Window.Location.replace("http://ccc");
}
});
try {
getNameRB.send();
} catch (RequestException e) {
Window.alert(e.getMessage());
}
RequestBuilder getNameRB = new RequestBuilder(RequestBuilder.GET, "naming");
getNameRB.setCallback( new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
loadUserName(response.getText());
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert("Unable to authenticate user\n"+exception.getMessage());
Window.Location.replace("http://ccc");
}
});
try {
getNameRB.send();
} catch (RequestException e) {
Window.alert(e.getMessage());
}