问题标签 [waffle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
212 浏览

java - 使用更新版本的 jna 库在 Glassfish 上运行 Web 应用程序

我有一个应该在glassfish.

该应用程序使用jna版本4.1.0,并且jna-4.1.0.jar它与应用程序一起打包在其lib文件夹中。

但是,据我所知,glassfish它本身使用3.1了该jna库的版本,并且它被打包在 ibpam4j-repackaged.jar以下路径中:

('C:/Program Files/glassfish-4.1.1/glassfish/modules').

结果 - 应用程序没有运行,它抛出

java.lang.NoSuchMethodError: com.sun.jna.Pointer.getWideString(J)Ljava/lang/String;

导致使用了错误版本的库。

任何想法如何克服这个问题?

谢谢。

(顺便说一句,它本身不是我的应用程序 - 我只是想在 glassfish 上运行一个华夫饼示例)

0 投票
0 回答
158 浏览

java - GSS_S_CONTINUE_NEEDED 与 apache http 客户端

我正在尝试设置一个 http 客户端以使用 spnego 进行身份验证(apache http 客户端 4.5.2)

这是设置客户端的代码

在服务器上,我有一个 JAX-RS 服务,它位于 a 后面waffle.servlet.NegotiateSecurityFilter以允许 ntlm 或 spnego 身份验证。

当我从我的 chrome rest 客户端发送我的 HTTP 请求时,它可以工作,使用协商成功完成身份验证。

但是,当我尝试使用 apache http 客户端时,它会失败并显示日志中的消息:

经过一些进一步的调查,我发现华夫饼过滤器正在遇到GSS_S_CONTINUE_NEEDED一个额外的挑战并做出响应,而 apache 客户端只是忽略并放弃了这个挑战。

我已经针对另一个使用 spnego(由第 3 方提供)的服务测试了我的 apache 客户端设置,它可以正常工作,尽管没有使用 continue 令牌。

我不确定我的系统是否设置不正确,是否不应该发生 continue 令牌,或者 apache http 客户端是否配置不正确(或根本不支持 continue 令牌)

这里有一张非常旧的票https://issues.apache.org/jira/browse/HTTPCLIENT-1107表明添加了一些东西来处理额外的挑战,但是从阅读其中的代码org.apache.http.impl.auth.GGSSchemeBase.parseChallenge(CharArrayBuffer, int, int)看起来好像只有第一个挑战被接受.

0 投票
1 回答
1745 浏览

java - 为什么 IE 11 浏览器对于 jQuery AJAX POST 请求随机有 Content-Length=0?

我正在开发基于 Spring MVC 的 webapp。

以下是我的环境详细信息:- Java 1.8.0_162 (64 bit), Spring 4.3.1, Apache Tomcat 8.0.49,Waffle-1.8.3用于 SSOjquery-1.11.3Google Charts API.

已将以下 JavaScript 代码放在常见的 JS 文件之一中:- $.ajaxSetup({ cache: false });

向服务器发出的 jQuery AJAXPOST请求在MozillaChrome浏览器中完美运行。但是对于IE 11浏览器,jQuery AJAXPOST请求只有在第一次加载窗口时才能正常工作。然后随机失败,一旦失败,后续请求也会失败。

以下是IE 11浏览器的网络选项卡的快照:-

  1. 成功的ajaxPOST请求: 在此处输入图像描述

  2. 失败的ajaxPOST请求: 在此处输入图像描述

两个请求在各自的请求正文中都有 JSON 对象。但是,成功请求的Content-Length属性值为416(字符串化 JSON 对象的总字符数),失败请求的属性值为0。对于随机失败POST的请求和后续请求,Content-Length始终为0,但计算出的 JSON 对象始终存在于请求正文中。在每个请求中,JSON 对象都是动态构建的。

UPDATE-1 (26March2018)以下是文件Waffle中定义的 AD 身份验证配置web.xml:-

只有1 个URL 即/welcome.do(加载 webapp 的初始 URL)被配置为调用 SSO 身份验证。

以下是触发 AJAX 请求的 JavaScript 代码:-

IE 11版本详情:

IE 11 版本详情

此外,我正在使用Google Charts API在页面上呈现图表。请求被触发到 Google Charts API 服务器。这对IE浏览器有影响吗?

使它在IE 11浏览器中工作的解决方案是什么?

Federico klez Culloca在评论部分的问题的答案:

  1. 请求(客户端)端没有错误。但来自服务器的响应说The request sent by the client was syntactically incorrect。和响应头Response HTTP/1.1 400 Bad Request

  2. 请求正文内容绝对没有区别。

  3. 指向与 webapp 相同的str_THIS_WA_URL variable域,即 AJAX 请求在当前域内。

将时间戳(根据shawn在下面评论部分中的建议)添加到 URL 并没有解决问题。

0 投票
1 回答
78 浏览

jsp - Struts2 偶尔不执行设置器

我使用 Struts2+JSP+Waffle 作为我的 Java EE 框架。在其中一个 JSP 中,我制作了一个带有 post 操作的表单,以将数据作为对象传输,类似于:

...并且程序将设置一个新的“bookVo”,其中包含大量输入值。我的程序将执行函数save()来获取 bookVo 并执行一些 SQL 操作。

我在我的函数中添加了一些日志,这是我目前得到的:

  1. 该程序正常执行,它将首先执行setBookVo()然后save()
  2. 我使用Waffle为windows用户一键登录,它根据登录的windows用户检测用户详细信息,无需输入密码即可快速登录。
  3. 问题发生我实现 Waffle 之后,记录器显示它跳过了bookVo()但执行了save(),这最终导致我在 bookVo 中的值出现 Nullpointerexception。

struts.xml:

bookSave.jsp:

由于这个问题偶尔会发生,我真的不知道我可以从哪里开始找到解决方案,有什么想法会发生这种情况吗?

0 投票
2 回答
1244 浏览

single-sign-on - 华夫饼:如何强制kerberos?

我正在将Waffle用于 Web 应用程序的 SingleSignOn。它工作正常,但我想知道是否可以强制 Kerberos 避免回退到 NTLM。

0 投票
1 回答
1420 浏览

java - 在 Java 中使用 Waffle 获取 Kerberos 服务票证

我正在在 Windows 10 上运行的 Java 应用程序中开发真正的 SSO。我的应用程序已经使用 Java 的 GSSAPI 进行了 Kerberos 身份验证(但它显然不适用于任何现代 Windows,尤其是在具有严格的安全策略和域用户的情况下),所以我想用 Waffle 替换当前的授权系统,对整体应用程序设计的影响最小——我认为如果我能以某种方式获得 KerberosTicket 实例,这应该是可能的。我正在努力编写这个功能,到目前为止我设法请求了一些令牌,但我真的不知道这个令牌是什么,它与 Kerberos 票证格式不匹配。这是我的(实际上更像是在网上找到的代码):

公平地说,我什至不确定 SSPI 是否允许我真正看到真正的票。我什至会在这个片段中朝着正确的方向前进吗?我会很高兴的,所以看看我应该做什么的任何线索。最后拥有 KerberosTicket 实例将是完美的。

0 投票
0 回答
594 浏览

java - Waffle Java 客户端:如何使用特定域用户对 Web 服务进行身份验证

简短版本:我有一个 Tomcat 托管的 Java Spring 应用程序,并且正在尝试访问使用 Kerberos/NTLM 身份验证的本地 OData Web 服务。该应用程序会按计划自动调用 Web 服务。因此,我没有登录用户。

到目前为止,我的研究使我相信 Waffle API 可能是答案。但是我似乎无法指定用户和密码并成功进行身份验证。

有没有其他人设法做到这一点?

更长的版本:在我的测试实验室中,我成功地使用 Springs Rest Template 访问了该服务,并将 NTCredentials 添加到其中,如下所示:

但是,这不适用于客户端域。不同之处似乎在于,在客户端域上,服务返回的是“协商”而不是“NTLM”的 WWW-Authenticate 属性。这似乎暗示它正在尝试使用 kerberos。

从这开始,我使用 Spring Boot 和 Waffle 编写了一个独立的应用程序。这可以使用登录用户(启动应用程序的用户)的 kerberos 票证成功调用客户端域上的服务。在我的 tomcat 托管应用程序中,没有登录用户。因此,我需要强制应用使用特定用户。然后我尝试使用 IWindowsAuthProvider.logonUser 和 IWindowsAuthProvider.impersonate 方法但没有成功。

对此的任何帮助将不胜感激

0 投票
0 回答
366 浏览

java - 带有基本回退的 Waffle SSO 身份验证

我已经使用 Waffle 配置了 Tomcat SSO 身份验证:

这很好用,并且支持使用 NTLM 回退进行协商。

我想要的是添加 BASIC 身份验证后备。有没有办法做到这一点?

我已经通过添加 Tomcat 的 JAASRealm + Waffle 的 JAAS 支持(使用 Tomcat 的 CombinedRealm)来尝试这个,但没有运气:NegotiateAuthenticator 阻止了任何进一步的处理。(它正在寻找基本安全包,并说“请求的安全包不存在”。它不让 JAASRealm 完成这项工作。)

0 投票
0 回答
120 浏览

java - Java Waffle - 绝对的初学者

我们有一个带有 Kerberos 身份验证的站点。我以前从未使用过 Java 和 Eclipse,因此我的知识非常有限。

我希望实现的目标就像我对 python 所做的那样:

我想在 Java 中实现这一点,但是我不知道如何开始。我看过一些例子,但我是 Java 的新手,我不知道如何处理它们。

0 投票
1 回答
986 浏览

java - 连接到服务时浏览器询问登录名和密码

我在我的服务中使用带有 Waffle 的 Spring Security。当我在本地连接到服务时(浏览器和 Tomcat 在同一台计算机上启动),一切正常(浏览器不询问登录名和密码)。当我从另一台计算机连接到该服务时,浏览器总是询问登录名和密码。

这是我的 web.xml:

这是 Spring 上下文:

我真的很高兴任何建议。谢谢你。

1)当您取消登录框时会发生什么(屏幕截图) 在此处输入图像描述 2)如果您输入一些(可能是假的)凭据会发生什么(屏幕截图) 在这种情况下会出现站点。我不想发布它。3) 调试器的网络选项卡中显示的内容(屏幕截图 + 复制的纯文本) 登录成功

登录失败