问题标签 [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.
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 上运行一个华夫饼示例)
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)
看起来好像只有第一个挑战被接受.
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.3
和Google Charts API
.
已将以下 JavaScript 代码放在常见的 JS 文件之一中:-
$.ajaxSetup({ cache: false });
向服务器发出的 jQuery AJAXPOST
请求在Mozilla和Chrome浏览器中完美运行。但是对于IE 11浏览器,jQuery AJAXPOST
请求只有在第一次加载窗口时才能正常工作。然后随机失败,一旦失败,后续请求也会失败。
以下是IE 11浏览器的网络选项卡的快照:-
两个请求在各自的请求正文中都有 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版本详情:
此外,我正在使用Google Charts API在页面上呈现图表。请求被触发到 Google Charts API 服务器。这对IE浏览器有影响吗?
使它在IE 11浏览器中工作的解决方案是什么?
Federico klez Culloca在评论部分的问题的答案:
请求(客户端)端没有错误。但来自服务器的响应说
The request sent by the client was syntactically incorrect
。和响应头Response HTTP/1.1 400 Bad Request
。请求正文内容绝对没有区别。
指向与 webapp 相同的
str_THIS_WA_URL variable
域,即 AJAX 请求在当前域内。
将时间戳(根据shawn在下面评论部分中的建议)添加到 URL 并没有解决问题。
jsp - Struts2 偶尔不执行设置器
我使用 Struts2+JSP+Waffle 作为我的 Java EE 框架。在其中一个 JSP 中,我制作了一个带有 post 操作的表单,以将数据作为对象传输,类似于:
...并且程序将设置一个新的“bookVo”,其中包含大量输入值。我的程序将执行函数save()来获取 bookVo 并执行一些 SQL 操作。
我在我的函数中添加了一些日志,这是我目前得到的:
- 该程序正常执行,它将首先执行setBookVo()然后save()。
- 我使用Waffle为windows用户一键登录,它根据登录的windows用户检测用户详细信息,无需输入密码即可快速登录。
- 问题发生在我实现 Waffle 之后,记录器显示它跳过了bookVo()但执行了save(),这最终导致我在 bookVo 中的值出现 Nullpointerexception。
struts.xml:
bookSave.jsp:
由于这个问题偶尔会发生,我真的不知道我可以从哪里开始找到解决方案,有什么想法会发生这种情况吗?
single-sign-on - 华夫饼:如何强制kerberos?
我正在将Waffle用于 Web 应用程序的 SingleSignOn。它工作正常,但我想知道是否可以强制 Kerberos 避免回退到 NTLM。
java - 在 Java 中使用 Waffle 获取 Kerberos 服务票证
我正在在 Windows 10 上运行的 Java 应用程序中开发真正的 SSO。我的应用程序已经使用 Java 的 GSSAPI 进行了 Kerberos 身份验证(但它显然不适用于任何现代 Windows,尤其是在具有严格的安全策略和域用户的情况下),所以我想用 Waffle 替换当前的授权系统,对整体应用程序设计的影响最小——我认为如果我能以某种方式获得 KerberosTicket 实例,这应该是可能的。我正在努力编写这个功能,到目前为止我设法请求了一些令牌,但我真的不知道这个令牌是什么,它与 Kerberos 票证格式不匹配。这是我的(实际上更像是在网上找到的代码):
公平地说,我什至不确定 SSPI 是否允许我真正看到真正的票。我什至会在这个片段中朝着正确的方向前进吗?我会很高兴的,所以看看我应该做什么的任何线索。最后拥有 KerberosTicket 实例将是完美的。
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 方法但没有成功。
对此的任何帮助将不胜感激
java - 带有基本回退的 Waffle SSO 身份验证
我已经使用 Waffle 配置了 Tomcat SSO 身份验证:
这很好用,并且支持使用 NTLM 回退进行协商。
我想要的是添加 BASIC 身份验证后备。有没有办法做到这一点?
我已经通过添加 Tomcat 的 JAASRealm + Waffle 的 JAAS 支持(使用 Tomcat 的 CombinedRealm)来尝试这个,但没有运气:NegotiateAuthenticator 阻止了任何进一步的处理。(它正在寻找基本安全包,并说“请求的安全包不存在”。它不让 JAASRealm 完成这项工作。)
java - Java Waffle - 绝对的初学者
我们有一个带有 Kerberos 身份验证的站点。我以前从未使用过 Java 和 Eclipse,因此我的知识非常有限。
我希望实现的目标就像我对 python 所做的那样:
我想在 Java 中实现这一点,但是我不知道如何开始。我看过一些例子,但我是 Java 的新手,我不知道如何处理它们。