分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
编写插件用于获取openfire的在线登录人。
插件结构:
主要代码:
- package org.jivesoftware.openfire.plugin.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.Collection;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.jivesoftware.admin.AuthCheckFilter;
- import org.jivesoftware.openfire.SessionManager;
- import org.jivesoftware.openfire.SessionResultFilter;
- import org.jivesoftware.openfire.session.ClientSession;
- import org.jivesoftware.util.WebManager;
- public class OnlineServlet extends HttpServlet{
- private static final long serialVersionUID = 1L;
- private ServletConfig servletConfig;
- public void init(ServletConfig servletConfig) throws ServletException{
- super.init(servletConfig);
- this.servletConfig = servletConfig;
- /** Exclude this servlet from requering the user to login*/
- AuthCheckFilter.addExclude("online/status");
- }
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
- {
- response.setContentType("text/plain");
- PrintWriter out = response.getWriter();
- WebManager webManager = new WebManager();
- HttpSession session = request.getSession(true);
- webManager.init(request, response, session, servletConfig.getServletContext());
- SessionManager sessionManager = webManager.getSessionManager();
- int sessionCount = sessionManager.getUserSessionsCount(false);
- SessionResultFilter filter = SessionResultFilter.createDefaultSessionFilter();
- filter.setSortOrder(0);
- filter.setStartIndex(0);
- filter.setNumResults(sessionCount);
- Collection<ClientSession> sessions = sessionManager.getSessions(filter);
- StringBuilder sb = new StringBuilder();
- int nCount = 0;
- for (ClientSession sess : sessions)
- {
- String strTmp = sess.getAddress().toString();
- strTmp = strTmp.substring(0, strTmp.lastIndexOf("@"));
- if(nCount>0)
- sb.append(",");
- sb.append(strTmp);
- nCount++;
- }
- if(nCount==0)
- sb.append("null");
- out.flush();
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
- {
- doGet(request, response);
- }
- public void destroy() {
- super.destroy();
- // Release the excluded URL
- AuthCheckFilter.removeExclude("online/status");
- }
- }
源码下载:
src : http://download.csdn.NET/detail/dengfangfang11/8359657
jar : http://download.csdn.Net/detail/dengfangfang11/8359637