我正在实验Spring4 WebSocket STOMP应用程序。在每个用户都有唯一的会话ID的条件下,是否有一种方法可以回复单个未经身份验证的用户?现在我只能广播消息或直接发送给经过身份验证的用户。
@Controller
public class ProductController {
@MessageMapping("/products/{id}")
@SendTo("/topic") // This line makes return value to be broadcasted to every connected user.
public String getProduct(@DestinationVariable int id) {
return "Product " + id;
}
}
您可以为传入用户分配匿名标识。有两种方法可以做到。
首先,您可以配置DefaultHandShakeHandler
的子类,它覆盖DetermineUser
并为每个WebSocketSession分配某种标识。顺便说一下,这需要4.0.1(目前构建快照是可用的),它将在2014年1月23日星期一发布。
第二,WebSocket会话将返回握手HTTP请求上的HttpServletRequest.getUserPrincipal
返回的值。您可以让一个servlet过滤器包装HttpServletRequest,并决定从该方法返回什么。或者如果您使用的Spring Security具有AnonymousAuthenticationFilter,则重写其createAuthentication
方法。
我有一个h:inputText、h:selectonemenu和commandbuton。Inputtext是必填字段,我已将其定义为immediate=“true”。然后,当我单击按钮时,我想将selectonemenu的当前值传递给托管bean。但它的passig为空。如何管理此验证,以便它允许我在托管bean中获取selectOneMenu的值。。 我的代码是...
我正在尝试通过空手道关闭SSL证书验证。现在我得到了错误: javax.net.ssl.sslHandShakeException:Sun.Security.Validator.ValidatorException:PKIX路径构建失败:Sun.Security.Provider.CertPath.SunCertPathBuilderException:找不到请求目标的有效证书路径
我的代码在这里:代码重新发布是因为我想问一个更直接的问题。如何在未经身份验证的用户和经过身份验证的用户之间切换?我的未经验证的文件似乎已缓存,我使用了以下方法: 在我剩下的api代码之前,它仍然不能工作。谢谢你的帮助 注意:我知道它不起作用,因为我在切换配置/凭据提供程序后立即使用lambda进行调用,并且只有授权用户才能调用此方法。 编辑@behrooziAWS答案: API代码: 完整错误:B
我正在尝试在反应式Spring Boot应用程序中配置Spring Security性,并包括依赖于新的Spring Security版本5.0.0的父项目。RC1: 我将我的Spring WebSecurity配置为使用自定义AuthenticationFilter来检索我的身份验证信息,以及使用我自己的提供者的自定义AuthenticationManager。 配置: ReactiveAuth
在我的REST应用程序中,我使用了基本身份验证(发送用户密码并在每次请求时登录)。对于某些需要,我使用以下方法获得登录用户: 但是后来我实现了Spring-Security-Oaut2,我使用访问令牌代替密码和登录。现在. getMain()方法返回“匿名用户”。所以我的问题:有没有办法像上面在sping-security-oauth中那样以某种方式获取登录用户? 编辑:我发现我的安全性“拦截ur
在斯威格中有一个.BasicAuth(“基本”)。我取消注释的描述(“基本HTTP授权”)行。 但是,当尝试使用其中一个endpoint时,单击“试用!”按钮时,系统会提示我登录。无论我在这个框中放了什么(用户名和密码框),我都无法运行或测试endpoint,因为我未经授权。我需要在 SwaggerConfig.cs 文件或其他位置执行哪些操作才能进行测试? 我使用的是.Net Framework