如Openfire插件中提供对外的Servlet服务,访问地址: http://server:9090/plugins/xxxservice/xxservlet
默认情况下访问该地址是会转向到Openfire认证界面,即需要认证才能访问该地址。
要免认证访问,需要如以下代码实现:
Servelet代码:
public class XXXXServiceServlet extends HttpServlet {
private static final String SERVICE_NAME = "xxxservice/xxservlet";
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
AuthCheckFilter.addExclude(SERVICE_NAME);
}
public void destroy() {
super.destroy();
AuthCheckFilter.removeExclude(SERVICE_NAME);
}
......
}
web/WEB-INF/web-custom.xml代码
<servlet-mapping>
<servlet-name>EnterpriseServiceServlet </servlet-name>
<url-pattern>/xxservlet</url-pattern>
</servlet-mapping>
关键点是:SERVICE_NAME 采用 插件名称+servlet地址的写法。
默认情况下访问该地址是会转向到Openfire认证界面,即需要认证才能访问该地址。
要免认证访问,需要如以下代码实现:
Servelet代码:
public class XXXXServiceServlet extends HttpServlet {
}
web/WEB-INF/web-custom.xml代码
关键点是:SERVICE_NAME 采用 插件名称+servlet地址的写法。