谁能告诉我我们如何限制普通用户访问 Liferay api/jsonws 页面。 api/jsonws 页面应该只能由管理员用户访问。
我们是否可以选择在 Liferay 中执行此操作。
谁能帮我解决这个问题
最佳答案
我猜 Liferay 6.2 中没有这个功能 :(
jsonws.web.service.api.discoverable=false
引用:https://issues.liferay.com/browse/LPS-50668
我知道您可以在 6.2 中执行的选项
- ServletFilter 钩子(Hook)
在那里写下你的逻辑 //写具体的模式
<servlet-filter>
<servlet-filter-name>ServiceAccessPage</servlet-filter-name>
<servlet-filter-impl>com.check.access.ServiceAccessPage</servlet-filter-impl>
<init-param>
<param-name>initparam</param-name>
<param-value>Hi IP Address Filter</param-value>
</init-param>
</servlet-filter>
<servlet-filter-mapping>
<servlet-filter-name>ServiceAccessPage</servlet-filter-name>
<url-pattern>/api/jsonws</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</servlet-filter-mapping>
在 ServiceAccessPage.java 中
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws java.io.IOException, ServletException {
//get user & Redirect to session.setAttribute(WebKeys.LAST_PATH, redirectionFailPath);
logger.info("DoFilter method being called");
}
- Crete 服务行动 Pre Action。
[这将在每个 Action 之前被调用:(]
从请求中获取用户,并相应地管理着陆页。
- 使用分机
写一个属性来关闭/打开页面和覆盖 JSONWebServiceServlet
关于java - Liferay api/jsonws 页面应该只能由管理员用户访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42175156/