GatewayServlet.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.sec.xinhua.gateway.web;
  2. import com.sec.xinhua.gateway.config.ConfigRepositoryFactory;
  3. import com.sec.xinhua.gateway.handler.DefaultApiHandlerChain;
  4. import com.sec.xinhua.gateway.handler.RequestHandler;
  5. import com.sec.xinhua.gateway.service.DubboServiceManager;
  6. import com.sec.xinhua.gateway.utils.SysConstants;
  7. import javax.servlet.ServletConfig;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.io.IOException;
  13. /**
  14. * 风控网关http入口
  15. *
  16. * @author zhangqx
  17. * @version $Id: GatewayServlet.java, v 0.1 2015年12月8日 下午5:48:20 zhangqx Exp $
  18. */
  19. public class GatewayServlet extends HttpServlet {
  20. /** */
  21. private static final long serialVersionUID = -2466227266582283749L;
  22. @Override
  23. public void init(ServletConfig config) throws ServletException {
  24. super.init(config);
  25. //初始化配置(dubbo注册中心等),很重要
  26. ConfigRepositoryFactory.initGatewaySetting();
  27. //初始化所有(dubbo的映射关系)setting
  28. DubboServiceManager.initAllDubboService();
  29. //初始化handler(filter时需要串行执行的handler,包括参数转化,泛化调用)
  30. DefaultApiHandlerChain.getInstance();
  31. }
  32. @Override
  33. protected void doPost(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
  34. //编码设置
  35. req.setCharacterEncoding(SysConstants.ENCODE);
  36. response.setContentType("application/json;charset=utf-8");
  37. response.setCharacterEncoding(SysConstants.ENCODE);
  38. response.setHeader("Access-Control-Allow-Origin", "*");
  39. RequestHandler requestHandler = new RequestHandler();
  40. String addr = req.getRemoteAddr();
  41. /**
  42. * ip白名单功能
  43. */
  44. // if (StringUtils.isNotBlank(addr)) {
  45. // IpFileCache ipFileCache = IpFileCache.getInstance();
  46. // List<String> ips = ipFileCache.getIps();
  47. // if (ips == null || !ips.contains(addr)) {
  48. // print(response, "您好,您的ip无访问权限!");
  49. // return;
  50. // }
  51. // }
  52. requestHandler.httpRequestHandle(req, response);
  53. }
  54. private void print(HttpServletResponse response, String content) {
  55. response.setHeader("Access-Control-Allow-Origin", "*");
  56. response.setHeader("Access-Control-Allow-Methods", "GET,PUT,DELETE,POST,OPTIONS");
  57. response.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With,Content-Type,Accept,kopds");
  58. try {
  59. response.getWriter().print(content);
  60. response.getWriter().flush();
  61. } catch (IOException e) {
  62. }
  63. }
  64. }