Преглед изворни кода

1.宁夏接口对接功能。
2.报表统计生成图片和pdf路径修改。

杨秀河 пре 3 година
родитељ
комит
595a01a361

+ 61 - 58
.settings/org.eclipse.core.resources.prefs

@@ -1,58 +1,61 @@
-eclipse.preferences.version=1
-encoding//WebRoot/jsp/carpublic.jsp=UTF-8
-encoding//WebRoot/jsp/rzx/alterPWD.jsp=UTF-8
-encoding//WebRoot/jsp/rzx/dataStatistics1/FillingdataStatistics.jsp=UTF-8
-encoding//src/com/runzhixing/action/AeratedmachinerunningstateAction.java=UTF-8
-encoding//src/com/runzhixing/action/AlterPasswordAction.java=UTF-8
-encoding//src/com/runzhixing/action/BlackListQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/CNGQualityIntoAction.java=UTF-8
-encoding//src/com/runzhixing/action/CNGQualityQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/CNGStationAction.java=UTF-8
-encoding//src/com/runzhixing/action/CNGStationTranInfoAction.java=UTF-8
-encoding//src/com/runzhixing/action/CarAuditAction.java=UTF-8
-encoding//src/com/runzhixing/action/CarDataStatisticsAction.java=UTF-8
-encoding//src/com/runzhixing/action/CarsDataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/CheckAnnounformmentAction.java=UTF-8
-encoding//src/com/runzhixing/action/CheckSeedataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/CheckStationAction.java=UTF-8
-encoding//src/com/runzhixing/action/CheckStationInfoAction.java=UTF-8
-encoding//src/com/runzhixing/action/CylinderDataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/CylinderDataQueryagainAction.java=UTF-8
-encoding//src/com/runzhixing/action/CylinderDataStatisticsAction.java=UTF-8
-encoding//src/com/runzhixing/action/CylinderGuidAction.java=UTF-8
-encoding//src/com/runzhixing/action/FillingDataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/FillingDataStatisticAction.java=UTF-8
-encoding//src/com/runzhixing/action/FillingMachineInfoAction.java=UTF-8
-encoding//src/com/runzhixing/action/HiddenCityAction.java=UTF-8
-encoding//src/com/runzhixing/action/InfoviewAction.java=UTF-8
-encoding//src/com/runzhixing/action/InspectiondataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/JQJStationAction.java=UTF-8
-encoding//src/com/runzhixing/action/KaoqinDateStatistAction.java=UTF-8
-encoding//src/com/runzhixing/action/KaoqingQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/ModifiedDataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/ModifyCompanyformAction.java=UTF-8
-encoding//src/com/runzhixing/action/ModifyStationInfoCheckAction.java=UTF-8
-encoding//src/com/runzhixing/action/ModifyWorkPersonInfoCheckAction.java=UTF-8
-encoding//src/com/runzhixing/action/NonlocalQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/PersonnelInspectionAction.java=UTF-8
-encoding//src/com/runzhixing/action/PlacemanagementAction.java=UTF-8
-encoding//src/com/runzhixing/action/ProvinceAction.java=UTF-8
-encoding//src/com/runzhixing/action/SafeexitAction.java=UTF-8
-encoding//src/com/runzhixing/action/SpeStationAction.java=UTF-8
-encoding//src/com/runzhixing/action/SpecialIntoAction.java=UTF-8
-encoding//src/com/runzhixing/action/SpecialequipmentdataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/StationAction.java=UTF-8
-encoding//src/com/runzhixing/action/SupervisormanagementAction.java=UTF-8
-encoding//src/com/runzhixing/action/SystemWarninglogAction.java=UTF-8
-encoding//src/com/runzhixing/action/TagIssuingfromAction.java=UTF-8
-encoding//src/com/runzhixing/action/TagdataStatisAction.java=UTF-8
-encoding//src/com/runzhixing/action/TestingStationInfoCheckAction.java=UTF-8
-encoding//src/com/runzhixing/action/TestingdataQueryAction.java=UTF-8
-encoding//src/com/runzhixing/action/TodayModifyAction.java=UTF-8
-encoding//src/com/runzhixing/action/UnitAction.java=UTF-8
-encoding//src/com/runzhixing/action/WarningparasetAction.java=UTF-8
-encoding//src/com/runzhixing/action/WorkPersonInfoAction.java=UTF-8
-encoding//src/com/runzhixing/db/DBAccess.java=UTF-8
-encoding//src/com/runzhixing/filter/XssHttpServletRequestWrapperNew.java=UTF-8
-encoding//src/com/runzhixing/servlet/NxLoginServlet.java=UTF-8
-encoding/<project>=UTF-8
+eclipse.preferences.version=1
+encoding//WebRoot/jsp/carpublic.jsp=UTF-8
+encoding//WebRoot/jsp/rzx/alterPWD.jsp=UTF-8
+encoding//WebRoot/jsp/rzx/dataStatistics1/FillingdataStatistics.jsp=UTF-8
+encoding//src/com/runzhixing/action/AeratedmachinerunningstateAction.java=UTF-8
+encoding//src/com/runzhixing/action/AlterPasswordAction.java=UTF-8
+encoding//src/com/runzhixing/action/BlackListQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/CNGQualityIntoAction.java=UTF-8
+encoding//src/com/runzhixing/action/CNGQualityQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/CNGStationAction.java=UTF-8
+encoding//src/com/runzhixing/action/CNGStationTranInfoAction.java=UTF-8
+encoding//src/com/runzhixing/action/CarAuditAction.java=UTF-8
+encoding//src/com/runzhixing/action/CarDataStatisticsAction.java=UTF-8
+encoding//src/com/runzhixing/action/CarsDataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/CheckAnnounformmentAction.java=UTF-8
+encoding//src/com/runzhixing/action/CheckSeedataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/CheckStationAction.java=UTF-8
+encoding//src/com/runzhixing/action/CheckStationInfoAction.java=UTF-8
+encoding//src/com/runzhixing/action/CylinderDataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/CylinderDataQueryagainAction.java=UTF-8
+encoding//src/com/runzhixing/action/CylinderDataStatisticsAction.java=UTF-8
+encoding//src/com/runzhixing/action/CylinderGuidAction.java=UTF-8
+encoding//src/com/runzhixing/action/FillingDataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/FillingDataStatisticAction.java=UTF-8
+encoding//src/com/runzhixing/action/FillingMachineInfoAction.java=UTF-8
+encoding//src/com/runzhixing/action/HiddenCityAction.java=UTF-8
+encoding//src/com/runzhixing/action/InfoviewAction.java=UTF-8
+encoding//src/com/runzhixing/action/InspectiondataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/JQJStationAction.java=UTF-8
+encoding//src/com/runzhixing/action/KaoqinDateStatistAction.java=UTF-8
+encoding//src/com/runzhixing/action/KaoqingQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/ModifiedDataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/ModifyCompanyformAction.java=UTF-8
+encoding//src/com/runzhixing/action/ModifyStationInfoCheckAction.java=UTF-8
+encoding//src/com/runzhixing/action/ModifyWorkPersonInfoCheckAction.java=UTF-8
+encoding//src/com/runzhixing/action/NonlocalQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/PersonnelInspectionAction.java=UTF-8
+encoding//src/com/runzhixing/action/PlacemanagementAction.java=UTF-8
+encoding//src/com/runzhixing/action/ProvinceAction.java=UTF-8
+encoding//src/com/runzhixing/action/SafeexitAction.java=UTF-8
+encoding//src/com/runzhixing/action/SpeStationAction.java=UTF-8
+encoding//src/com/runzhixing/action/SpecialIntoAction.java=UTF-8
+encoding//src/com/runzhixing/action/SpecialequipmentdataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/StationAction.java=UTF-8
+encoding//src/com/runzhixing/action/SupervisormanagementAction.java=UTF-8
+encoding//src/com/runzhixing/action/SystemWarninglogAction.java=UTF-8
+encoding//src/com/runzhixing/action/TagIssuingfromAction.java=UTF-8
+encoding//src/com/runzhixing/action/TagdataStatisAction.java=UTF-8
+encoding//src/com/runzhixing/action/TestingStationInfoCheckAction.java=UTF-8
+encoding//src/com/runzhixing/action/TestingdataQueryAction.java=UTF-8
+encoding//src/com/runzhixing/action/TodayModifyAction.java=UTF-8
+encoding//src/com/runzhixing/action/UnitAction.java=UTF-8
+encoding//src/com/runzhixing/action/WarningparasetAction.java=UTF-8
+encoding//src/com/runzhixing/action/WorkPersonInfoAction.java=UTF-8
+encoding//src/com/runzhixing/config/config.properties=UTF-8
+encoding//src/com/runzhixing/db/DBAccess.java=UTF-8
+encoding//src/com/runzhixing/filter/XssHttpServletRequestWrapperNew.java=UTF-8
+encoding//src/com/runzhixing/servlet/NxLoginServlet.java=UTF-8
+encoding//src/com/runzhixing/servlet/NxLoginServlet2.java=UTF-8
+encoding//src/com/runzhixing/servlet/SSOLoginServlet.java=UTF-8
+encoding/<project>=UTF-8

+ 8 - 1
.settings/org.eclipse.wst.common.component

@@ -1,9 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+        
     <wb-module deploy-name="cng">
+                
         <wb-resource deploy-path="/" source-path="/WebRoot" tag="defaultRootSource"/>
+                
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+                
         <property name="java-output-path" value="/cng/WebRoot/WEB-INF/classes"/>
+                
         <property name="me-merge-utility-modules" value="true"/>
-        <property name="context-root" value="/cngningxia2"/>
+        <property name="context-root" value="/"/>
+            
     </wb-module>
+    
 </project-modules>

