问题标签 [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 - Spring Security:修改过滤器链后突然出现的classpath和Thymeleaf相关问题
我正在尝试waffle-spring-security4
与现有的 Spring Boot 项目集成,其中大部分配置是自动发生的。我注意到当NegotiateSecurityFilter
在链中时,会发生一些奇怪的事情:我开始ClassNotFoundException
使用一个 String 属性初始化一个完全微不足道的类;以前加载正常的 Thymeleaf 模板现在无法解析等等。发生这种情况时,我在链中有以下过滤器:
WebAsyncManagerIntegrationFilter
SecurityContextPersistenceFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
NegotiateSecurityFilter
(由华夫饼)BasicAuthenticationFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
SessionManagementFilter
ExceptionTranslationFilter
FilterSecurityInterceptor
切换回 HTTP 基本身份验证后,问题就消失了,所以我认为问题可能出在上面的过滤器上。您对如何解决此问题有任何想法吗?(如果您有任何调试类似问题的策略,那就太好了。)
spring - Spring Security + Waffle:Kerberos 身份验证在 IE 11 中失败,在 Firefox 中工作正常
我有一个 Spring Boot + Spring Security + Waffle 应用程序,如果从 Firefox 访问页面,它可以很好地进行身份验证。如果我在 IE 11 中执行相同操作,则第一个身份验证序列执行正确,但一旦我尝试单击链接,我就会得到 401 Unauthorized。
与我在 Fiddler for IE 11 和 Firefox 中看到的相比,这是有区别的,但我真的不知道这是否以及如何影响这一点。
- Firefox:获取 401,发送带有协商标头的请求,获得带有 set-cookie 的 200,从那时起仅发送 cookie,不再发送协商标头。
- IE 11:获取 401,发送带有协商标头的请求,获得带有设置 cookie 的 200,从那时起发送 cookie 和协商标头。
当 IE 失败时,我会收到来自服务器的响应,如下所示:
我做了通常的故障排除步骤并正确配置了 IE;我可以做些什么来在 IE 中完成这项工作吗?
wso2is - WSO2IS 5.1.0 - IWA 在 Internet Explorer 中不起作用 - com.sun.jna.platform.win32.Win32Exception:提供给函数的令牌无效
我们在我们的产品套件中使用 WSO2 身份服务器进行用户身份验证。最近我们将其版本从 5.0.0 升级到了 5.1.0。升级到 WSO2 身份服务器 5.1.0 版本后,当我们启用 IWA(集成 Windows 身份验证)时出现以下异常
在谷歌上搜索问题后,我们遇到了以下帖子。
https://github.com/dblock/waffle/issues/107
看起来早期版本的 Waffle 库中存在一些问题,该问题已在 1.7.4 版本中得到解决。WSO2 Identity server 5.1.0 附带 Waffle 库版本 1.6.0 (waffle-jna_1.6.0.wso2v4.jar)。
现在我的问题是我们是否有任何可用的 WSO2 身份服务器补丁,其中包括最新的 Waffle 库(版本 1.7.4 或更高版本)?我们可以简单地下载最新版本的 Waffle 并放入“wso2is-5.1.0\repository\components\plugins”文件夹吗?它会起作用吗?我们需要看看它是否能解决上述问题。我们无法找到任何其他解决此问题的方法。
java - 如何使用 Java 检索当前登录用户的 UPN(用户主体名称)
我想使用 java 检索当前登录用户的 UserPrincipalName。我可以连接到 AD 并检索它,但我想避免所有这些配置和其他东西,有没有更简单的方法来使用 java 获取 UPN?
存储在 AD 中的 UPN 通常为 userName@domainName 格式。如果我的用户是 john,域是 vmware,它应该返回 john@vmware。
请指教。
java - Waffle Kerberos SSO - 模拟更改 tomcat 用户
我对 Waffle 和 Kerberos 有以下问题。
我有可以在 Tomcat 上运行的 Java Servlet 应用程序,并且在我使用 waffle 的 Kerberos 上有 SSO。
为了使 SSO 工作,我必须启用:
当我将 impersonate 设置为 false 时,SSO 不起作用:(
一切似乎都很好,用户可以使用 SSO 登录我的应用程序。
但后来我发现模拟更改 tomcat 用户和应用程序不是在管理权限下工作,而是作为 userA 或 userB。因此,当用户 A 在我的系统中创建文件(报告、日志、配置文件)时,他是文件的所有者,然后当用户 B 登录并尝试访问该文件时,我得到拒绝访问异常。
我使用以下代码创建文件:
我希望应用程序在不更改用户的情况下工作,它应该是 tomcat 用户创建、读取和附加文件(管理员)而不是 userA 或 userB。
我需要带有华夫饼的 Kerberos SSO,但我不希望这种模拟以这种方式工作。有没有其他方法可以让华夫饼起作用?或者也许我可以以任何其他方式保存文件?
java - Wildfly 10 Windows 身份验证
我被困在 Java Web 应用程序的 servlet 和安全过滤器上。所以我得到了我的 web.xml,它看起来像这样:
我得到了这个设置,因为我偶然发现了这个小帖子: Multiple filters with same url mapping
然后我发现这篇文章帮助我找到了正确的方向:java-sso-with-wildfly-8-java-1-8-0-45-and-active-directory
所以我尝试通过过滤器 WaffleSSOFilter 访问这部分。
对我来说,困难的部分是每个 URL 都需要第一个过滤器“com.company.xxx.xxx.xxx.SecurityFilter”,因为没有它我们的应用程序就坏了,然后什么都不起作用。但我需要为我的 WaffleSSOFilter 提供一个特殊的 POST URL,以便能够通过访问网站的远程计算机上登录的 Windows 用户进行身份验证。
目标是让登录页面具有正常的用户名和密码表单,并有一个复选框来启用 Windows 身份验证。
通过此设置,我可以使用用户名和密码正常登录。该应用程序正在运行,到目前为止还不错。现在,如果我向我的特殊 URL 发出 POST 请求以测试 Windows 身份验证,我会在访问之前的源代码时得到 java.lang.NullPointerExceptionservletRequest.getUserPrincipal().toString()
问题:我在过滤器设置中的错误在哪里或源代码有什么问题?
PS:是的,我将浏览器配置为启用第二篇文章链接中提到的请求。PPS:当我删除我们的第一个过滤器并通过华夫饼过滤器路由所有内容时,登录工作并且我没有收到 NullPointerException,但应用程序完全损坏了。
java - 使用 Spring Boot 和 Waffle 配置 Spring Security 的循环依赖错误
我正在尝试使用 Waffle 为我的 Spring Boot 应用程序配置 Spring Security,但是当我运行我的应用程序时它失败了。它说的是关于 waffleNegotiateSecurityFilter 的循环依赖问题,但我真的不明白,甚至不知道从哪里开始调试它。
安全配置
pom.xml
错误日志
java - 使用自定义表单进行 Spring Security Waffle 身份验证,而不是浏览器弹出窗口
我正在创建一个使用 Waffle 进行身份验证的 Spring MVC 应用程序。我已经成功配置它并且它工作得很好,但是当浏览器不自动发送他们的网络凭据时,我想使用自定义表单而不是浏览器弹出窗口。
我已经修改了我的配置以使用formLogin()
希望它会使用我现有的身份验证,但没有运气。
更新:重大进展!我已成功获得使用 Windows 网络凭据进行身份验证的表单。我是这样做的:
首先,让我向您展示我在原始帖子中遗漏的 bean 声明。它们位于一个单独的类中。
现在,这就是我如何获得生成的 Spring 安全表单以使用 Windows 网络凭据进行身份验证
首先,我添加了这个类型的beanwaffle.spring.WindowsAuthenticationProvider
然后我将它添加到SecurityConfig.java
并使用它来设置http安全链中的身份验证提供程序
现在我只需要弄清楚如果浏览器不发送凭据,如何只使用表单!嗯……
java - 如何使用 Waffle 获取客户端用户名?
我正在Tomcat 7
运行Windows 7
。所有客户端也在运行Windows 7
。
我正在尝试在test.jsp
页面上打印客户端用户名,因此我使用Waffle
. 这里是WEB-INF/web.xml
这是我的test.jsp
但是它总是打印server
计算机用户名。我在很多client
机器上都试过了,它总是打印server
但不是client
用户标识
为什么?如何纠正这个?
java - 获取登录WebApp(JAVA)的windows用户
我已经被这个任务困住了好几天了。在我的 Web 应用程序的登录表单中,在用户输入用户名和密码之前,我想在请求中收到他的 Windows 帐户的用户名。经过大量研究后,我发现我必须使用 Kerberos,但我不知道如何使用。我可以访问 Active Directory 服务器,因此我创建了服务主体名称,在 Java 上建立了与 AD 的连接,但我无法获得 windows 用户。
现在我正在尝试使用 Waffle,正如我所读的,就像导入一些 JAR 并在 JSP 文件中获取主体名称一样简单(假设是 Windows 用户),但正如我所说,我不能不要这样做。
有没有人做过类似的事情?
任何帮助都会非常感激,
提前致谢。
更新:
根据您的要求,这是我到目前为止所做的:
在 WServer 2012 R2(我有 AD)上,我创建了一个名为 santi.mittrol.net 的用户
使用以下命令向该用户注册一个 spn:
在此之后,我创建了相关的密钥表:
在这个设置之后,我创建了这个项目:https ://github.com/spring-projects/spring-security-kerberos/tree/master/spring-security-kerberos-samples/sec-server-win-auth/src/main但我不能让它工作......
与华夫饼相同..在我的 web.xml 我有这个:
但是,当我从另一台 PC 向我部署在我的 PC 上的 Tomcat 发出请求时,他们会收到输入凭据的提示,这不是我需要的,我只需要收到 Windows 用户的请求已在发出请求的计算机上登录。
谢谢sss