java socket参数_在Java EE的WebSocket端点中使路径参数可选

@ServerEndpoint(value = "/Push/CartPush/{token}")

public final class CartPush {

// ...

}

端点能够接受路径参数{token}。但是,路径参数是可选的,它是在Java脚本的运行时动态确定的。在JavaScript中跳过此参数,如下面的结果404。

var ws = new WebSocket("wss://localhost:8443/ContextPath/Push/CartPush");

WebSocket连接到 'wss://localhost:8443/ContextPath/Push/CartPush'失败:错误期间 WebSocket的握手:意外的响应代码:404

它使得令牌值强制如下。

var token = "token value";

var ws = new WebSocket("wss://localhost:8443/ContextPath/Push/CartPush" + "/" + token);

为了排除除了GET和POST所有不需要的HTTP方法,我用下面的限制或约束,使用适当的URL模式和角色映射在web.xml Servlet安全限制一起。

Disable unneeded HTTP methods by 403

/Public/*

/Push/*

/javax.faces.resource/*

GET

POST

如何使给定的路径参数可选?

所用的服务器是WildFly 10.0.0最后/的Java EE 7

2016-03-03

Tiny

+0

我不知道什么安全性约束得到了与具体问题做。问题仍然会保持良好,当你离开它。 –

+0

我添加了该部分作为附加信息,因为即使从'web.xml'中排除或删除'/Push/* url-pattern>',GlassFish(4.1)可以像'/ Push/CartPush'一样使用URI。另一方面,WildFly在从'web.xml'中排除''时,会用'/ Push/CartPush'报告'403'。我不知道原因。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值