目前在维护 花猫大叔 这个网站, 偶尔会看到 api/jsonws/invoke 的日志,今天百度了一下,这个命令是用来做什么。
jsonws.web.service.api.discoverable=false
jsonws 是一个 web 服务, 主要是用来做json解析的。
很多黑客朋友们,尤其是小白,经常用api/jsonws/invoke,
OST /api/jsonws/invoke HTTP/1.1
Host: php.local:8080
Content-Length: 1355
Content-Type: application/x-www-form-urlencoded
Connection: close
下面是
Liferay DXP 7.0开发人员教程
配置JSON Web服务
默认情况下,Liferay中启用了JSON Web服务。如果需要禁用它们,请在portal-ext.properties文件中指定此门户网站属性设置:
json.web.service.enabled=false
本教程介绍了其他此类属性,您可以使用它们来精确调整JSON Web服务在Liferay实例中的工作方式。您可以在门户网站属性参考文档中找到这些以及其他属性 。与前面的属性一样,您应该在portal-ext.properties文件中设置门户网站属性 。
首先,您将了解如何通过API页面设置是否可以发现JSON Web服务。
可发现性
默认情况下,可通过位于的API页面发现JSON Web服务 http://[address]:[port]/api/jsonws。要禁用此功能,请设置以下属性:
jsonws.web.service.api.discoverable=false
接下来,您将学习如何禁用HTTP方法。
禁用HTTP方法
启用严格的HTTP方法模式后,您可以基于服务使用的HTTP方法来过滤Web服务访问。例如,您可以通过禁用除之外的HTTP方法来将Liferay实例的JSON Web服务设置为以只读模式工作GET。例如:
jsonws.web.service.invalid.http.methods=DELETE,POST,PUT
使用此设置,使用的所有请求DELETE,POST或PUTHTTP被忽略的方法。
接下来,您将学习如何限制对公开的JSON API的公共访问。
严格的HTTP方法
所有的JSON Web服务映射到GET或POSTHTTP方法。如果服务方法名开头get,is或者has,假设服务是只读的并且被绑定到GET方法。否则,它必然绑定到POST。
默认情况下,Liferay HTTP在调用服务调用时不检查方法;它在非严格的http方法模式下工作,在该模式下可以使用任何HTTP方法调用服务。如果需要严格模式,可以按如下所示进行设置:
jsonws.web.service.strict.http.method=true
使用严格模式时,必须使用正确的HTTP方法来调用服务方法。启用严格的HTTP模式后,您可能仍需要禁用HTTP方法。您将学习下一步。
控制公共访问
每个服务方法都知道给定的用户是否具有调用所选操作的权限。如果您担心安全性,可以通过显式允许或限制某些JSON Web服务路径来限制对公开JSON API的访问。
该属性jsonws.web.service.paths.includes表示允许的JSON Web服务操作路径的模式。设置空白模式以允许任何服务操作路径。
该属性jsonws.web.service.paths.excludes表示JSON Web服务操作路径的模式,即使它们与中设置的模式之一匹配也不允许jsonws.web.service.paths.includes。
请注意,这些属性支持通配符。例如,如果设置 jsonws.web.service.paths.includes=get*,has*,is*,Liferay将使所有只读JSON方法可公开访问。所有其他JSON方法都是安全的。要禁用对所有公开方法的访问,可以将=符号右侧保留为空。要启用对所有公开方法的访问,请指定*。请记住,如果路径同时匹配jsonws.web.service.paths.includes和 jsonws.web.service.paths.excludes属性,则该 jsonws.web.service.paths.excludes属性优先。