BIN
WebRoot/WEB-INF/lib/httpclient-4.2.2.jar


BIN
WebRoot/WEB-INF/lib/httpcore-4.2.2.jar


+ 196 - 176
WebRoot/WEB-INF/web.xml

@@ -1,177 +1,197 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
-  <welcome-file-list>
-    <welcome-file>jsp/login/loginre.jsp</welcome-file>
-  </welcome-file-list>
-  <servlet>
-    <servlet-name>nxloginServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.NxLoginServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>nxloginServlet</servlet-name>
-    <url-pattern>/nxlogin.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>loginServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.LoginServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>loginServlet</servlet-name>
-    <url-pattern>/loginServlet.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>loginByMobile</servlet-name>
-    <servlet-class>com.runzhixing.servlet.LoginByMobileServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>loginByMobile</servlet-name>
-    <url-pattern>/loginByMobile.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>appGetCylinderInfo</servlet-name>
-    <servlet-class>com.runzhixing.servlet.AppGetCylinderInfoServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>appGetCylinderInfo</servlet-name>
-    <url-pattern>/appGetCylinderInfo.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>getCheckInfoServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.GetCheckInfoServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>getCheckInfoServlet</servlet-name>
-    <url-pattern>/getcheckinfo.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>getCheckInfoServlet2</servlet-name>
-    <servlet-class>com.runzhixing.servlet.GetCheckInfoServlet2</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>getCheckInfoServlet2</servlet-name>
-    <url-pattern>/getcheckinfo2.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>appServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.AppServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>appServlet</servlet-name>
-    <url-pattern>/appgetkey.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>alterServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.AlterServlet</servlet-class>
-  </servlet>
-  <servlet>
-    <description>This is the description of my J2EE component</description>
-    <display-name>This is the display name of my J2EE component</display-name>
-    <servlet-name>LoginByMobileServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.LoginByMobileServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>alterServlet</servlet-name>
-    <url-pattern>/appalterPwd.do</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>LoginByMobileServlet</servlet-name>
-    <url-pattern>/servlet/LoginByMobileServlet</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>saveFilesServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.SaveFilesServletServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>saveFilesServlet</servlet-name>
-    <url-pattern>/saveFiles.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>exportServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.ExportServlet</servlet-class>
-  </servlet>
-  <servlet>
-    <description>This is the description of my J2EE component</description>
-    <display-name>This is the display name of my J2EE component</display-name>
-    <servlet-name>ExcelExportServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.ExcelExportServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>exportServlet</servlet-name>
-    <url-pattern>/servlet/exportServlet.do</url-pattern>
-  </servlet-mapping>
-  <servlet>
-    <servlet-name>exportServlet1</servlet-name>
-    <servlet-class>com.runzhixing.servlet.ExportServlet1</servlet-class>
-  </servlet>
-  <servlet>
-    <servlet-name>FillDataServlet</servlet-name>
-    <servlet-class>com.runzhixing.servlet.FillDataServlet</servlet-class>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>exportServlet1</servlet-name>
-    <url-pattern>/servlet/exportServlet1.do</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>ExcelExportServlet</servlet-name>
-    <url-pattern>/servlet/ExcelExportServlet.do</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>FillDataServlet</servlet-name>
-    <url-pattern>/api/get_fill_data.do</url-pattern>
-  </servlet-mapping>
-  <filter>
-    <filter-name>firstfilter</filter-name>
-    <filter-class>com.runzhixing.filter.MyFilter</filter-class>
-    <init-param>
-      <param-name>charset</param-name>
-      <param-value>UTF-8</param-value>
-    </init-param>
-    <init-param>
-      <param-name>Loginpaths</param-name>
-      <param-value>jsp/login/login.jsp;jsp/login/loginType.jsp;.png;.jpg;.css;.js;.gif;login/validateLogin;.do;getcheckinfo.do;.txt;nxlogin.do;nx/nxlogin;api/get_fill_data;</param-value>
-    </init-param>
-  </filter>
-  <filter-mapping>
-    <filter-name>firstfilter</filter-name>
-    <url-pattern>/*</url-pattern>
-  </filter-mapping>
-  <filter>
-    <filter-name>struts2</filter-name>
-    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
-    <init-param>
-      <param-name>config</param-name>
-      <param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
-    </init-param>
-  </filter>
-  <filter-mapping>
-    <filter-name>struts2</filter-name>
-    <url-pattern>/*</url-pattern>
-  </filter-mapping>
-  <session-config>
-    <session-timeout>5</session-timeout>
-  </session-config>
-  <listener>
-    <listener-class>com.runzhixing.tool.SessionListener</listener-class>
-  </listener>
-  <error-page>
-    <error-code>404</error-code>
-    <location>/jsp/fail/404.jsp</location>
-  </error-page>
-  <error-page>
-    <error-code>500</error-code>
-    <location>/jsp/login/loginre.jsp</location>
-  </error-page>
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>fortune</web-resource-name>
-      <url-pattern>/*</url-pattern>
-      <http-method>PUT</http-method>
-      <http-method>DELETE</http-method>
-      <http-method>HEAD</http-method>
-      <http-method>OPTIONS</http-method>
-      <http-method>TRACE</http-method>
-    </web-resource-collection>
-    <auth-constraint/>
-  </security-constraint>
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
+  <welcome-file-list>
+    <welcome-file>jsp/login/loginre.jsp</welcome-file>
+  </welcome-file-list>
+  <servlet>
+    <servlet-name>nxloginServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.NxLoginServlet</servlet-class>
+  </servlet>
+  <!-- 宁夏一体化平台对接 -->
+  <servlet-mapping>
+    <servlet-name>nxloginServlet</servlet-name>
+    <url-pattern>/nxlogin.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>nxloginServlet2</servlet-name>
+    <servlet-class>com.runzhixing.servlet.NxLoginServlet2</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>nxloginServlet2</servlet-name>
+    <url-pattern>/lclogin.do</url-pattern>
+  </servlet-mapping>
+  
+  <!-- 宁夏一体化平台对接单点登录 -->
+  <servlet>
+    <servlet-name>ssoLoginServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.SSOLoginServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>ssoLoginServlet</servlet-name>
+    <url-pattern>/ssologin.do</url-pattern>
+  </servlet-mapping>
+  
+  <servlet>
+    <servlet-name>loginServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.LoginServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>loginServlet</servlet-name>
+    <url-pattern>/loginServlet.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>loginByMobile</servlet-name>
+    <servlet-class>com.runzhixing.servlet.LoginByMobileServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>loginByMobile</servlet-name>
+    <url-pattern>/loginByMobile.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>appGetCylinderInfo</servlet-name>
+    <servlet-class>com.runzhixing.servlet.AppGetCylinderInfoServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>appGetCylinderInfo</servlet-name>
+    <url-pattern>/appGetCylinderInfo.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>getCheckInfoServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.GetCheckInfoServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>getCheckInfoServlet</servlet-name>
+    <url-pattern>/getcheckinfo.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>getCheckInfoServlet2</servlet-name>
+    <servlet-class>com.runzhixing.servlet.GetCheckInfoServlet2</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>getCheckInfoServlet2</servlet-name>
+    <url-pattern>/getcheckinfo2.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>appServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.AppServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>appServlet</servlet-name>
+    <url-pattern>/appgetkey.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>alterServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.AlterServlet</servlet-class>
+  </servlet>
+  <servlet>
+    <description>This is the description of my J2EE component</description>
+    <display-name>This is the display name of my J2EE component</display-name>
+    <servlet-name>LoginByMobileServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.LoginByMobileServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>alterServlet</servlet-name>
+    <url-pattern>/appalterPwd.do</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>LoginByMobileServlet</servlet-name>
+    <url-pattern>/servlet/LoginByMobileServlet</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>saveFilesServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.SaveFilesServletServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>saveFilesServlet</servlet-name>
+    <url-pattern>/saveFiles.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>exportServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.ExportServlet</servlet-class>
+  </servlet>
+  <servlet>
+    <description>This is the description of my J2EE component</description>
+    <display-name>This is the display name of my J2EE component</display-name>
+    <servlet-name>ExcelExportServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.ExcelExportServlet</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>exportServlet</servlet-name>
+    <url-pattern>/servlet/exportServlet.do</url-pattern>
+  </servlet-mapping>
+  <servlet>
+    <servlet-name>exportServlet1</servlet-name>
+    <servlet-class>com.runzhixing.servlet.ExportServlet1</servlet-class>
+  </servlet>
+  <servlet>
+    <servlet-name>FillDataServlet</servlet-name>
+    <servlet-class>com.runzhixing.servlet.FillDataServlet</servlet-class>
+  </servlet>
+
+  <servlet-mapping>
+    <servlet-name>exportServlet1</servlet-name>
+    <url-pattern>/servlet/exportServlet1.do</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>ExcelExportServlet</servlet-name>
+    <url-pattern>/servlet/ExcelExportServlet.do</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>FillDataServlet</servlet-name>
+    <url-pattern>/api/get_fill_data.do</url-pattern>
+  </servlet-mapping>
+  <filter>
+    <filter-name>firstfilter</filter-name>
+    <filter-class>com.runzhixing.filter.MyFilter</filter-class>
+    <init-param>
+      <param-name>charset</param-name>
+      <param-value>UTF-8</param-value>
+    </init-param>
+    <init-param>
+      <param-name>Loginpaths</param-name>
+      <param-value>jsp/login/login.jsp;jsp/login/loginType.jsp;.png;.jpg;.css;.js;.gif;login/validateLogin;.do;getcheckinfo.do;.txt;nxlogin.do;nx/nxlogin;api/get_fill_data;</param-value>
+    </init-param>
+  </filter>
+  <filter-mapping>
+    <filter-name>firstfilter</filter-name>
+    <url-pattern>/*</url-pattern>
+  </filter-mapping>
+  <filter>
+    <filter-name>struts2</filter-name>
+    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
+    <init-param>
+      <param-name>config</param-name>
+      <param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
+    </init-param>
+  </filter>
+  <filter-mapping>
+    <filter-name>struts2</filter-name>
+    <url-pattern>/*</url-pattern>
+  </filter-mapping>
+  <session-config>
+    <session-timeout>5</session-timeout>
+  </session-config>
+  <listener>
+    <listener-class>com.runzhixing.tool.SessionListener</listener-class>
+  </listener>
+  <error-page>
+    <error-code>404</error-code>
+    <location>/jsp/fail/404.jsp</location>
+  </error-page>
+  <error-page>
+    <error-code>500</error-code>
+    <location>/jsp/login/loginre.jsp</location>
+  </error-page>
+  <security-constraint>
+    <web-resource-collection>
+      <web-resource-name>fortune</web-resource-name>
+      <url-pattern>/*</url-pattern>
+      <http-method>PUT</http-method>
+      <http-method>DELETE</http-method>
+      <http-method>HEAD</http-method>
+      <http-method>OPTIONS</http-method>
+      <http-method>TRACE</http-method>
+    </web-resource-collection>
+    <auth-constraint/>
+  </security-constraint>
 </web-app>

+ 1 - 1
WebRoot/jsp/rzx/dataStatistics/Copy of reportFormOld.jsp

@@ -735,7 +735,7 @@ String authRegionName = (String)request.getSession().getAttribute("authRegionNam
   		</div>
   		
   		<div id="downloadpdfdiv" style="display: none; padding-top: 20px;">
-  			<a class="easyui-linkbutton" target="_blank" icon="icon-export" href="./pdf/CNG_LNG_REPORT.pdf">下载PDF</a>
+  			<a class="easyui-linkbutton" target="_blank" icon="icon-export" href="./statistics/pdf/CNG_LNG_REPORT.pdf">下载PDF</a>
   		</div>
   	</div>
   	<center>

+ 1 - 1
WebRoot/jsp/rzx/dataStatistics/reportForm.jsp

@@ -774,7 +774,7 @@ String authRegionName = (String)request.getSession().getAttribute("authRegionNam
   		</div>
   		
   		<div id="downloadpdfdiv" style="display: none; padding-top: 20px;">
-  			<a class="easyui-linkbutton" target="_blank" icon="icon-export" href="./pdf/CNG_LNG_REPORT.pdf">下载PDF</a>
+  			<a class="easyui-linkbutton" target="_blank" icon="icon-export" href="./statistics/pdf/CNG_LNG_REPORT.pdf">下载PDF</a>
   		</div>
   	</div>
   	<center>

+ 9 - 9
src/com/runzhixing/action/ThirdInterfaceAction.java

@@ -6,6 +6,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.StringReader;
@@ -1928,8 +1929,10 @@ public class ThirdInterfaceAction extends ActionSupport implements ModelDriven<C
 //		ServletOutputStream out = res.getOutputStream();
 		ServletOutputStream out =null;
 		 
-		String templatePath = req.getSession().getServletContext().getRealPath("");  
-        String imgPath =templatePath+"\\statistics\\statistics"+"_"+filename+".png";
+//		String templatePath = req.getSession().getServletContext().getRealPath("");  
+//        String imgPath =templatePath+"\\statistics\\statistics"+"_"+filename+".png";
+        String imgPath =MyFilter.statisticsPath+"\\statistics"+"_"+filename+".png";
+        
         OutputStream ostream = new FileOutputStream(imgPath);
         if (null != type && null != svg) {  
             svg = svg.replaceAll(":rect", "rect");  
@@ -1960,9 +1963,6 @@ public class ThirdInterfaceAction extends ActionSupport implements ModelDriven<C
                     out.print("Problem transcoding stream. See the web logs for more details.");  
                     e.printStackTrace();  
                 }  
-               
-                
-                
             } else if (ext.equals("svg")) {  
             //  out.print(svg);  
                 OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");  
@@ -2019,13 +2019,13 @@ public class ThirdInterfaceAction extends ActionSupport implements ModelDriven<C
 		
 		
 		String imgPath = request.getSession().getServletContext().getRealPath(""); 
-		
-		String pdfPath = imgPath+"\\pdf\\CNG_LNG_REPORT.pdf";
 		BaseFont baseFont = PdfUtils1.getBaseFont1(imgPath);
-		imgPath +="\\statistics";
+		
+		String pdfPath = MyFilter.statisticsPath+"\\pdf\\CNG_LNG_REPORT.pdf";
+//		imgPath +="\\statistics";
 		try {
 			PdfUtils1.generateReportPdf(new File(pdfPath),authRegionName,startDate,endDate,totalDay,registerCngCar,registerCngCylinder,
-					registerLngCar,registerLngCylinder,inUseCngCar,inUseCngCylinder,inUseLngCar,inUseLngCylinder,checkedCylinderPercent,inUseCylinderPercent,registerRefitPlant,registerInspectionStation,registerGasStation,gasStationNetworkInfoList,imgPath,baseFont);
+					registerLngCar,registerLngCylinder,inUseCngCar,inUseCngCylinder,inUseLngCar,inUseLngCylinder,checkedCylinderPercent,inUseCylinderPercent,registerRefitPlant,registerInspectionStation,registerGasStation,gasStationNetworkInfoList,MyFilter.statisticsPath,baseFont);
 			map.put("status", 1);
 		} catch (Exception e1) {
 			e1.printStackTrace();

+ 26 - 18
src/com/runzhixing/config/config.properties

@@ -1,18 +1,26 @@
-driver=oracle.jdbc.OracleDriver
-#url=jdbc:oracle:thin:@//61.188.37.164:3355/SCJGQPBQ
-url=jdbc:oracle:thin:@//192.168.1.8:1521/cng
-username=cngdba
-password=temp1234
-whitelist=localhost;127.0.0.1;218.95.174.32;nx.cngrfid.com;111.51.123.243;
-company=\u56DB\u5DDD\u6DA6\u667A\u5174\u79D1\u6280\u6709\u9650\u516C\u53F8
-unified_login_baseUrl=http://111.50.160.216:8083/
-unified_login_redirectUrl=https://nx.cngrfid.com/cng3/nxlogin.do
-unified_login_clientId=c7fc1aabd7ad415899c0f10afacfbdef
-unified_login_clientSecret=0f7a8e70922f15f6d4e2e7ee38f71012cc89cfde
-#气瓶质量安全追溯系统
-man_prefix=气瓶质量安全追溯系统
-#0为没有信息发布,1为有信息发布
-info_publish=0
-
-
-
+driver=oracle.jdbc.OracleDriver
+url=jdbc:oracle:thin:@//61.188.37.164:3355/SCJGQPBQ
+#url=jdbc:oracle:thin:@//192.168.1.8:1521/cng
+username=cngdba
+#password=temp1234
+password=nxBot*5087
+whitelist=localhost;127.0.0.1;218.95.174.32;nx.cngrfid.com;111.51.123.243;v488052s50.vicp.fun;
+company=\u56DB\u5DDD\u6DA6\u667A\u5174\u79D1\u6280\u6709\u9650\u516C\u53F8
+unified_login_baseUrl=http://111.50.160.216:8083/
+unified_login_redirectUrl=https://nx.cngrfid.com/cng3/nxlogin.do
+unified_login_clientId=c7fc1aabd7ad415899c0f10afacfbdef
+unified_login_clientSecret=0f7a8e70922f15f6d4e2e7ee38f71012cc89cfde
+#气瓶质量安全追溯系统
+man_prefix=气瓶质量安全追溯系统
+#0为没有信息发布,1为有信息发布
+info_publish=0
+
+
+#
+#integration_login_baseUrl=http://172.29.7.12:8000/
+integration_login_baseUrl=http://10.229.7.117:3344/
+integration_login_redirectUrl=http://172.29.3.5:6009/cng2/lclogin.do
+integration_login_clientId=qpzlaqzs
+integration_login_clientSecret=5ebae3ab1ab44af2a7b02dd5b8a2da80
+
+statistics_path=D://statistics

+ 325 - 312
src/com/runzhixing/filter/MyFilter.java

@@ -1,312 +1,325 @@
-package com.runzhixing.filter;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Properties;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import com.runzhixing.constant.Constant;
-import com.runzhixing.dao.QueryDao;
-import com.runzhixing.exception.BsException;
-import com.runzhixing.filter.XssHttpServletRequestWrapperNew;
-import com.runzhixing.tool.MySqlImportAndExport;
-import com.runzhixing.tool.PropertiesUtil;
-import com.runzhixing.tool.Tool;
-
-/**
- * 
- * @author 判断是否登陆和编码
- *
- */
-public class MyFilter implements Filter {
-	private FilterConfig config;
-	public static  String whitelist="";
-	public static  String specialUser="";
-	public static  String saveImgPath="";
-	
-	public static  String baseUrl="";
-	public static  String redirectUri="";
-	public static  String ClientId="";
-	public static  String ClientSecret="";
-	public static String man_prefix="";
-	
-	public static String info_publish="0";
-	public void destroy() {
-
-	}
-
-	public void doFilter(ServletRequest request, ServletResponse response,
-			FilterChain chain) throws IOException, ServletException {
-		HttpServletRequest req = (HttpServletRequest) request;
-		HttpServletResponse res = (HttpServletResponse) response;
-		req.setCharacterEncoding("UTF-8");
-		res.setContentType("text/html;charset=UTF-8");//编码
-		res.setHeader( "Set-Cookie", "name=value; HttpOnly");  
-		res.addHeader("x-frame-options","SAMEORIGIN"); 
-		
-		
-		res.setHeader("Access-Control-Allow-Origin","*");
-		res.setHeader("Access-Control-Allow-Credentials", "true");
-		res.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
-		res.setHeader("Access-Control-Max-Age", "3600");
-		res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
-		String reqUri1 = req.getRequestURI();
-		String contentType = req.getContentType();
-		if(contentType != null&& contentType.contains("multipart/form-data") && !contentType.startsWith("multipart/form-data") ){
-			res.getWriter().write("Reject!"); 
-			return;
-		}
-		if(checkWhiteList(request.getServerName(),whitelist)){
-			res.setHeader( "Set-Cookie", "name=value; HttpOnly");  
-			HttpSession session = req.getSession();
-			String specialUser = (String)session.getAttribute("specialUser");
-			
-			String charset = config.getInitParameter("charset");
-			String sessionTimeOut = config.getInitParameter("sessionTimeOut");
-			if(sessionTimeOut==null){
-				sessionTimeOut = "60";
-			}
-			String loginpaths = config.getInitParameter("Loginpaths");
-			if(charset == null){
-				charset = "UTF-8";
-			}
-			//设置请求编码UTF-8
-			req.setCharacterEncoding(charset);
-			
-			if(reqUri1.contains("redirect:")||reqUri1.contains("action:")||reqUri1.contains("redirectAction:")
-					||
-					reqUri1.contains("redirect%3A")||reqUri1.contains("action%3A")||reqUri1.contains("redirectAction%3A")){
-					res.sendRedirect("jsp/login/loginre.jsp");
-					return;  
-				}
-			String path = req.getContextPath();
-			String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
-			 
-			if(reqUri1.contains("jsp/fail/timeOut.jsp")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			if(reqUri1.contains("wx/")||reqUri1.contains("wxCert/")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			if(reqUri1.contains("CNG_LNG_REPORT.pdf")){
-				res.setContentType("application/pdf;charset=UTF-8");//编码
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			String openid = (String)req.getSession().getAttribute("openid");
-			if(reqUri1.contains("jsp/commonInput.jsp")||reqUri1.contains("ajax/getVCode")||reqUri1.contains("ajax/testVCode")
-			||reqUri1.equals("peoplePage.jsp")||reqUri1.contains("applyRegister.jsp")||reqUri1.contains("ajax/getCarCylinderInfo")
-			||reqUri1.contains("ajax/getRedirect")||reqUri1.contains("wxLogin")||reqUri1.contains("cngningxia")||reqUri1.contains("saveFiles.do")
-			||reqUri1.contains("ajax/updateNickName")||reqUri1.contains("ajax/insertWXID")||reqUri1.contains("ajax/getAppTypeInfo")||reqUri1.contains("ajax/getCityInfo")
-			||reqUri1.contains("ajax/getCountryInfo")||reqUri1.contains("ajax/getUnitInfo")||reqUri1.contains("ajax/getCarPlateColorInfo")||reqUri1.contains("ajax/getCarTypeInfo")
-			||reqUri1.contains("ajax/getCarInfo_1")||reqUri1.contains("ajax/CRUDCarInfo")||reqUri1.contains("ajax/getProductInfo")||reqUri1.contains("ajax/getInstallTypeInfo")	
-			||reqUri1.contains("ajax/getInstallLocInfo")||reqUri1.contains("ajax/getRegister")
-			||reqUri1.contains("ajax/wx_Login")||reqUri1.contains("ajax/examineAll")||reqUri1.contains("applyRegister1.jsp")
-			){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			if(!Tool.isNullOrEmpty(openid)){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			if(reqUri1.contains("jsp/login/loginre.jsp")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				Constant.loginint=0;
-				return;
-			}
-			if(reqUri1.equals("/cng/")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				Constant.loginint=0;
-				return;
-			}
-			
-			if(reqUri1.contains("jsp/login/login.jsp")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				Constant.loginint=0;
-				return;
-			}
-			
-			if(reqUri1.contains("downloadapp.html")||reqUri1.contains("useCert.html")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			
-			if(reqUri1.contains("loginServlet.do")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				Constant.loginint=0;
-				return;
-			}
-			if(reqUri1.contains("SylogReCylinderdataQuery.jsp")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			if(reqUri1.contains("SylogCylinderdataQuery.jsp")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			if(reqUri1.contains("getcheckinfo2.do")||reqUri1.contains("getcheckinfo.do")||reqUri1.contains("appGetCylinderInfo.do")||reqUri1.contains("appgetkey.do")||reqUri1.contains("/appServlet")){
-				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-				return;
-			}
-			
-			
-			if(loginpaths!=null){
-				String[] strArray = loginpaths.split(";");
-			
-					
-					String username = (String)session.getAttribute(Constant.userName);
-					username = Constant.storageSession;
-					if(username != null&&!username.equals("")){//session未注销
-						try {
-							if(specialUser!=null&&!specialUser.trim().equals("")&&specialUser.equals("1")){
-								String reqUri = req.getRequestURI();
-								for (int i = 0; i < strArray.length; i++) {
-									if(strArray[i]==null || "".equals(strArray[i]))continue;
-									if(reqUri.indexOf(strArray[i]) !=-1 || reqUri.equals("/cng/")){
-										try {
-											chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-											return;
-										} catch (Exception e) {
-											e.printStackTrace();
-											res.sendRedirect("jsp/login/loginre.jsp");
-											return; 
-										}
-										
-									}
-								}
-								
-								if(reqUri1.contains("modifiedDataQuery")
-										||reqUri1.contains("hiddenCity")
-										||reqUri1.contains("hiddenspeStation")
-										||reqUri1.contains("modifiedDataQuery")
-										||reqUri1.contains("machineDetail")
-										||reqUri1.contains("carsDataQueryagain")
-										||reqUri1.contains("CylinderFollow")
-										||reqUri1.contains("cylinderFollow")
-										){
-									chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-									return;
-								}
-								
-								
-							}else{
-								chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-								return;
-							}
-							
-							
-						} catch (Exception e) {
-							 if(e instanceof BsException){//如果是你定义的业务异常  
-					                request.setAttribute("BsException", e);//存储业务异常信息类  
-					                res.sendRedirect("jsp/login/loginre.jsp");
-									return;  
-					            }else{
-					            	res.sendRedirect("jsp/login/loginre.jsp");
-									return;  
-					            }
-						}
-						
-					}else{//session已注销或者根本就没有登陆
-						if(Constant.loginint==0){//没有登陆
-						String reqUri = req.getRequestURI();
-						for (int i = 0; i < strArray.length; i++) {
-							if(strArray[i]==null || "".equals(strArray[i]))continue;
-							if(reqUri.indexOf(strArray[i]) !=-1 || reqUri.equals("/cng/")){
-								try {
-									chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
-									return;
-								} catch (Exception e) {
-									e.printStackTrace();
-									res.sendRedirect("jsp/login/loginre.jsp");
-									return; 
-								}
-								
-							}
-						}
-						}else if(Constant.loginint==1){//已登陆但session已注销
-							try {
-								res.sendRedirect(basePath+"jsp/fail/timeOut.jsp?sessionTimeOut="+sessionTimeOut);
-//								res.sendRedirect("jsp/fail/timeOut.jsp?sessionTimeOut="+sessionTimeOut);
-								return;
-							} catch (Exception e) {
-								if(e instanceof BsException){//如果是你定义的业务异常  
-					                request.setAttribute("BsException", e);//存储业务异常信息类  
-					                res.sendRedirect("jsp/login/loginre.jsp");
-									return;  
-					            }else{
-					            	res.sendRedirect("jsp/login/loginre.jsp");
-									return;  
-					            }
-							}
-						}
-						
-					}
-					res.sendRedirect("jsp/login/loginre.jsp");
-					return;
-				}
-		}else{  
-            System.out.println("[host deny access tips]->"+request.getServerName());  
-            response.getWriter().print("host deny");  
-            response.flushBuffer();  
-        }
-		
-		
-		
-		
-	}
-
-	public void init(FilterConfig filterConfig) throws ServletException {
-		this.config = filterConfig;
-		InputStream is = MySqlImportAndExport.class.getClassLoader().getResourceAsStream("com/runzhixing/config/config.properties");
-		
-		try {
-			BufferedReader bf = new BufferedReader(new  InputStreamReader(is,"UTF-8"));//解决读取properties文件中产生中文乱码的问题
-			Properties properties = new Properties();
-	  		properties.load(bf);
-	  		whitelist= properties.getProperty("whitelist");
-			specialUser = properties.getProperty("specialUser");
-			String paramID="1";
-			saveImgPath = new QueryDao().getImgPath(paramID);
-//			saveImgPath ="C:\\tomcat\\Tomcat 8.5\\webapps\\cngningxia2";
-			baseUrl=properties.getProperty("unified_login_baseUrl");
-			redirectUri=properties.getProperty("unified_login_redirectUrl");
-			ClientId=properties.getProperty("unified_login_clientId");
-			ClientSecret=properties.getProperty("unified_login_clientSecret");
-			man_prefix = properties.getProperty("man_prefix");
-			info_publish = properties.getProperty("info_publish");
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		
-		
-	}
-	private boolean checkWhiteList(String host,String whitelist){  
-		if(whitelist!=null&&!whitelist.trim().equals("")){
-			String[] wlist = whitelist.split(";");
-			if(wlist!=null&&wlist.length>0){
-				for(int i=0;i<wlist.length;i++){
-					if(wlist[i]!=null&&!wlist[i].equals("")&&host.contains(wlist[i])){
-						return true;
-					}
-				}
-			}
-		}
-		return false;
-    }  
-}
+package com.runzhixing.filter;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Properties;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import com.runzhixing.constant.Constant;
+import com.runzhixing.dao.QueryDao;
+import com.runzhixing.exception.BsException;
+import com.runzhixing.filter.XssHttpServletRequestWrapperNew;
+import com.runzhixing.tool.MySqlImportAndExport;
+import com.runzhixing.tool.PropertiesUtil;
+import com.runzhixing.tool.Tool;
+
+/**
+ * 
+ * @author 判断是否登陆和编码
+ *
+ */
+public class MyFilter implements Filter {
+	private FilterConfig config;
+	public static  String whitelist="";
+	public static  String specialUser="";
+	public static  String saveImgPath="";
+	
+	public static  String statisticsPath="";
+	
+	public static  String baseUrl="";
+	public static  String redirectUri="";
+	public static  String ClientId="";
+	public static  String ClientSecret="";
+	
+	public static  String baseUrl2="";
+	public static  String redirectUri2="";
+	public static  String ClientId2="";
+	public static  String ClientSecret2="";
+	public static String man_prefix="";
+	
+	public static String info_publish="0";
+	public void destroy() {
+
+	}
+
+	public void doFilter(ServletRequest request, ServletResponse response,
+			FilterChain chain) throws IOException, ServletException {
+		HttpServletRequest req = (HttpServletRequest) request;
+		HttpServletResponse res = (HttpServletResponse) response;
+		req.setCharacterEncoding("UTF-8");
+		res.setContentType("text/html;charset=UTF-8");//编码
+		res.setHeader( "Set-Cookie", "name=value; HttpOnly");  
+		res.addHeader("x-frame-options","SAMEORIGIN"); 
+		
+		
+		res.setHeader("Access-Control-Allow-Origin","*");
+		res.setHeader("Access-Control-Allow-Credentials", "true");
+		res.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
+		res.setHeader("Access-Control-Max-Age", "3600");
+		res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
+		String reqUri1 = req.getRequestURI();
+		String contentType = req.getContentType();
+		if(contentType != null&& contentType.contains("multipart/form-data") && !contentType.startsWith("multipart/form-data") ){
+			res.getWriter().write("Reject!"); 
+			return;
+		}
+		if(checkWhiteList(request.getServerName(),whitelist)){
+			res.setHeader( "Set-Cookie", "name=value; HttpOnly");  
+			HttpSession session = req.getSession();
+			String specialUser = (String)session.getAttribute("specialUser");
+			
+			String charset = config.getInitParameter("charset");
+			String sessionTimeOut = config.getInitParameter("sessionTimeOut");
+			if(sessionTimeOut==null){
+				sessionTimeOut = "60";
+			}
+			String loginpaths = config.getInitParameter("Loginpaths");
+			if(charset == null){
+				charset = "UTF-8";
+			}
+			//设置请求编码UTF-8
+			req.setCharacterEncoding(charset);
+			
+			if(reqUri1.contains("redirect:")||reqUri1.contains("action:")||reqUri1.contains("redirectAction:")
+					||
+					reqUri1.contains("redirect%3A")||reqUri1.contains("action%3A")||reqUri1.contains("redirectAction%3A")){
+					res.sendRedirect("jsp/login/loginre.jsp");
+					return;  
+				}
+			String path = req.getContextPath();
+			String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+			 
+			if(reqUri1.contains("jsp/fail/timeOut.jsp")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			if(reqUri1.contains("wx/")||reqUri1.contains("wxCert/")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			if(reqUri1.contains("CNG_LNG_REPORT.pdf")){
+				res.setContentType("application/pdf;charset=UTF-8");//编码
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			String openid = (String)req.getSession().getAttribute("openid");
+			if(reqUri1.contains("jsp/commonInput.jsp")||reqUri1.contains("ajax/getVCode")||reqUri1.contains("ajax/testVCode")
+			||reqUri1.equals("peoplePage.jsp")||reqUri1.contains("applyRegister.jsp")||reqUri1.contains("ajax/getCarCylinderInfo")
+			||reqUri1.contains("ajax/getRedirect")||reqUri1.contains("wxLogin")||reqUri1.contains("cngningxia")||reqUri1.contains("saveFiles.do")
+			||reqUri1.contains("ajax/updateNickName")||reqUri1.contains("ajax/insertWXID")||reqUri1.contains("ajax/getAppTypeInfo")||reqUri1.contains("ajax/getCityInfo")
+			||reqUri1.contains("ajax/getCountryInfo")||reqUri1.contains("ajax/getUnitInfo")||reqUri1.contains("ajax/getCarPlateColorInfo")||reqUri1.contains("ajax/getCarTypeInfo")
+			||reqUri1.contains("ajax/getCarInfo_1")||reqUri1.contains("ajax/CRUDCarInfo")||reqUri1.contains("ajax/getProductInfo")||reqUri1.contains("ajax/getInstallTypeInfo")	
+			||reqUri1.contains("ajax/getInstallLocInfo")||reqUri1.contains("ajax/getRegister")
+			||reqUri1.contains("ajax/wx_Login")||reqUri1.contains("ajax/examineAll")||reqUri1.contains("applyRegister1.jsp")
+			){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			if(!Tool.isNullOrEmpty(openid)){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			if(reqUri1.contains("jsp/login/loginre.jsp")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				Constant.loginint=0;
+				return;
+			}
+			if(reqUri1.equals("/cng/")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				Constant.loginint=0;
+				return;
+			}
+			
+			if(reqUri1.contains("jsp/login/login.jsp")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				Constant.loginint=0;
+				return;
+			}
+			
+			if(reqUri1.contains("downloadapp.html")||reqUri1.contains("useCert.html")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			
+			if(reqUri1.contains("loginServlet.do")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				Constant.loginint=0;
+				return;
+			}
+			if(reqUri1.contains("SylogReCylinderdataQuery.jsp")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			if(reqUri1.contains("SylogCylinderdataQuery.jsp")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			if(reqUri1.contains("getcheckinfo2.do")||reqUri1.contains("getcheckinfo.do")||reqUri1.contains("appGetCylinderInfo.do")||reqUri1.contains("appgetkey.do")||reqUri1.contains("/appServlet")){
+				chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+				return;
+			}
+			
+			
+			if(loginpaths!=null){
+				String[] strArray = loginpaths.split(";");
+			
+					
+					String username = (String)session.getAttribute(Constant.userName);
+					username = Constant.storageSession;
+					if(username != null&&!username.equals("")){//session未注销
+						try {
+							if(specialUser!=null&&!specialUser.trim().equals("")&&specialUser.equals("1")){
+								String reqUri = req.getRequestURI();
+								for (int i = 0; i < strArray.length; i++) {
+									if(strArray[i]==null || "".equals(strArray[i]))continue;
+									if(reqUri.indexOf(strArray[i]) !=-1 || reqUri.equals("/cng/")){
+										try {
+											chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+											return;
+										} catch (Exception e) {
+											e.printStackTrace();
+											res.sendRedirect("jsp/login/loginre.jsp");
+											return; 
+										}
+										
+									}
+								}
+								
+								if(reqUri1.contains("modifiedDataQuery")
+										||reqUri1.contains("hiddenCity")
+										||reqUri1.contains("hiddenspeStation")
+										||reqUri1.contains("modifiedDataQuery")
+										||reqUri1.contains("machineDetail")
+										||reqUri1.contains("carsDataQueryagain")
+										||reqUri1.contains("CylinderFollow")
+										||reqUri1.contains("cylinderFollow")
+										){
+									chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+									return;
+								}
+								
+								
+							}else{
+								chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+								return;
+							}
+							
+							
+						} catch (Exception e) {
+							 if(e instanceof BsException){//如果是你定义的业务异常  
+					                request.setAttribute("BsException", e);//存储业务异常信息类  
+					                res.sendRedirect("jsp/login/loginre.jsp");
+									return;  
+					            }else{
+					            	res.sendRedirect("jsp/login/loginre.jsp");
+									return;  
+					            }
+						}
+						
+					}else{//session已注销或者根本就没有登陆
+						if(Constant.loginint==0){//没有登陆
+						String reqUri = req.getRequestURI();
+						for (int i = 0; i < strArray.length; i++) {
+							if(strArray[i]==null || "".equals(strArray[i]))continue;
+							if(reqUri.indexOf(strArray[i]) !=-1 || reqUri.equals("/cng/")){
+								try {
+									chain.doFilter(new XssHttpServletRequestWrapperNew((HttpServletRequest) request), res);
+									return;
+								} catch (Exception e) {
+									e.printStackTrace();
+									res.sendRedirect("jsp/login/loginre.jsp");
+									return; 
+								}
+								
+							}
+						}
+						}else if(Constant.loginint==1){//已登陆但session已注销
+							try {
+								res.sendRedirect(basePath+"jsp/fail/timeOut.jsp?sessionTimeOut="+sessionTimeOut);
+//								res.sendRedirect("jsp/fail/timeOut.jsp?sessionTimeOut="+sessionTimeOut);
+								return;
+							} catch (Exception e) {
+								if(e instanceof BsException){//如果是你定义的业务异常  
+					                request.setAttribute("BsException", e);//存储业务异常信息类  
+					                res.sendRedirect("jsp/login/loginre.jsp");
+									return;  
+					            }else{
+					            	res.sendRedirect("jsp/login/loginre.jsp");
+									return;  
+					            }
+							}
+						}
+						
+					}
+					res.sendRedirect("jsp/login/loginre.jsp");
+					return;
+				}
+		}else{  
+            System.out.println("[host deny access tips]->"+request.getServerName());  
+            response.getWriter().print("host deny");  
+            response.flushBuffer();  
+        }
+		
+		
+		
+		
+	}
+
+	public void init(FilterConfig filterConfig) throws ServletException {
+		this.config = filterConfig;
+		InputStream is = MySqlImportAndExport.class.getClassLoader().getResourceAsStream("com/runzhixing/config/config.properties");
+		
+		try {
+			BufferedReader bf = new BufferedReader(new  InputStreamReader(is,"UTF-8"));//解决读取properties文件中产生中文乱码的问题
+			Properties properties = new Properties();
+	  		properties.load(bf);
+	  		whitelist= properties.getProperty("whitelist");
+			specialUser = properties.getProperty("specialUser");
+			String paramID="1";
+			saveImgPath = new QueryDao().getImgPath(paramID);
+			statisticsPath = properties.getProperty("statistics_path");
+//			saveImgPath ="C:\\tomcat\\Tomcat 8.5\\webapps\\cngningxia2";
+			baseUrl=properties.getProperty("unified_login_baseUrl");
+			redirectUri=properties.getProperty("unified_login_redirectUrl");
+			ClientId=properties.getProperty("unified_login_clientId");
+			ClientSecret=properties.getProperty("unified_login_clientSecret");
+			
+			baseUrl2=properties.getProperty("integration_login_baseUrl");
+			redirectUri2=properties.getProperty("integration_login_redirectUrl");
+			ClientId2=properties.getProperty("integration_login_clientId");
+			ClientSecret2=properties.getProperty("integration_login_clientSecret");
+			man_prefix = properties.getProperty("man_prefix");
+			info_publish = properties.getProperty("info_publish");
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		
+		
+	}
+	private boolean checkWhiteList(String host,String whitelist){  
+		if(whitelist!=null&&!whitelist.trim().equals("")){
+			String[] wlist = whitelist.split(";");
+			if(wlist!=null&&wlist.length>0){
+				for(int i=0;i<wlist.length;i++){
+					if(wlist[i]!=null&&!wlist[i].equals("")&&host.contains(wlist[i])){
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+    }  
+}

+ 326 - 0
src/com/runzhixing/servlet/NxLoginServlet2.java

@@ -0,0 +1,326 @@
+package com.runzhixing.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+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.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.runzhixing.bean.AuthorityRegionPlace;
+import com.runzhixing.bean.CityPlace;
+import com.runzhixing.bean.CountryPlace;
+import com.runzhixing.bean.PreferEntry;
+import com.runzhixing.bean.User;
+import com.runzhixing.constant.Constant;
+import com.runzhixing.dao.QueryDao;
+import com.runzhixing.dao.ThirdInterfaceDao;
+import com.runzhixing.filter.MyFilter;
+import com.runzhixing.packageProcedure.GetWarningparaProcedure;
+import com.runzhixing.packageProcedure.LoginProcedure;
+import com.runzhixing.packageProcedure.UserAuthProcedure;
+import com.runzhixing.service.AuthorityRegionService;
+import com.runzhixing.tool.AuthHttpClientUtil;
+import com.runzhixing.tool.JsonUtil;
+import com.runzhixing.tool.Security;
+import com.runzhixing.tool.Tool;
+import com.runzhixing.tool.Util;
+import com.runzhixing.tool.ValidateDate;
+import com.runzhixing.util.bean.QueryParamImpl;
+
+
+public class NxLoginServlet2 extends HttpServlet {
+	
+    
+	private static final long serialVersionUID = -3540392300909783672L;
+	
+	private final Log logger = LogFactory.getLog(NxLoginServlet2.class);
+
+
+	public void doGet(HttpServletRequest request, HttpServletResponse response)
+			throws ServletException, IOException {
+		String code = request.getParameter("code");
+		 System.out.println("code=" + code);
+		if(!Tool.isNullOrEmpty(code)){
+			Login(code, request, response);
+		}else{
+			Map<String,Object> map=new HashMap<String, Object>();
+			response.setCharacterEncoding("utf-8");
+			response.setContentType("text/html;charset=utf-8");
+			map.put("code", 400);
+			map.put("msg", "参数为空");
+			JsonUtil.outjson(map, response, null, JsonUtil.df, "");
+		}
+	}
+	
+	
+	private void Login(String _code,HttpServletRequest request, HttpServletResponse response) {
+		try {
+			String lc_token = (String) request.getSession().getAttribute("lc_token");
+			if (!Tool.isNullOrEmpty(lc_token) && AuthHttpClientUtil.checkToken2(lc_token)) {
+				User user = (User) request.getSession().getAttribute(Constant.userMark);
+				if (user != null && !Tool.isNullOrEmpty(user.getUserName())) {
+					loginService(request, response,user.getUserName(),AuthHttpClientUtil.getDefalutPwd(),"1");
+					return;
+				}
+			}
+			//根据code获取token
+			Map<String, Object> map = AuthHttpClientUtil.GetTokenByCode2(_code, request, response);
+			if (ObjectUtils.isEmpty(map)) {
+				return;
+			}
+			String accessToken = (String) map.get("access_token");
+			if (StringUtils.isEmpty(accessToken)) {
+				return;
+			}
+			if (!AuthHttpClientUtil.checkToken2(accessToken)) {
+				String state = request.getParameter("state");
+				AuthHttpClientUtil.redirectToAuthorize(request, response, state);
+				return;
+			}
+			Integer expires_in = (Integer) map.get("expires_in");
+			if (expires_in < 60 ) {
+				String refreshToken = (String) map.get("refresh_token");
+				Map<String, Object> refreshMap = AuthHttpClientUtil.refreshToken2(refreshToken);
+				if (ObjectUtils.isEmpty(refreshMap) || refreshMap.get("access_token") == null) {
+					return;
+				}
+				accessToken = (String) refreshMap.get("access_token");
+			}
+			if (StringUtils.isEmpty(accessToken)) {
+				return;
+			}
+			String openid = (String) map.get("openid");
+            System.out.println("openid:"+openid);
+            String bindUserId = (String) map.get("bindUserId");
+//            String bindUserId = "20市监局";//TODO
+            logger.info("bindUserId:"+bindUserId);
+            //登录业务系统
+            request.getSession().setAttribute("lc_token", accessToken);
+            loginService(request, response,bindUserId,AuthHttpClientUtil.getDefalutPwd(),"1");
+		} catch (Exception e) {
+			logger.error("宁夏浪潮一体化系统访问业务系统异常:",e);
+		}
+	}
+	
+
+	public void doPost(HttpServletRequest request, HttpServletResponse response)
+			throws ServletException, IOException {
+		response.setContentType("text/html");
+		PrintWriter out = response.getWriter();
+		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
+		out.println("<HTML>");
+		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
+		out.println("  <BODY>");
+		out.print("    This is ");
+		out.print(this.getClass());
+		out.println(", using the POST method");
+		out.println("  </BODY>");
+		out.println("</HTML>");
+		out.flush();
+		out.close();
+	}
+
+	
+	@SuppressWarnings("unchecked")
+	public void loginService(HttpServletRequest req, HttpServletResponse res,String u,String p,String modal)
+			throws ServletException, IOException {
+		int hiddencarInput = 0;
+		int hiddencarAuth = 0;
+		String errinfo ="用户名或密码错误";
+		HttpSession session = req.getSession();
+		User user = new User();
+		String result = "";
+		req.setCharacterEncoding("UTF-8");
+		if(!Util.isNumeric(modal)){
+			req.getRequestDispatcher("jsp/fail/loginfail.jsp").forward(req, res);
+			return;
+		}
+		String ua= req.getHeader("User-Agent");
+		ValidateDate vd = new ValidateDate();
+		if((vd.validateNull(u)&&vd.validateNull(p))){
+			user = new LoginProcedure().loginNx(u, Security.md5(p), modal);
+			result = user.getLoginInfo().trim();
+			if(result.equals(Constant.loginResult)&&user.isValidUser()){
+				int hiddenphone=new UserAuthProcedure().getUserAuth(user.getUserOperatorNo(), 1, 1, 1, 9);
+				String stationNo = new QueryDao().getStationNo(user.getUserOperatorNo());
+				req.getSession().setAttribute("stationNo", stationNo);
+				req.getSession().setAttribute("modal", modal);
+				req.getSession().setAttribute("hiddenphone", hiddenphone+"");
+				req.getSession().setAttribute("sOperatorNo", user.getUserOperatorNo()+"");
+				req.getSession().setAttribute("PrivilegeCode", user.getPrivilegeCode()+"");
+				req.getSession().setAttribute("PrivilegeCode1", user.getPrivilegeCode()+"");
+				try{
+					hiddencarInput=new UserAuthProcedure().getUserAuth(user.getUserOperatorNo(), 1, 1, 1, 11);//网上车辆数据录入
+				}catch(Exception e){
+					e.printStackTrace();
+					hiddencarInput = 0;
+				}
+				req.getSession().setAttribute("hiddencarInput", hiddencarInput+"");
+				try{
+					hiddencarAuth=new UserAuthProcedure().getUserAuth(user.getUserOperatorNo(), 1, 1, 1, 12);//网上车辆数据审核
+				}catch(Exception e){
+					e.printStackTrace();
+					hiddencarAuth = 0;
+				}
+				req.getSession().setAttribute("hiddencarAuth", hiddencarAuth+"");
+			}
+		}else if(!vd.validateNull(u)){
+			session.removeAttribute("rCode");
+			session.setAttribute("failMess", "用户名不能为空");
+			req.getRequestDispatcher("jsp/fail/loginfail.jsp").forward(req, res);
+			return;
+		}else if(!vd.validateNull(p)){
+			session.removeAttribute("rCode");
+			session.setAttribute("failMess", "密码不能为空");
+			req.getRequestDispatcher("jsp/fail/loginfail.jsp").forward(req, res);
+			return;
+		}else{
+			session.removeAttribute("rCode");
+			session.setAttribute("failMess", "出现异常");
+			req.getRequestDispatcher("jsp/fail/loginfail.jsp").forward(req, res);
+			return;
+		}
+		if(result.equals(Constant.loginResult)&&user.isValidUser()){
+			session.setAttribute(Constant.userName, u);
+			if(Tool.pwdRules(p)<4){//瀵嗙爜寮哄害寮�
+				session.setAttribute(Constant.moudel, modal);// 淇濆瓨鐢ㄦ埛鍒皊ession
+				req.getRequestDispatcher("jsp/rzx/alterPWD.jsp").forward(req, res);
+				return;
+			}
+			Constant.storageSession = u;
+			Constant.sessionId = session.getId();
+			session.setAttribute(Constant.Privilege, user.getPrivilegeCode());
+			if(!Tool.isNullOrEmpty(user.getPriCode())){
+				String auth = user.getPriCode();
+				if(auth.length()>6){
+					auth = auth.substring(0,6);
+				}
+				String authRegionName = ThirdInterfaceDao.getAuthRegionName(auth);
+				session.setAttribute("authRegionName", authRegionName);
+			}
+			
+			List<AuthorityRegionPlace> authorityRegionPlacelist = new AuthorityRegionService().authorityRegion(user.getPriCode());
+			user.setPrivilegePlaces1(authorityRegionPlacelist);
+			
+			for( AuthorityRegionPlace a:authorityRegionPlacelist){
+				List<CityPlace> clist = new ArrayList<CityPlace>();	
+				clist = a.getCityPlace();
+				for(CityPlace c:clist){
+					List<CountryPlace> sList = new ArrayList<CountryPlace>();
+					sList =c.getSubPlaceList();
+					for(CountryPlace cp:sList){
+						System.out.println(c.getId()+":"+c.getName()+"-------"+cp.getId()+":"+cp.getName());
+					}
+				}
+			}
+			
+			int module=user.getModule();
+			String privilegeCode=user.getPriCode();
+			QueryParamImpl param = new QueryParamImpl();
+			GetWarningparaProcedure getWarningparaProcedure= new GetWarningparaProcedure();
+			param.prepareQueryParam(module,privilegeCode, "");
+			param.set("paramNo", Constant.CarFillTimesWarning);
+			PreferEntry entry = getWarningparaProcedure.getwarningparaProcedure1(1, 1, module, privilegeCode, "", Constant.CarFillTimesWarning);
+			user.setPrefer(Constant.CarFillTimesWarning, entry);
+			param.set("paramNo", Constant.CylinderPreWarningTime);
+			PreferEntry entry1 = getWarningparaProcedure.getwarningparaProcedure1(1, 1, module, privilegeCode, "", Constant.CylinderPreWarningTime);
+			user.setPrefer(Constant.CylinderPreWarningTime, entry1);
+			param.set("paramNo", Constant.NetworkDisconnectedTimeWarning);
+			PreferEntry entry2 = getWarningparaProcedure.getwarningparaProcedure1(1, 1, module, privilegeCode, "", Constant.NetworkDisconnectedTimeWarning);
+			user.setPrefer(Constant.NetworkDisconnectedTimeWarning, entry2);
+			param.set("paramNo", Constant.ForeignCarFillWarning);
+			PreferEntry entry3 = getWarningparaProcedure.getwarningparaProcedure1(1, 1, module, privilegeCode, "", Constant.ForeignCarFillWarning);
+			user.setPrefer(Constant.ForeignCarFillWarning, entry3);
+			session.setAttribute(Constant.userMark, user);
+			session.setAttribute(Constant.moudel, modal);
+			session.setAttribute("userOperatorNo", user.getUserOperatorNo());
+			session.setAttribute("selectProvice", privilegeCode.length()>2?privilegeCode.substring(0, 2):privilegeCode);
+			Constant.loginint=1;
+			Constant.loginint1=1;
+			String pc = privilegeCode;
+			String place = "权限空,未查询到权限区域";
+			if(pc!=null&&!pc.equals("")){
+				switch(pc.length()){
+					case 2: place = authorityRegionPlacelist.get(0).getName();break;
+					case 4: place = authorityRegionPlacelist.get(0).getCityPlace().get(0).getName();break;
+					case 6: place = authorityRegionPlacelist.get(0).getCityPlace().get(0).getSubPlaceList().get(0).getName();break;
+					default:place = "未知权限区域";break;
+				}
+			}
+			session.setAttribute("place", place);
+			Util uu=new Util();
+			Collections.sort((List<CityPlace>)authorityRegionPlacelist.get(0).getCityPlace(), uu);
+			if(Integer.parseInt(authorityRegionPlacelist.get(0).getCityPlace().get(0).getId())==0){
+				authorityRegionPlacelist.get(0).getCityPlace().get(0).setName("全部");
+			}
+			if(MyFilter.specialUser!=null&&!MyFilter.specialUser.trim().equals("")){
+				String[] s = MyFilter.specialUser.split(";");
+				for(int i=0;i<s.length;i++){
+					if(s[i]!=null&&!s[i].trim().equals("")&&s[i].equals(user.getUserOperatorNo())){
+						req.getRequestDispatcher("jsp/rzx/specialuserman.jsp").forward(req, res);
+						session.setAttribute("specialUser", "1");
+						return;
+					}
+				}
+			}
+			
+			String state = req.getParameter("state");
+			if (!Tool.isNullOrEmpty(state)) {
+				state=state.replaceAll("/", "/");
+				log("state:"+state);
+				session.setAttribute("games_lost", 0);
+				res.sendRedirect(state);
+				return;
+			}
+			
+			if(modal.equals("1")){//监管部门管理
+				if(hiddencarAuth!=2&&hiddencarInput==2){
+					req.getRequestDispatcher("jsp/rzx/bgman_carinput.jsp").forward(req, res);
+				}else if(hiddencarAuth==2&&hiddencarInput!=2){
+					req.getRequestDispatcher("jsp/rzx/bgman_carauth.jsp").forward(req, res);
+				}else if(hiddencarAuth==2&&hiddencarInput==2){
+					req.getRequestDispatcher("jsp/rzx/bgman_carinputauth.jsp").forward(req, res);
+				}else{
+					req.getRequestDispatcher("jsp/rzx/bgman.jsp").forward(req, res);
+				}
+				session.setAttribute("games_lost", 0);
+				return;
+			}else if(modal.equals("4")){//充装站
+				req.getRequestDispatcher("jsp/rzx/fillingbgman.jsp").forward(req, res);
+				return;
+			}else if(modal.equals("2")){//检验站
+				req.getRequestDispatcher("jsp/rzx/testingbgman.jsp").forward(req, res);
+				return;
+			}else if(modal.equals("3")){//改装厂
+				req.getRequestDispatcher("jsp/rzx/modifybgman.jsp").forward(req, res);
+				return;
+			}
+		}
+		Integer games_lost = (Integer) session.getAttribute("games_lost") == null?0:(Integer) session.getAttribute("games_lost");
+		if (games_lost != null && games_lost > 3) {
+			session.setAttribute("failMess", errinfo);
+			req.getRequestDispatcher("jsp/fail/loginfail.jsp").forward(req, res);
+			return;
+		}
+		games_lost++;
+		session.setAttribute("games_lost", games_lost);
+		String state = req.getParameter("state");
+		AuthHttpClientUtil.redirectToAuthorize(req, res, state);
+		return;
+	}
+
+    
+}

+ 59 - 0
src/com/runzhixing/servlet/SSOLoginServlet.java

@@ -0,0 +1,59 @@
+package com.runzhixing.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.runzhixing.tool.AuthHttpClientUtil;
+import com.runzhixing.tool.JsonUtil;
+import com.runzhixing.tool.Tool;
+
+
+public class SSOLoginServlet extends HttpServlet {
+
+	private static final long serialVersionUID = -882284019225266182L;
+
+	public void doGet(HttpServletRequest request, HttpServletResponse response)
+			throws ServletException, IOException {
+		String client_id = request.getParameter("client_id");
+		String client_secret = request.getParameter("client_secret");
+		 System.out.println("client_id=" + client_id);
+		 System.out.println("client_secret=" + client_secret);
+		if( !Tool.isNullOrEmpty(client_id) &&!Tool.isNullOrEmpty(client_secret) && AuthHttpClientUtil.getClientId().equals(client_id) && AuthHttpClientUtil.getClientSecret().equals(client_secret) ){
+			String state = request.getParameter("state");
+			System.out.println("state=" + state);
+			AuthHttpClientUtil.redirectToAuthorize(request, response, state);
+		}else{
+			Map<String,Object> map=new HashMap<String, Object>();
+			response.setCharacterEncoding("utf-8");
+			response.setContentType("text/html;charset=utf-8");
+			map.put("code", 400);
+			map.put("msg", "参数为空");
+			JsonUtil.outjson(map, response, null, JsonUtil.df, "");
+		}
+	}
+
+	public void doPost(HttpServletRequest request, HttpServletResponse response)
+			throws ServletException, IOException {
+		response.setContentType("text/html");
+		PrintWriter out = response.getWriter();
+		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
+		out.println("<HTML>");
+		out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
+		out.println("  <BODY>");
+		out.print("    This is ");
+		out.print(this.getClass());
+		out.println(", using the POST method");
+		out.println("  </BODY>");
+		out.println("</HTML>");
+		out.flush();
+		out.close();
+	}
+    
+}

+ 285 - 0
src/com/runzhixing/tool/AuthHttpClientUtil.java

@@ -0,0 +1,285 @@
+package com.runzhixing.tool;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.bind.DatatypeConverter;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.runzhixing.filter.MyFilter;
+
+public class AuthHttpClientUtil {
+
+	private static final String baseUrl = MyFilter.baseUrl2;
+
+    private static final String redirectUri = MyFilter.redirectUri2;
+    
+    // 服务端提供
+    private static String ClientId = MyFilter.ClientId2;
+    // 服务端提供
+    private static String ClientSecret = MyFilter.ClientSecret2;
+    
+    private static String defalutPwd = "nxLogin439623x123";
+    
+    private static final Log logger = LogFactory.getLog(AuthHttpClientUtil.class);
+    
+    public static String getClientId() {
+    	return ClientId;
+    }
+    
+    public static String getClientSecret() {
+    	return ClientSecret;
+    }
+    
+    public static String getDefalutPwd() {
+    	return defalutPwd;
+    }
+    
+    
+
+    /**
+     * 重定向到获取认证授权码的地址
+     */
+    public static void redirectToAuthorize(HttpServletRequest request, HttpServletResponse response, String state) throws IOException {
+    	String url = baseUrl+"auth/oauth/authorize"
+                + "?client_id=" + ClientId
+                + "&redirect_uri=" + redirectUri
+                + "&response_type=code"
+                + "&scope=trust"
+                + (StringUtils.isNotEmpty(state) ? ("&state=" + state) : "");
+    	url=url.replaceAll("/", "/");
+    	logger.info(url);
+        response.sendRedirect(url);
+    }
+	
+	  /**
+     * 申请token
+     * @param _code
+     * @param request
+     * @param response
+     * @return
+     */
+    public static Map<String, Object> GetTokenByCode2(String _code,HttpServletRequest request, HttpServletResponse response) {
+    	String AccessTokenUrl = baseUrl + "auth/oauth/token";
+    	String RedirectUri = redirectUri;
+    	Map<String, Object> retMap = null;
+    	HttpClient httpClient = null;
+        HttpPost httpPost = null;
+        try {
+            List<NameValuePair> pairs = new ArrayList<NameValuePair>();
+            pairs.add(new BasicNameValuePair("code", _code));
+            pairs.add(new BasicNameValuePair("grant_type", "authorization_code"));
+            pairs.add(new BasicNameValuePair("redirect_uri", RedirectUri));
+            
+            httpClient = new DefaultHttpClient();
+            httpPost = new HttpPost(AccessTokenUrl);
+            
+            httpPost.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
+            httpPost.setHeader("Authorization", "Basic " + DatatypeConverter.printBase64Binary((ClientId+":"+ClientSecret).getBytes("UTF-8")));
+
+            HttpResponse HttpResponse = httpClient.execute(httpPost);
+            HttpEntity entity = HttpResponse.getEntity();
+            if (entity == null) {
+            	logger.info("根据授权码获取令牌出错,请求返回结果为空");
+            } else {
+            	String retStr = EntityUtils.toString(entity, "UTF-8");
+            	try {
+                    retMap = JSONObject.parseObject(retStr);
+                    String accessToken = (String) retMap.get("access_token");
+                    if (Tool.isNullOrEmpty(accessToken)) {
+                        throw new Exception("根据授权码获取令牌出错,返回令牌为空");
+                    }
+                } catch (Exception e) {
+                	logger.error("根据授权码获取令牌出错,请求返回结果为:" + retStr,e);
+                }
+            }
+        } catch (Exception e) {
+        	logger.error("根据授权码获取令牌出错:",e);
+        } finally {
+            httpPost.abort(); // 终止本次请求
+//            httpPost.releaseConnection(); // 释放连接
+            httpClient.getConnectionManager().shutdown();
+        }
+        return retMap;
+    }
+	
+    
+    
+    
+    
+    /**
+     * 根据令牌获取一体化平台用户信息
+     *
+     * @param accessToken 令牌
+     * @return
+     */
+    @SuppressWarnings({ "unused", "unchecked" })
+    public static Map<String, Object> getUserInfoByToken(String accessToken,String userId) {
+    	String AccessTokenUrl = baseUrl + "bsp/service/userAndOrgan/queryOrganInfo";
+    	Map<String, Object> retMap = null;
+        HttpClient httpClient = null;
+        HttpPost httpPost = null;
+        try {
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+            dataMap.put("userId", userId);
+            httpClient = new DefaultHttpClient();
+
+            httpPost = new HttpPost(AccessTokenUrl);
+            StringEntity stringEntity = new StringEntity(JSONObject.toJSONString(dataMap), "UTF-8");
+            httpPost.setEntity(stringEntity);
+            httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
+            httpPost.setHeader("Authorization", "Bearer " + accessToken);
+
+            HttpResponse response = httpClient.execute(httpPost);
+            HttpEntity entity = response.getEntity();
+            if (entity == null) {
+                logger.error("根据令牌获取用户信息出错,请求返回结果为空");
+            } else {
+                String retStr = EntityUtils.toString(entity, "UTF-8");
+                try {
+                    retMap = JSONObject.parseObject(retStr);
+                    logger.info("retStr: " + retStr + " userId: "+ userId);
+                    Object codeO = retMap.get("code");
+                    if(codeO == null || (!"0".equals(codeO.toString()) && !"0.0".equals(codeO.toString()))) {
+                        throw new Exception("根据令牌获取用户信息出错");
+                    }
+                    retMap = (Map<String, Object>) retMap.get("data");
+                } catch (Exception e) {
+                    logger.error("根据令牌获取用户信息出错,请求返回结果为:" + retStr, e);
+                }
+            }
+        } catch (Exception e) {
+            logger.error("根据令牌获取用户信息出错", e);
+        } finally {
+            httpPost.abort();
+            httpClient.getConnectionManager().shutdown();
+        }
+        return retMap;
+    }
+	
+    /**
+     * 验证token的时效性
+     * access_token失效,一般有以下几种情形:
+	 * 1)超过有效期,获取access_token时会同时返回他的有效期,超过该有效期则失效。
+	 * 2)调用通过refresh_token获取access_token的接口,则上一个获取的access_token失效。
+	 * 3)用户注销会话退出登录,则access_token失效。
+     * @param token
+     * @return
+     */
+    public static boolean checkToken2(String token) {
+		String AccessTokenUrl = baseUrl + "auth/oauth/check_token";
+    	Map<String, Object> retMap = null;
+    	HttpClient httpClient = null;
+        HttpPost httpPost = null;
+        boolean is = false;
+        try {
+            List<NameValuePair> pairs = new ArrayList<NameValuePair>();
+            pairs.add(new BasicNameValuePair("token", token));
+            
+            httpClient = new DefaultHttpClient();
+            httpPost = new HttpPost(AccessTokenUrl);
+            
+            httpPost.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
+            httpPost.setHeader("Authorization", "Basic " + DatatypeConverter.printBase64Binary((ClientId+":"+ClientSecret).getBytes("UTF-8")));
+
+            HttpResponse HttpResponse = httpClient.execute(httpPost);
+            HttpEntity entity = HttpResponse.getEntity();
+            if (entity == null) {
+            	logger.info("验证token的时效性出错,请求返回结果为空");
+            } else {
+            	String retStr = EntityUtils.toString(entity, "UTF-8");
+            	try {
+                    retMap = JSONObject.parseObject(retStr);
+                    String error = (String) retMap.get("error");
+                    if (!Tool.isNullOrEmpty(error)) {
+                    	String error_description = (String) retMap.get("error_description");
+                       logger.error("验证token的时效性出错,错误信息为:"+error_description);
+                    }
+                    Boolean active = (Boolean) retMap.get("active");
+                    if (active != null && active) {
+                    	is = true;
+					}
+                } catch (Exception e) {
+                	logger.error("验证token的时效性出错,请求返回结果为:" + retStr,e);
+                }
+            }
+        } catch (Exception e) {
+        	logger.error("验证token的时效性:",e);
+        } finally {
+            httpPost.abort(); // 终止本次请求
+            httpClient.getConnectionManager().shutdown();
+        }
+		return is;
+	}
+    
+	
+	 
+    /**
+     * 更新token
+     * @param refreshToken 
+     */
+    public static  Map<String, Object> refreshToken2(String refreshToken) {
+        String AccessTokenUrl = baseUrl + "auth/oauth/token";
+    	Map<String, Object> retMap = null;
+    	HttpClient httpClient = null;
+        HttpPost httpPost = null;
+        try {
+            List<NameValuePair> pairs = new ArrayList<NameValuePair>();
+            pairs.add(new BasicNameValuePair("grant_type", "refresh_token"));
+            pairs.add(new BasicNameValuePair("refresh_token", refreshToken));
+            
+            httpClient = new DefaultHttpClient();
+            httpPost = new HttpPost(AccessTokenUrl);
+            
+            httpPost.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
+            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
+            httpPost.setHeader("Authorization", "Basic " + DatatypeConverter.printBase64Binary((ClientId+":"+ClientSecret).getBytes("UTF-8")));
+
+            HttpResponse HttpResponse = httpClient.execute(httpPost);
+            HttpEntity entity = HttpResponse.getEntity();
+            if (entity == null) {
+            	logger.info("根据授权刷新令牌出错,请求返回结果为空");
+            } else {
+            	String retStr = EntityUtils.toString(entity, "UTF-8");
+            	try {
+                    retMap = JSONObject.parseObject(retStr);
+                    String accessToken = (String) retMap.get("access_token");
+                    if (Tool.isNullOrEmpty(accessToken)) {
+                        throw new Exception("根据授权刷新令牌出错,返回令牌为空");
+                    }
+                } catch (Exception e) {
+                	logger.error("根据授权刷新令牌出错,请求返回结果为:" + retStr,e);
+                }
+            }
+        } catch (Exception e) {
+        	logger.error("根据授权刷新令牌出错:",e);
+        } finally {
+            httpPost.abort(); // 终止本次请求
+            httpClient.getConnectionManager().shutdown();
+        }
+        return retMap;
+	}
+   
+    
+}