将Servlet做成一个插件,让外界不需要登录就可以进行http请求访问openfire
package org.jivesoftware.openfire.plugin;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jivesoftware.admin.AuthCheckFilter;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.plugin.handle.HandleMsg;
import org.jivesoftware.util.JiveProperties;
import org.json.JSONException;
import org.json.JSONObject;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
public class ExampleServlet extends HttpServlet {
private static final long serialVersionUID = -6093345417438012819L
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// super.doGet(req, resp);
resp.setContentType("text/plain");
PrintWriter out = resp.getWriter();
System.out.println("example servlet dogetbbbb");
out.print("example servlet dogetbbbb");
out.flush();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
String result = null;
JSONObject jsonObject = null;
try {
result = req.getParameter("json");
jsonObject = new JSONObject(result);
System.out.println("请求报文:" + result);
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
try {
BufferedReader br = new BufferedReader(
new InputStreamReader((ServletInputStream) req.getInputStream(), "utf-8"));
StringBuffer sb =new StringBuffer("");
String temp;
while((temp=br.readLine())!=null){
sb.append(temp);
}
br.close();
result = sb.toString();
jsonObject = new JSONObject(result);
System.out.println("请求报文:" + result);
}catch (Exception e1) {
result = "{err:\"error\"}";
}
}finally{
PrintWriter pw = resp.getWriter();
pw.write(HandleMsg.handleMsg(jsonObject));
pw.flush();
pw.close();
}
}
@Override
public void destroy() {
super.destroy();
}
@Override
public void init() throws ServletException {
super.init();
AuthCheckFilter.addExclude("example/servlet");//外界访问权限
AuthCheckFilter.addExclude("example/servlet/exampleServlet");//外界访问权限
}
}