通过Atmosphere + Dropwizard进行身份验证

皮疹

嗨,我正在寻找一种在用户建立WebSocket连接时对用户进行身份验证的方法,并且如果他们未经身份验证就可以关闭连接。我正在为WebSocket连接使用Dropwizard框架和Atmosphere。是我使用的示例。如果在建立连接时可以使用Dropwizard提供的'@Auth'注释进行身份验证,那就太好了。

马丁代码

你怎么暴露这个?是通过javascript前端吗?

您正在使用链接中和此处描述的基于servlet的方法:https : //cvwjensen.wordpress.com/2014/08/02/websockets-in-dropwizard/,而不是球衣大气扩展名?

如果您使用的是基于servlet的方法,建议您使用基于令牌的方法将令牌放入http标头中,然后在@Ready处理程序方法中访问此标头,如下所示:

@Ready
public String onReady(final AtmosphereResource resource) {
    String AuthHeader = resource.getRequest().getHeader("Authorization");

    ...DO AUTH HERE

    logger.info("Resource {} connected ", resource.uuid());
    return "Connect " + resource.uuid();
}

然后,如果身份验证失败,您也可以轻松关闭连接。但是,根据您的客户端实现,您可能需要考虑一下。如果客户端在关闭时自动重新连接,则您会遇到不断关闭和打开套接字的情况,这可能会导致资源耗尽。如果auth不成功,则可以存储一个私有变量,该变量声明此实例是否已通过身份验证,而只是丢弃向其发送任何消息或从中处理任何消息。这也是让攻击者知道auth失败的一种“晦涩”方式,它只是处于不稳定状态。已连接,但未失败或关闭。只是没有收到任何数据。但这又是特定于您的实现的。

Jwt auth是一个选项,请查看:https : //github.com/ToastShaman/dropwizard-auth-jwt尽管未公开,但我已将此实现移植到dropwizard 0.8rc3-SNAPSHOT。如果您需要这个,请告诉我,我可以将其发布到github。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过HttpClient进行SPNEGO身份验证

来自分类Dev

通过HTTP进行ArangoDB身份验证

来自分类Dev

通过LDAP进行外部身份验证

来自分类Dev

通过Google进行OWIN身份验证

来自分类Dev

通过Unirest JAVA进行身份验证

来自分类Dev

无法通过GUI进行身份验证

来自分类Dev

通过API进行Facebook身份验证

来自分类Dev

通过Google进行OWIN身份验证

来自分类Dev

通过Wordpress进行Icecast身份验证

来自分类Dev

Laravel通过Ajax进行身份验证

来自分类Dev

通过Linux主机进行身份验证

来自分类Dev

SSH.NET仅通过私钥进行身份验证(公钥身份验证)

来自分类Dev

无法通过Firebase身份验证进行身份验证-Android Studio

来自分类Dev

使用会话身份验证,通过cursing与Tasty Pie一起进行身份验证

来自分类Dev

通过HTTPS Java进行基本身份验证

来自分类Dev

通过令牌/密钥进行用户和API身份验证

来自分类Dev

如何通过Passport强制进行身份验证

来自分类Dev

New-WebServiceProxy无法通过NTLM进行身份验证

来自分类Dev

通过C ++程序进行Wordpress身份验证

来自分类Dev

通过REST端点进行Spring Security身份验证/授权

来自分类Dev

Passport JS通过URL进行身份验证

来自分类常见问题

Bitbucket无法通过git pull进行身份验证

来自分类Dev

在Symfony 3中通过LDAP进行身份验证

来自分类Dev

如何通过休息服务对用户进行身份验证

来自分类Dev

Android Studio无法通过SVN进行身份验证

来自分类Dev

js如何通过facebook进行身份验证?

来自分类Dev

通过REST API身份验证进行TeamCity备份失败

来自分类Dev

14.04不通过chsh命令进行身份验证

来自分类Dev

TeamCity-无法通过API进行身份验证