Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Tomcat上使用GWT集成Exchange登录_Gwt_Tomcat_Exchange Server_Single Sign On - Fatal编程技术网

在Tomcat上使用GWT集成Exchange登录

在Tomcat上使用GWT集成Exchange登录,gwt,tomcat,exchange-server,single-sign-on,Gwt,Tomcat,Exchange Server,Single Sign On,我有一个GWT应用程序要部署到Windows服务器上的Tomcat,需要满足以下要求: 1-无论用户是否在Windows域中,应用程序都应完全工作 2-如果用户恰好在域中,应用程序应该能够以某种方式识别用户。这应该是通过getThreadLocalRequest().getRemoteUser()实现的,但其他任何方法都可以 3-如果用户恰好位于域中,则应用程序应能够访问该域中的MS Exchange server,而无需用户输入密码 为此,我在网络上到处搜寻,但不幸的是,如果不强制进行身份验证

我有一个GWT应用程序要部署到Windows服务器上的Tomcat,需要满足以下要求:

1-无论用户是否在Windows域中,应用程序都应完全工作

2-如果用户恰好在域中,应用程序应该能够以某种方式识别用户。这应该是通过getThreadLocalRequest().getRemoteUser()实现的,但其他任何方法都可以

3-如果用户恰好位于域中,则应用程序应能够访问该域中的MS Exchange server,而无需用户输入密码

为此,我在网络上到处搜寻,但不幸的是,如果不强制进行身份验证,似乎无法获得身份验证。例如,有许多排除登录表单或其他“公共”资源的例子,但这对我们不起作用,因为GWT应用程序中的所有资源都打包在同一个“页面”中

也许是我有限的理解让我在一些基本方面失败了,但我试着看看JCIFS、Jespa、华夫饼干和SPNEGO,我似乎无法按照我想要的方式工作

任何帮助都将不胜感激

干杯,

J.

使用JNI调用Win32Api函数LogonUser怎么样?
通过在线程级别执行模拟,您将有一个NTLM令牌添加到当前线程,并且您将能够毫无问题地调用exchange,将Javascript放在首页上,并有一个受Kerberos/SPNEGO保护的页面如何。javascript将尝试请求一个受保护的页面,如果用户在域中,您将从该页面获得正确的结果,否则您将获得401访问被拒绝。在前一种情况下,您可以将浏览器重定向到exchange页面,或者使用另一个AJAX调用从exchange server检索内容。在后一种情况下,您可以显示登录表单或通用匿名页面。

我认为这两个链接确实可以帮助您,因为我认为GWT并不流行。。。我我不知道那是什么意思。该应用程序已经基本完成,并且在GWT中。它是否受欢迎完全是无关紧要的。不,那没有什么帮助。LogonUser要求我拥有用户的密码。另外,它与让Tomcat查明用户是否在域中以及用户是谁无关。我知道我必须添加某种过滤器才能让Tomcat对用户进行身份验证,但我尝试的所有过滤器在问题的第一步都失败了……您是否使用IIS作为web服务器,使用Tomcat作为应用服务器?如果是这样,您可以尝试以下步骤:www.iisadmin.co.uk/?p=8&page=1它将使用iis安全设置运行tomcat,这样您就可以跳过域问题了,但我可以。谢谢你的链接。并没有真正告诉我Java应用程序如何识别用户,但是,一步一个脚印,对吗?我确认Kerberos是最好的选择,因为它允许从浏览器到Tomcat以及从Tomcat到Exchange的令牌委托。当然不是那么容易,但是其他方法会很难看或者不安全。不,我不能做重定向之类的。这是一个GWT应用程序。然而,我想我可以有一个虚拟的受保护资源,它调用“side”服务。然后问题就变成了,如何从非域用户那里获得401,而不是让浏览器自己尝试协商,并显示自己的登录对话框。您可以通过在XmlHTTPRequest对象上设置mozbackgroundrequest属性来实现。这里有一些关于如何使用Chrome的讨论,不确定你将如何使用IE或Safari。我没有访问XmlHTTPRequest对象的权限。这是一个GWT应用程序。