최초커밋(일부)
parent
3bad0c22a9
commit
85a5f4cadc
@ -0,0 +1,547 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ICSMW</groupId>
|
||||
<artifactId>ICSMW</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.0.0</version>
|
||||
<name>ICSMW</name>
|
||||
<url>http://www.egovframe.go.kr</url>
|
||||
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The Apache Software License, Version 2.0</name>
|
||||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||
</license>
|
||||
</licenses>
|
||||
|
||||
<properties>
|
||||
<spring.maven.artifact.version>4.1.36.RELEASE</spring.maven.artifact.version>
|
||||
<egovframework.rte.version>3.8.0</egovframework.rte.version>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>mvn2</id>
|
||||
<url>http://repo1.maven.org/maven2/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>egovframe</id>
|
||||
<url>http://www.egovframe.go.kr/maven/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>egovframe2</id>
|
||||
<url>http://maven.egovframe.kr:8080/maven/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>egovframework.rte</groupId>
|
||||
<artifactId>egovframework.rte.ptl.mvc</artifactId>
|
||||
<version>${egovframework.rte.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>egovframework.rte</groupId>
|
||||
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
|
||||
<version>${egovframework.rte.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>egovframework.rte</groupId>
|
||||
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
|
||||
<version>${egovframework.rte.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>egovframework.rte</groupId>
|
||||
<artifactId>egovframework.rte.fdl.property</artifactId>
|
||||
<version>${egovframework.rte.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>egovframework.rte</groupId>
|
||||
<artifactId>egovframework.rte.fdl.string</artifactId>
|
||||
<version>${egovframework.rte.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
<version>2.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-dbcp</groupId>
|
||||
<artifactId>commons-dbcp</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>taglibs</groupId>
|
||||
<artifactId>standard</artifactId>
|
||||
<version>1.1.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cglib</groupId>
|
||||
<artifactId>cglib</artifactId>
|
||||
<version>3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr</artifactId>
|
||||
<version>3.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.8.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-collections4</artifactId>
|
||||
<version>4.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Apache HttpClient Mime -->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpmime</artifactId>
|
||||
<version>4.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>
|
||||
<groupId>org.hsqldb</groupId>
|
||||
<artifactId>hsqldb</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- tibero driver -->
|
||||
<dependency>
|
||||
<groupId>com.tmax.tibero</groupId>
|
||||
<artifactId>tibero-jdbc</artifactId>
|
||||
<version>6.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/tibero6-jdbc.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<!-- Hikari Connection Pool Test -->
|
||||
<dependency>
|
||||
<groupId>com.zaxxer</groupId>
|
||||
<artifactId>HikariCP</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-fileupload</groupId>
|
||||
<artifactId>commons-fileupload</artifactId>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet.jsp</groupId>
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<version>2.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.ibm.icu</groupId>
|
||||
<artifactId>icu4j</artifactId>
|
||||
<version>53.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.0.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>dom4j</groupId>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<version>1.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.googlecode.json-simple</groupId>
|
||||
<artifactId>json-simple</artifactId>
|
||||
<version>1.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sf.opencsv</groupId>
|
||||
<artifactId>opencsv</artifactId>
|
||||
<version>1.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlgraphics</groupId>
|
||||
<artifactId>fop</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>3.12</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>3.12</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-excelant</artifactId>
|
||||
<version>3.12</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-scratchpad</artifactId>
|
||||
<version>3.12</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlgraphics</groupId>
|
||||
<artifactId>batik-all</artifactId>
|
||||
<version>1.7</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/batik-all-1.7.1-20150510.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>batik</groupId>
|
||||
<artifactId>pdf-transcoder</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/pdf-transcoder-1.0beta2.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
<version>2.7.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xmlbeans</groupId>
|
||||
<artifactId>xbean_xpath</artifactId>
|
||||
<version>2.4.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/xmlbeans_xpath-2.4.0.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
<artifactId>xercesImpl</artifactId>
|
||||
<version>2.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xml-apis</groupId>
|
||||
<artifactId>xml-apis</artifactId>
|
||||
<version>1.4.01</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlbeans</groupId>
|
||||
<artifactId>xmlbeans</artifactId>
|
||||
<version>2.3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlbeans</groupId>
|
||||
<artifactId>xmlbeans-qname</artifactId>
|
||||
<version>2.3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlbeans</groupId>
|
||||
<artifactId>xmlbeans-xmlpublic</artifactId>
|
||||
<version>2.5.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- WebSquare 구동시 오류가 많이 발생함. 해당 라이브러리는 WAS 공통 라이브러리 등. 반드시 확인 -->
|
||||
<dependency>
|
||||
<groupId>xbean</groupId>
|
||||
<artifactId>xbean</artifactId>
|
||||
<version>2.5</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/xbean.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<!-- dependency for WebSquare //-->
|
||||
<dependency>
|
||||
<groupId>websquare</groupId>
|
||||
<artifactId>websquare</artifactId>
|
||||
<version>5.0_3.3643B</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/websquare_5.0_3.3643B.20190521.175836_1.5.jar
|
||||
</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.5.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>4.3.18.RELEASE</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator-annotation-processor</artifactId>
|
||||
<version>4.1.0.Final</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>NiceID</groupId>
|
||||
<artifactId>NiceID</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/NiceID.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>NiceID</groupId>
|
||||
<artifactId>CACheck</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/CACheck_custom.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>VNOInterop</groupId>
|
||||
<artifactId>KISINFO</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/VNOInterop_custom.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>eu.bitwalker</groupId>
|
||||
<artifactId>UserAgentUtils</artifactId>
|
||||
<version>1.21</version>
|
||||
</dependency>
|
||||
<!--Clipreport-->
|
||||
<dependency>
|
||||
<groupId>com.clipsoft</groupId>
|
||||
<artifactId>clipreport</artifactId>
|
||||
<version>4.0-1.0.0.217</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/ClipReport4.0-1.0.0.217.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.clipsoft</groupId>
|
||||
<artifactId>clipreport-Common</artifactId>
|
||||
<version>4.0</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/ClipReport4.0-Common.jar</systemPath>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/javax.media/jai_codec -->
|
||||
<dependency>
|
||||
<groupId>javax.media</groupId>
|
||||
<artifactId>jai_codec</artifactId>
|
||||
<version>1.1.3</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jai_codec-1.1.3.jar</systemPath>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/javax.media/jai_core -->
|
||||
<dependency>
|
||||
<groupId>javax.media</groupId>
|
||||
<artifactId>jai_core</artifactId>
|
||||
<version>1.1.3</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jai_core-1.1.3.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
<directory>${basedir}/target</directory>
|
||||
<finalName>ICSMW</finalName>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.tomcat.maven</groupId>
|
||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||
<version>2.2</version>
|
||||
<configuration>
|
||||
<port>80</port>
|
||||
<path>/</path>
|
||||
<systemProperties>
|
||||
<JAVA_OPTS>-Xms256m -Xmx768m -XX:MaxPermSize=256m</JAVA_OPTS>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>hibernate3-maven-plugin</artifactId>
|
||||
<version>2.1</version>
|
||||
<configuration>
|
||||
<components>
|
||||
<component>
|
||||
<name>hbm2ddl</name>
|
||||
<implementation>annotationconfiguration</implementation>
|
||||
</component>
|
||||
</components>
|
||||
</configuration>
|
||||
|
||||
</plugin>
|
||||
<!-- EMMA -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>emma-maven-plugin</artifactId>
|
||||
<version>1.0-alpha-3</version>
|
||||
</plugin>
|
||||
<!-- PMD manven plugin -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
<plugins>
|
||||
<!-- EMMA -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<skipTests>true</skipTests>
|
||||
<forkMode>once</forkMode>
|
||||
<reportFormat>xml</reportFormat>
|
||||
<excludes>
|
||||
<exclude>**/Abstract*.java</exclude>
|
||||
<exclude>**/*Suite.java</exclude>
|
||||
</excludes>
|
||||
<includes>
|
||||
<include>**/*Test.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>emma-maven-plugin</artifactId>
|
||||
<inherited>true</inherited>
|
||||
</plugin>
|
||||
<!-- JavaDoc -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>2.9.1</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<reporting>
|
||||
<outputDirectory>${basedir}/target/site</outputDirectory>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
<reportSets>
|
||||
<reportSet>
|
||||
<id>sunlink</id>
|
||||
<reports>
|
||||
<report>javadoc</report>
|
||||
</reports>
|
||||
<inherited>true</inherited>
|
||||
<configuration>
|
||||
<links>
|
||||
<link>http://docs.oracle.com/javase/6/docs/api/</link>
|
||||
</links>
|
||||
</configuration>
|
||||
</reportSet>
|
||||
</reportSets>
|
||||
</plugin>
|
||||
<!-- JUnit Test Results & EMMA Coverage Reporting -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>emma-maven-plugin</artifactId>
|
||||
<inherited>true</inherited>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>surefire-report-maven-plugin</artifactId>
|
||||
<inherited>true</inherited>
|
||||
<reportSets>
|
||||
<reportSet>
|
||||
<reports>
|
||||
<report>report-only</report>
|
||||
</reports>
|
||||
</reportSet>
|
||||
</reportSets>
|
||||
</plugin>
|
||||
<!-- Generating JavaDoc Report -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<minmemory>128m</minmemory>
|
||||
<maxmemory>512m</maxmemory>
|
||||
<encoding>${encoding}</encoding>
|
||||
<docencoding>${encoding}</docencoding>
|
||||
<charset>${encoding}</charset>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- Generating Java Source in HTML -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
<configuration>
|
||||
<inputEncoding>${encoding}</inputEncoding>
|
||||
<outputEncoding>${encoding}</outputEncoding>
|
||||
<linkJavadoc>true</linkJavadoc>
|
||||
<javadocDir>apidocs</javadocDir>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,110 @@
|
||||
package egovframework.com.cmm;
|
||||
/*
|
||||
* Copyright 2002-2005 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.jdbc.support.lob.LobCreator;
|
||||
import org.springframework.jdbc.support.lob.LobHandler;
|
||||
import egovframework.rte.psl.orm.ibatis.support.AbstractLobTypeHandler;
|
||||
|
||||
/**
|
||||
* iBATIS TypeHandler implementation for Strings that get mapped to CLOBs.
|
||||
* Retrieves the LobHandler to use from SqlMapClientFactoryBean at config time.
|
||||
*
|
||||
* <p>Particularly useful for storing Strings with more than 4000 characters in an
|
||||
* Oracle database (only possible via CLOBs), in combination with OracleLobHandler.
|
||||
*
|
||||
* <p>Can also be defined in generic iBATIS mappings, as DefaultLobCreator will
|
||||
* work with most JDBC-compliant database drivers. In this case, the field type
|
||||
* does not have to be BLOB: For databases like MySQL and MS SQL Server, any
|
||||
* large enough binary type will work.
|
||||
*
|
||||
* @author Juergen Hoeller
|
||||
* @since 1.1.5
|
||||
* @see org.springframework.orm.ibatis.SqlMapClientFactoryBean#setLobHandler
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public class AltibaseClobStringTypeHandler extends AbstractLobTypeHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AltibaseClobStringTypeHandler.class);
|
||||
|
||||
/**
|
||||
* Constructor used by iBATIS: fetches config-time LobHandler from
|
||||
* SqlMapClientFactoryBean.
|
||||
* @see org.springframework.orm.ibatis.SqlMapClientFactoryBean#getConfigTimeLobHandler
|
||||
*/
|
||||
public AltibaseClobStringTypeHandler() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor used for testing: takes an explicit LobHandler.
|
||||
*/
|
||||
protected AltibaseClobStringTypeHandler(LobHandler lobHandler) {
|
||||
super(lobHandler);
|
||||
}
|
||||
|
||||
protected void setParameterInternal(
|
||||
PreparedStatement ps, int index, Object value, String jdbcType, LobCreator lobCreator)
|
||||
throws SQLException {
|
||||
lobCreator.setClobAsString(ps, index, (String) value);
|
||||
}
|
||||
|
||||
|
||||
protected Object getResultInternal(ResultSet rs, int index, LobHandler lobHandler)
|
||||
throws SQLException {
|
||||
|
||||
StringBuffer read_data = new StringBuffer("");
|
||||
int read_length;
|
||||
|
||||
char [] buf = new char[1024];
|
||||
|
||||
Reader rd = lobHandler.getClobAsCharacterStream(rs, index);
|
||||
try {
|
||||
while( (read_length=rd.read(buf)) != -1) {
|
||||
read_data.append(buf, 0, read_length);
|
||||
}
|
||||
} catch (IOException ie) {
|
||||
LOGGER.debug("ie: {}", ie);//SQLException sqle = new SQLException(ie.getMessage());
|
||||
//throw sqle;
|
||||
// 2011.10.10 보안점검 후속조치
|
||||
} finally {
|
||||
if (rd != null) {
|
||||
try {
|
||||
rd.close();
|
||||
} catch (Exception ignore) {
|
||||
LOGGER.debug("IGNORE: {}", ignore.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return read_data.toString();
|
||||
|
||||
//return lobHandler.getClobAsString(rs, index);
|
||||
}
|
||||
|
||||
public Object valueOf(String s) {
|
||||
return s;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,189 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
|
||||
/**
|
||||
* 클래스
|
||||
* @author 공통서비스개발팀 이삼섭
|
||||
* @since 2009.06.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.3.11 이삼섭 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class ComDefaultCodeVO implements Serializable {
|
||||
/**
|
||||
* serialVersion UID
|
||||
*/
|
||||
private static final long serialVersionUID = -2020648489890016404L;
|
||||
|
||||
/** 코드 ID */
|
||||
private String codeId = "";
|
||||
|
||||
/** 상세코드 */
|
||||
private String code = "";
|
||||
|
||||
/** 코드명 */
|
||||
private String codeNm = "";
|
||||
|
||||
/** 코드설명 */
|
||||
private String codeDc = "";
|
||||
|
||||
/** 특정테이블명 */
|
||||
private String tableNm = ""; //특정테이블에서 코드정보를추출시 사용
|
||||
|
||||
/** 상세 조건 여부 */
|
||||
private String haveDetailCondition = "N";
|
||||
|
||||
/** 상세 조건 */
|
||||
private String detailCondition = "";
|
||||
|
||||
/**
|
||||
* codeId attribute를 리턴한다.
|
||||
*
|
||||
* @return the codeId
|
||||
*/
|
||||
public String getCodeId() {
|
||||
return codeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeId attribute 값을 설정한다.
|
||||
*
|
||||
* @param codeId
|
||||
* the codeId to set
|
||||
*/
|
||||
public void setCodeId(String codeId) {
|
||||
this.codeId = codeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* code attribute를 리턴한다.
|
||||
*
|
||||
* @return the code
|
||||
*/
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* code attribute 값을 설정한다.
|
||||
*
|
||||
* @param code
|
||||
* the code to set
|
||||
*/
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeNm attribute를 리턴한다.
|
||||
*
|
||||
* @return the codeNm
|
||||
*/
|
||||
public String getCodeNm() {
|
||||
return codeNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeNm attribute 값을 설정한다.
|
||||
*
|
||||
* @param codeNm
|
||||
* the codeNm to set
|
||||
*/
|
||||
public void setCodeNm(String codeNm) {
|
||||
this.codeNm = codeNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeDc attribute를 리턴한다.
|
||||
*
|
||||
* @return the codeDc
|
||||
*/
|
||||
public String getCodeDc() {
|
||||
return codeDc;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeDc attribute 값을 설정한다.
|
||||
*
|
||||
* @param codeDc
|
||||
* the codeDc to set
|
||||
*/
|
||||
public void setCodeDc(String codeDc) {
|
||||
this.codeDc = codeDc;
|
||||
}
|
||||
|
||||
/**
|
||||
* tableNm attribute를 리턴한다.
|
||||
*
|
||||
* @return the tableNm
|
||||
*/
|
||||
public String getTableNm() {
|
||||
return tableNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* tableNm attribute 값을 설정한다.
|
||||
*
|
||||
* @param tableNm
|
||||
* the tableNm to set
|
||||
*/
|
||||
public void setTableNm(String tableNm) {
|
||||
this.tableNm = tableNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* haveDetailCondition attribute를 리턴한다.
|
||||
*
|
||||
* @return the haveDetailCondition
|
||||
*/
|
||||
public String getHaveDetailCondition() {
|
||||
return haveDetailCondition;
|
||||
}
|
||||
|
||||
/**
|
||||
* haveDetailCondition attribute 값을 설정한다.
|
||||
*
|
||||
* @param haveDetailCondition
|
||||
* the haveDetailCondition to set
|
||||
*/
|
||||
public void setHaveDetailCondition(String haveDetailCondition) {
|
||||
this.haveDetailCondition = haveDetailCondition;
|
||||
}
|
||||
|
||||
/**
|
||||
* detailCondition attribute를 리턴한다.
|
||||
*
|
||||
* @return the detailCondition
|
||||
*/
|
||||
public String getDetailCondition() {
|
||||
return detailCondition;
|
||||
}
|
||||
|
||||
/**
|
||||
* detailCondition attribute 값을 설정한다.
|
||||
*
|
||||
* @param detailCondition
|
||||
* the detailCondition to set
|
||||
*/
|
||||
public void setDetailCondition(String detailCondition) {
|
||||
this.detailCondition = detailCondition;
|
||||
}
|
||||
|
||||
/**
|
||||
* toString 메소드를 대치한다.
|
||||
*/
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,167 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
|
||||
/**
|
||||
* @Class Name : ComDefaultVO.java
|
||||
* @Description : ComDefaultVO class
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2009.02.01 조재영 최초 생성
|
||||
*
|
||||
* @author 공통서비스 개발팀 조재영
|
||||
* @since 2009.02.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
public class ComDefaultVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 검색조건 */
|
||||
private String searchCondition = "";
|
||||
|
||||
/** 검색Keyword */
|
||||
private String searchKeyword = "";
|
||||
|
||||
/** 검색사용여부 */
|
||||
private String searchUseYn = "";
|
||||
|
||||
/** 현재페이지 */
|
||||
private int pageIndex = 1;
|
||||
|
||||
/** 페이지갯수 */
|
||||
private int pageUnit = 10;
|
||||
|
||||
/** 페이지사이즈 */
|
||||
private int pageSize = 10;
|
||||
|
||||
/** firstIndex */
|
||||
private int firstIndex = 1;
|
||||
|
||||
/** lastIndex */
|
||||
private int lastIndex = 1;
|
||||
|
||||
/** recordCountPerPage */
|
||||
private int recordCountPerPage = 10;
|
||||
|
||||
/** 검색KeywordFrom */
|
||||
private String searchKeywordFrom = "";
|
||||
|
||||
/** 검색KeywordTo */
|
||||
private String searchKeywordTo = "";
|
||||
|
||||
public int getFirstIndex() {
|
||||
return firstIndex;
|
||||
}
|
||||
|
||||
public void setFirstIndex(int firstIndex) {
|
||||
this.firstIndex = firstIndex;
|
||||
}
|
||||
|
||||
public int getLastIndex() {
|
||||
return lastIndex;
|
||||
}
|
||||
|
||||
public void setLastIndex(int lastIndex) {
|
||||
this.lastIndex = lastIndex;
|
||||
}
|
||||
|
||||
public int getRecordCountPerPage() {
|
||||
return recordCountPerPage;
|
||||
}
|
||||
|
||||
public void setRecordCountPerPage(int recordCountPerPage) {
|
||||
this.recordCountPerPage = recordCountPerPage;
|
||||
}
|
||||
|
||||
public String getSearchCondition() {
|
||||
return searchCondition;
|
||||
}
|
||||
|
||||
public void setSearchCondition(String searchCondition) {
|
||||
this.searchCondition = searchCondition;
|
||||
}
|
||||
|
||||
public String getSearchKeyword() {
|
||||
return searchKeyword;
|
||||
}
|
||||
|
||||
public void setSearchKeyword(String searchKeyword) {
|
||||
this.searchKeyword = searchKeyword;
|
||||
}
|
||||
|
||||
public String getSearchUseYn() {
|
||||
return searchUseYn;
|
||||
}
|
||||
|
||||
public void setSearchUseYn(String searchUseYn) {
|
||||
this.searchUseYn = searchUseYn;
|
||||
}
|
||||
|
||||
public int getPageIndex() {
|
||||
return pageIndex;
|
||||
}
|
||||
|
||||
public void setPageIndex(int pageIndex) {
|
||||
this.pageIndex = pageIndex;
|
||||
}
|
||||
|
||||
public int getPageUnit() {
|
||||
return pageUnit;
|
||||
}
|
||||
|
||||
public void setPageUnit(int pageUnit) {
|
||||
this.pageUnit = pageUnit;
|
||||
}
|
||||
|
||||
public int getPageSize() {
|
||||
return pageSize;
|
||||
}
|
||||
|
||||
public void setPageSize(int pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* searchKeywordFrom attribute를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getSearchKeywordFrom() {
|
||||
return searchKeywordFrom;
|
||||
}
|
||||
|
||||
/**
|
||||
* searchKeywordFrom attribute 값을 설정한다.
|
||||
* @param searchKeywordFrom String
|
||||
*/
|
||||
public void setSearchKeywordFrom(String searchKeywordFrom) {
|
||||
this.searchKeywordFrom = searchKeywordFrom;
|
||||
}
|
||||
|
||||
/**
|
||||
* searchKeywordTo attribute를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getSearchKeywordTo() {
|
||||
return searchKeywordTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* searchKeywordTo attribute 값을 설정한다.
|
||||
* @param searchKeywordTo String
|
||||
*/
|
||||
public void setSearchKeywordTo(String searchKeywordTo) {
|
||||
this.searchKeywordTo = searchKeywordTo;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,408 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
import javax.servlet.jsp.JspException;
|
||||
import javax.servlet.jsp.JspWriter;
|
||||
import javax.servlet.jsp.PageContext;
|
||||
import javax.servlet.jsp.tagext.BodyTagSupport;
|
||||
|
||||
import org.apache.taglibs.standard.tag.common.core.Util;
|
||||
|
||||
/**
|
||||
* Cross-Site Scripting 체크하여 값을 되돌려 받는 핸들러 JSP TLD, 자바에서 사용가능
|
||||
*
|
||||
* @author 공통서비스 장동한
|
||||
* @since 2010.11.09
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2010.11.09 장동한 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class EgovComCrossSiteHndlr extends BodyTagSupport {
|
||||
|
||||
/*
|
||||
* (One almost wishes XML and JSP could support "anonymous tags," given the
|
||||
* amount of trouble we had naming this one!) :-) - sb
|
||||
*/
|
||||
|
||||
// *********************************************************************
|
||||
// Internal state
|
||||
|
||||
private static final long serialVersionUID = -6750233818675360686L;
|
||||
protected Object value; // tag attribute
|
||||
protected String def; // tag attribute
|
||||
protected boolean escapeXml; // tag attribute
|
||||
private boolean needBody; // non-space body needed?
|
||||
|
||||
// *********************************************************************
|
||||
// Construction and initialization
|
||||
|
||||
private String m_sDiffChar ="()[]{}\"',:;= \t\r\n%!+-";
|
||||
//private String m_sDiffChar ="()[]{}\"',:;=%!+-";
|
||||
private String m_sArrDiffChar [] = {
|
||||
"(",")",
|
||||
"[","]",
|
||||
"{","}",
|
||||
""","'",
|
||||
",",":",
|
||||
";","=",
|
||||
" ","\t", //" ","\t",
|
||||
"\r","\n", //"\r","\n",
|
||||
"%","!",
|
||||
"+","-"
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructs a new handler. As with TagSupport, subclasses should not
|
||||
* provide other constructors and are expected to call the superclass
|
||||
* constructor.
|
||||
*/
|
||||
public EgovComCrossSiteHndlr() {
|
||||
super();
|
||||
init();
|
||||
}
|
||||
|
||||
// resets local state
|
||||
private void init() {
|
||||
value = def = null;
|
||||
escapeXml = true;
|
||||
needBody = false;
|
||||
}
|
||||
|
||||
// Releases any resources we may have (or inherit)
|
||||
@Override
|
||||
public void release() {
|
||||
super.release();
|
||||
init();
|
||||
}
|
||||
|
||||
// *********************************************************************
|
||||
// Tag logic
|
||||
|
||||
// evaluates 'value' and determines if the body should be evaluted
|
||||
@Override
|
||||
public int doStartTag() throws JspException {
|
||||
|
||||
needBody = false; // reset state related to 'default'
|
||||
this.bodyContent = null; // clean-up body (just in case container is
|
||||
// pooling tag handlers)
|
||||
|
||||
JspWriter out = pageContext.getOut();
|
||||
//System.out.println("EgovComCrossSiteFilter> ============================");
|
||||
try {
|
||||
// print value if available; otherwise, try 'default'
|
||||
if (value != null) {
|
||||
//System.out.println("EgovComCrossSiteFilter> =value");
|
||||
String sWriteEscapedXml = getWriteEscapedXml();
|
||||
//System.out.println("EgovComCrossSiteFilter sWriteEscapedXml>" + sWriteEscapedXml);
|
||||
out.print(sWriteEscapedXml);
|
||||
return SKIP_BODY;
|
||||
} else {
|
||||
// if we don't have a 'default' attribute, just go to the body
|
||||
if (def == null) {
|
||||
needBody = true;
|
||||
return EVAL_BODY_BUFFERED;
|
||||
}
|
||||
|
||||
//System.out.println("EgovComCrossSiteFilter def> ="+def);
|
||||
|
||||
// if we do have 'default', print it
|
||||
if (def != null) {
|
||||
// good 'default'
|
||||
out(pageContext, escapeXml, def);
|
||||
//System.out.println("EgovComCrossSiteFilter> ="+def);
|
||||
}
|
||||
return SKIP_BODY;
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
throw new JspException(ex.toString(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
// prints the body if necessary; reports errors
|
||||
@Override
|
||||
public int doEndTag() throws JspException {
|
||||
try {
|
||||
//System.out.println("EgovComCrossSiteFilter ==== doEndTag");
|
||||
if (!needBody){
|
||||
return EVAL_PAGE; // nothing more to do
|
||||
}
|
||||
|
||||
// trim and print out the body
|
||||
if (bodyContent != null && bodyContent.getString() != null){
|
||||
//String sWriteEscapedXml = getWriteEscapedXml();
|
||||
//out2(pageContext, escapeXml, sWriteEscapedXml.toString());
|
||||
//System.out.println("EgovComCrossSiteFilter> end");
|
||||
//System.out.println("EgovComCrossSiteFilter sWriteEscapedXml > sWriteEscapedXml");
|
||||
out(pageContext, escapeXml, bodyContent.getString().trim());
|
||||
|
||||
}
|
||||
return EVAL_PAGE;
|
||||
} catch (IOException ex) {
|
||||
throw new JspException(ex.toString(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
// *********************************************************************
|
||||
// Public utility methods
|
||||
|
||||
/**
|
||||
* Outputs <tt>text</tt> to <tt>pageContext</tt>'s current JspWriter. If
|
||||
* <tt>escapeXml</tt> is true, performs the following substring replacements
|
||||
* (to facilitate output to XML/HTML pages):
|
||||
*
|
||||
* & -> & < -> < > -> > " -> " ' -> '
|
||||
*
|
||||
* See also Util.escapeXml().
|
||||
*/
|
||||
public static void out(PageContext pageContext, boolean escapeXml,
|
||||
Object obj) throws IOException {
|
||||
JspWriter w = pageContext.getOut();
|
||||
|
||||
if (!escapeXml) {
|
||||
// write chars as is
|
||||
if (obj instanceof Reader) {
|
||||
Reader reader = (Reader) obj;
|
||||
char[] buf = new char[4096];
|
||||
int count;
|
||||
while ((count = reader.read(buf, 0, 4096)) != -1) {
|
||||
w.write(buf, 0, count);
|
||||
}
|
||||
} else {
|
||||
w.write(obj.toString());
|
||||
}
|
||||
} else {
|
||||
// escape XML chars
|
||||
if (obj instanceof Reader) {
|
||||
Reader reader = (Reader) obj;
|
||||
char[] buf = new char[4096];
|
||||
int count;
|
||||
while ((count = reader.read(buf, 0, 4096)) != -1) {
|
||||
writeEscapedXml(buf, count, w);
|
||||
}
|
||||
} else {
|
||||
String text = obj.toString();
|
||||
writeEscapedXml(text.toCharArray(), text.length(), w);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public static void out2(PageContext pageContext, boolean escapeXml,
|
||||
Object obj) throws IOException {
|
||||
JspWriter w = pageContext.getOut();
|
||||
|
||||
w.write(obj.toString());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Optimized to create no extra objects and write directly to the JspWriter
|
||||
* using blocks of escaped and unescaped characters
|
||||
*
|
||||
*/
|
||||
private static void writeEscapedXml(char[] buffer, int length, JspWriter w)
|
||||
throws IOException {
|
||||
int start = 0;
|
||||
|
||||
for (int i = 0; i < length; i++) {
|
||||
char c = buffer[i];
|
||||
if (c <= Util.HIGHEST_SPECIAL) {
|
||||
char[] escaped = Util.specialCharactersRepresentation[c];
|
||||
if (escaped != null) {
|
||||
// add unescaped portion
|
||||
if (start < i) {
|
||||
w.write(buffer, start, i - start);
|
||||
}
|
||||
// add escaped xml
|
||||
w.write(escaped);
|
||||
start = i + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
// add rest of unescaped portion
|
||||
if (start < length) {
|
||||
w.write(buffer, start, length - start);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Optimized to create no extra objects and write directly to the JspWriter
|
||||
* using blocks of escaped and unescaped characters
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
private String getWriteEscapedXml() throws IOException {
|
||||
String sRtn = "";
|
||||
|
||||
Object obj = this.value;
|
||||
|
||||
int start = 0;
|
||||
String text = obj.toString();
|
||||
|
||||
int length = text.length();
|
||||
char[] buffer = text.toCharArray();
|
||||
boolean booleanDiff = false;
|
||||
//String sDiffChar
|
||||
//String sArrDiffChar
|
||||
char[] cDiffChar = this.m_sDiffChar.toCharArray();
|
||||
|
||||
for(int i = 0; i < length; i++) {
|
||||
char c = buffer[i];
|
||||
|
||||
booleanDiff = false;
|
||||
|
||||
for(int k = 0; k < cDiffChar.length; k++){
|
||||
if(c == cDiffChar[k]){
|
||||
sRtn = sRtn + m_sArrDiffChar[k];
|
||||
booleanDiff = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(booleanDiff) continue;
|
||||
|
||||
if (c <= Util.HIGHEST_SPECIAL) {
|
||||
char[] escaped = Util.specialCharactersRepresentation[c];
|
||||
if (escaped != null) {
|
||||
// add unescaped portion
|
||||
//if (start < i) {
|
||||
// sRtn = sRtn + text.substring(start, i - start);
|
||||
//}
|
||||
// add escaped xml
|
||||
//sRtn = sRtn + escaped;
|
||||
//System.out.println(buffer[i]+" :: " + escaped);
|
||||
for (int j = 0; j < escaped.length; j++) {
|
||||
//System.out.println(buffer[i]+" :>: " + escaped[j]);
|
||||
sRtn = sRtn + escaped[j];
|
||||
}
|
||||
//sRtn = sRtn+ escaped.toString();
|
||||
//sRtn = sRtn + String.valueOf(buffer[i]);
|
||||
start = i + 1;
|
||||
}else{
|
||||
sRtn = sRtn + c;
|
||||
}
|
||||
}else{
|
||||
sRtn = sRtn + c;
|
||||
}
|
||||
}
|
||||
|
||||
return sRtn;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Optimized to create no extra objects and write directly to the JspWriter
|
||||
* using blocks of escaped and unescaped characters
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
private String getWriteEscapedXml(String sWriteString) throws IOException {
|
||||
|
||||
String sRtn = "";
|
||||
|
||||
Object obj = sWriteString;
|
||||
|
||||
int start = 0;
|
||||
String text = obj.toString();
|
||||
|
||||
int length = text.length();
|
||||
char[] buffer = text.toCharArray();
|
||||
boolean booleanDiff = false;
|
||||
//String sDiffChar
|
||||
//String sArrDiffChar
|
||||
char[] cDiffChar = this.m_sDiffChar.toCharArray();
|
||||
|
||||
for(int i = 0; i < length; i++) {
|
||||
char c = buffer[i];
|
||||
|
||||
booleanDiff = false;
|
||||
|
||||
for(int k = 0; k < cDiffChar.length; k++){
|
||||
if(c == cDiffChar[k]){
|
||||
sRtn = sRtn + m_sArrDiffChar[k];
|
||||
booleanDiff = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(booleanDiff) continue;
|
||||
|
||||
if (c <= Util.HIGHEST_SPECIAL) {
|
||||
char[] escaped = Util.specialCharactersRepresentation[c];
|
||||
if (escaped != null) {
|
||||
// add unescaped portion
|
||||
//if (start < i) {
|
||||
// sRtn = sRtn + text.substring(start, i - start);
|
||||
//}
|
||||
// add escaped xml
|
||||
//sRtn = sRtn + escaped;
|
||||
//System.out.println(buffer[i]+" :: " + escaped);
|
||||
for (int j = 0; j < escaped.length; j++) {
|
||||
//System.out.println(buffer[i]+" :>: " + escaped[j]);
|
||||
sRtn = sRtn + escaped[j];
|
||||
}
|
||||
//sRtn = sRtn+ escaped.toString();
|
||||
//sRtn = sRtn + String.valueOf(buffer[i]);
|
||||
start = i + 1;
|
||||
}else{
|
||||
sRtn = sRtn + c;
|
||||
}
|
||||
}else{
|
||||
sRtn = sRtn + c;
|
||||
}
|
||||
}
|
||||
|
||||
return sRtn;
|
||||
}
|
||||
|
||||
// for tag attribute
|
||||
public void setValue(Object value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
// for tag attribute
|
||||
public void setDefault(String def) {
|
||||
this.def = def;
|
||||
}
|
||||
|
||||
// for tag attribute
|
||||
public void setEscapeXml(boolean escapeXml) {
|
||||
this.escapeXml = escapeXml;
|
||||
}
|
||||
/*
|
||||
public static void main(String[] args) throws IOException
|
||||
{
|
||||
|
||||
EgovComCrossSiteHndlr egovComCrossSiteHndlr = new EgovComCrossSiteHndlr();
|
||||
|
||||
egovComCrossSiteHndlr.value = "TRNSMIT";
|
||||
|
||||
String sCrossSiteHndlr = egovComCrossSiteHndlr.getWriteEscapedXml();
|
||||
//System.out.println("writeEscapedXml " + egovComCrossSiteHndlr.getWriteEscapedXml());
|
||||
|
||||
System.out.println("sCrossSiteHndlr|"+ sCrossSiteHndlr + "|");
|
||||
|
||||
try{
|
||||
System.out.println("TRY TEST 1");
|
||||
throw new Exception();
|
||||
}catch(Exception e){
|
||||
System.out.println("TRY TEST 2");
|
||||
}finally{
|
||||
System.out.println("TRY TEST 3");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovComExcepHndlr.java
|
||||
* @Description : 공통서비스의 exception 처리 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 13. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 13.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
public class EgovComExcepHndlr implements ExceptionHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComExcepHndlr.class);
|
||||
|
||||
/**
|
||||
* 발생된 Exception을 처리한다.
|
||||
*/
|
||||
public void occur(Exception ex, String packageName) {
|
||||
LOGGER.debug("[HANDLER][PACKAGE]::: {}", packageName);
|
||||
LOGGER.debug("[HANDLER][Exception]:::", ex);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class EgovComOthersExcepHndlr implements ExceptionHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComOthersExcepHndlr.class);
|
||||
|
||||
public void occur(Exception exception, String packageName) {
|
||||
//log.debug(" EgovServiceExceptionHandler run...............");
|
||||
LOGGER.error(packageName, exception);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.trace.handler.TraceHandler;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovComTraceHandler.java
|
||||
* @Description : 공통서비스의 trace 처리 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2011. 09. 30. JJY
|
||||
*
|
||||
* @author JJY
|
||||
* @since 2011. 9. 30.
|
||||
*
|
||||
*/
|
||||
public class EgovComTraceHandler implements TraceHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComTraceHandler.class);
|
||||
|
||||
/**
|
||||
* 발생된 메시지를 출력한다.
|
||||
*/
|
||||
public void todo(Class<?> clazz, String message) {
|
||||
//System.out.println("log ==> DefaultTraceHandler run...............");
|
||||
LOGGER.debug("[TRACE]CLASS::: {}", clazz.getName());
|
||||
LOGGER.debug("[TRACE]MESSAGE::: {}", message);
|
||||
//이곳에서 후속처리로 필요한 액션을 취할 수 있다.
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
/**
|
||||
* EgovComUtil 클래스
|
||||
*
|
||||
* @author 서준식
|
||||
* @since 2011.09.15
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------------- ----------------------
|
||||
* 2011.09.15 서준식 최초 생성
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Service("egovUtil")
|
||||
public class EgovComponentChecker extends EgovAbstractServiceImpl implements ApplicationContextAware{
|
||||
|
||||
|
||||
public static ApplicationContext context;
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("static-access")
|
||||
public void setApplicationContext(ApplicationContext context)
|
||||
throws BeansException {
|
||||
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Spring MVC에서 설정한 빈이 아닌 서비스 빈(컴포넌트)만을 검색할 수 있음
|
||||
*
|
||||
*/
|
||||
public static boolean hasComponent(String componentName){
|
||||
|
||||
try{
|
||||
Object component = context.getBean(componentName);
|
||||
|
||||
if(component == null){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
|
||||
}catch(NoSuchBeanDefinitionException ex){// 해당 컴포넌트를 찾을 수없을 경우 false반환
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
|
||||
|
||||
/**
|
||||
* 메시지 리소스 사용을 위한 MessageSource 인터페이스 및 ReloadableResourceBundleMessageSource 클래스의 구현체
|
||||
* @author 공통서비스 개발팀 이문준
|
||||
* @since 2009.06.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.11 이문준 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
public class EgovMessageSource extends ReloadableResourceBundleMessageSource implements MessageSource {
|
||||
|
||||
private ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource;
|
||||
|
||||
/**
|
||||
* getReloadableResourceBundleMessageSource()
|
||||
* @param reloadableResourceBundleMessageSource - resource MessageSource
|
||||
* @return ReloadableResourceBundleMessageSource
|
||||
*/
|
||||
public void setReloadableResourceBundleMessageSource(ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource) {
|
||||
this.reloadableResourceBundleMessageSource = reloadableResourceBundleMessageSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* getReloadableResourceBundleMessageSource()
|
||||
* @return ReloadableResourceBundleMessageSource
|
||||
*/
|
||||
public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() {
|
||||
return reloadableResourceBundleMessageSource;
|
||||
}
|
||||
|
||||
/**
|
||||
* 정의된 메세지 조회
|
||||
* @param code - 메세지 코드
|
||||
* @return String
|
||||
*/
|
||||
public String getMessage(String code) {
|
||||
return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.getDefault());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.springframework.web.context.ServletContextAware;
|
||||
/**
|
||||
* ImagePaginationRenderer.java 클래스
|
||||
*
|
||||
* @author 서준식
|
||||
* @since 2011. 9. 16.
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------------- ----------------------
|
||||
* 2011. 9. 16. 서준식 이미지 경로에 ContextPath추가
|
||||
* </pre>
|
||||
*/
|
||||
public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{
|
||||
|
||||
private ServletContext servletContext;
|
||||
|
||||
public ImagePaginationRenderer() {
|
||||
|
||||
}
|
||||
|
||||
public void initVariables(){
|
||||
firstPageLabel = "<li> </li><li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_prevend.gif\" alt=\"처음\" border=\"0\"/></a></li>";
|
||||
previousPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_prev.gif\" alt=\"이전\" border=\"0\"/></a></li>";
|
||||
currentPageLabel = "<li><strong>{0}</strong></li>";
|
||||
otherPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a></li>";
|
||||
nextPageLabel = "<li> <a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_next.gif\" alt=\"다음\" border=\"0\"/></a></li>";
|
||||
lastPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_nextend.gif\" alt=\"마지막\" border=\"0\"/></a></li>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setServletContext(ServletContext servletContext) {
|
||||
this.servletContext = servletContext;
|
||||
initVariables();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
/**
|
||||
* IncludedInfo annotation을 바탕으로 화면에 표시할 정보를 구성하기 위한 VO 클래스
|
||||
* @author 공통컴포넌트 정진오
|
||||
* @since 2011.08.26
|
||||
* @version 2.0.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2011.08.26 정진오 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class IncludedCompInfoVO {
|
||||
|
||||
private String name;
|
||||
private String listUrl;
|
||||
private int order;
|
||||
private int gid;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public String getListUrl() {
|
||||
return listUrl;
|
||||
}
|
||||
public void setListUrl(String listUrl) {
|
||||
this.listUrl = listUrl;
|
||||
}
|
||||
public int getOrder() {
|
||||
return order;
|
||||
}
|
||||
public void setOrder(int order) {
|
||||
this.order = order;
|
||||
}
|
||||
public int getGid() {
|
||||
return gid;
|
||||
}
|
||||
public void setGid(int gid) {
|
||||
this.gid = gid;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,270 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Class Name : LoginVO.java
|
||||
* @Description : Login VO class
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2009.03.03 박지욱 최초 생성
|
||||
*
|
||||
* @author 공통서비스 개발팀 박지욱
|
||||
* @since 2009.03.03
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
public class LoginVO implements Serializable{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -8274004534207618049L;
|
||||
|
||||
/** 아이디 */
|
||||
private String id;
|
||||
/** 이름 */
|
||||
private String name;
|
||||
/** 주민등록번호 */
|
||||
private String ihidNum;
|
||||
/** 이메일주소 */
|
||||
private String email;
|
||||
/** 비밀번호 */
|
||||
private String password;
|
||||
/** 비밀번호 힌트 */
|
||||
private String passwordHint;
|
||||
/** 비밀번호 정답 */
|
||||
private String passwordCnsr;
|
||||
/** 사용자구분 */
|
||||
private String userSe;
|
||||
/** 조직(부서)ID */
|
||||
private String orgnztId;
|
||||
/** 조직(부서)명 */
|
||||
private String orgnztNm;
|
||||
/** 고유아이디 */
|
||||
private String uniqId;
|
||||
/** 로그인 후 이동할 페이지 */
|
||||
private String url;
|
||||
/** 사용자 IP정보 */
|
||||
private String ip;
|
||||
/** GPKI인증 DN */
|
||||
private String dn;
|
||||
/**
|
||||
* id attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
/**
|
||||
* id attribute 값을 설정한다.
|
||||
* @param id String
|
||||
*/
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
/**
|
||||
* name attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
/**
|
||||
* name attribute 값을 설정한다.
|
||||
* @param name String
|
||||
*/
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
/**
|
||||
* ihidNum attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getIhidNum() {
|
||||
return ihidNum;
|
||||
}
|
||||
/**
|
||||
* ihidNum attribute 값을 설정한다.
|
||||
* @param ihidNum String
|
||||
*/
|
||||
public void setIhidNum(String ihidNum) {
|
||||
this.ihidNum = ihidNum;
|
||||
}
|
||||
/**
|
||||
* email attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
/**
|
||||
* email attribute 값을 설정한다.
|
||||
* @param email String
|
||||
*/
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
/**
|
||||
* password attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
/**
|
||||
* password attribute 값을 설정한다.
|
||||
* @param password String
|
||||
*/
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
/**
|
||||
* passwordHint attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getPasswordHint() {
|
||||
return passwordHint;
|
||||
}
|
||||
/**
|
||||
* passwordHint attribute 값을 설정한다.
|
||||
* @param passwordHint String
|
||||
*/
|
||||
public void setPasswordHint(String passwordHint) {
|
||||
this.passwordHint = passwordHint;
|
||||
}
|
||||
/**
|
||||
* passwordCnsr attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getPasswordCnsr() {
|
||||
return passwordCnsr;
|
||||
}
|
||||
/**
|
||||
* passwordCnsr attribute 값을 설정한다.
|
||||
* @param passwordCnsr String
|
||||
*/
|
||||
public void setPasswordCnsr(String passwordCnsr) {
|
||||
this.passwordCnsr = passwordCnsr;
|
||||
}
|
||||
/**
|
||||
* userSe attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getUserSe() {
|
||||
return userSe;
|
||||
}
|
||||
/**
|
||||
* userSe attribute 값을 설정한다.
|
||||
* @param userSe String
|
||||
*/
|
||||
public void setUserSe(String userSe) {
|
||||
this.userSe = userSe;
|
||||
}
|
||||
/**
|
||||
* orgnztId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getOrgnztId() {
|
||||
return orgnztId;
|
||||
}
|
||||
/**
|
||||
* orgnztId attribute 값을 설정한다.
|
||||
* @param orgnztId String
|
||||
*/
|
||||
public void setOrgnztId(String orgnztId) {
|
||||
this.orgnztId = orgnztId;
|
||||
}
|
||||
/**
|
||||
* uniqId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getUniqId() {
|
||||
return uniqId;
|
||||
}
|
||||
/**
|
||||
* uniqId attribute 값을 설정한다.
|
||||
* @param uniqId String
|
||||
*/
|
||||
public void setUniqId(String uniqId) {
|
||||
this.uniqId = uniqId;
|
||||
}
|
||||
/**
|
||||
* url attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
/**
|
||||
* url attribute 값을 설정한다.
|
||||
* @param url String
|
||||
*/
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
/**
|
||||
* ip attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getIp() {
|
||||
return ip;
|
||||
}
|
||||
/**
|
||||
* ip attribute 값을 설정한다.
|
||||
* @param ip String
|
||||
*/
|
||||
public void setIp(String ip) {
|
||||
this.ip = ip;
|
||||
}
|
||||
/**
|
||||
* dn attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getDn() {
|
||||
return dn;
|
||||
}
|
||||
/**
|
||||
* dn attribute 값을 설정한다.
|
||||
* @param dn String
|
||||
*/
|
||||
public void setDn(String dn) {
|
||||
this.dn = dn;
|
||||
}
|
||||
/**
|
||||
* @return the orgnztNm
|
||||
*/
|
||||
public String getOrgnztNm() {
|
||||
return orgnztNm;
|
||||
}
|
||||
/**
|
||||
* @param orgnztNm the orgnztNm to set
|
||||
*/
|
||||
public void setOrgnztNm(String orgnztNm) {
|
||||
this.orgnztNm = orgnztNm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuffer sb = new StringBuffer("LoginVO{");
|
||||
sb.append("id='").append(id).append('\'');
|
||||
sb.append(", name='").append(name).append('\'');
|
||||
sb.append(", ihidNum='").append(ihidNum).append('\'');
|
||||
sb.append(", email='").append(email).append('\'');
|
||||
sb.append(", password='").append(password).append('\'');
|
||||
sb.append(", passwordHint='").append(passwordHint).append('\'');
|
||||
sb.append(", passwordCnsr='").append(passwordCnsr).append('\'');
|
||||
sb.append(", userSe='").append(userSe).append('\'');
|
||||
sb.append(", orgnztId='").append(orgnztId).append('\'');
|
||||
sb.append(", orgnztNm='").append(orgnztNm).append('\'');
|
||||
sb.append(", uniqId='").append(uniqId).append('\'');
|
||||
sb.append(", url='").append(url).append('\'');
|
||||
sb.append(", ip='").append(ip).append('\'');
|
||||
sb.append(", dn='").append(dn).append('\'');
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
package egovframework.com.cmm;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 세션 VO 클래스
|
||||
* @author 공통서비스 개발팀 박지욱
|
||||
* @since 2009.03.06
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.06 박지욱 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class SessionVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -2848741427493626376L;
|
||||
/** 아이디 */
|
||||
private String sUserId;
|
||||
/** 이름 */
|
||||
private String sUserNm;
|
||||
/** 이메일 */
|
||||
private String sEmail;
|
||||
/** 사용자구분 */
|
||||
private String sUserSe;
|
||||
/** 조직(부서)ID */
|
||||
private String orgnztId;
|
||||
/** 고유아이디 */
|
||||
private String uniqId;
|
||||
/**
|
||||
* sUserId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getSUserId() {
|
||||
return sUserId;
|
||||
}
|
||||
/**
|
||||
* sUserId attribute 값을 설정한다.
|
||||
* @param sUserId String
|
||||
*/
|
||||
public void setSUserId(String userId) {
|
||||
sUserId = userId;
|
||||
}
|
||||
/**
|
||||
* sUserNm attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getSUserNm() {
|
||||
return sUserNm;
|
||||
}
|
||||
/**
|
||||
* sUserNm attribute 값을 설정한다.
|
||||
* @param sUserNm String
|
||||
*/
|
||||
public void setSUserNm(String userNm) {
|
||||
sUserNm = userNm;
|
||||
}
|
||||
/**
|
||||
* sEmail attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getSEmail() {
|
||||
return sEmail;
|
||||
}
|
||||
/**
|
||||
* sEmail attribute 값을 설정한다.
|
||||
* @param sEmail String
|
||||
*/
|
||||
public void setSEmail(String email) {
|
||||
sEmail = email;
|
||||
}
|
||||
/**
|
||||
* sUserSe attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getSUserSe() {
|
||||
return sUserSe;
|
||||
}
|
||||
/**
|
||||
* sUserSe attribute 값을 설정한다.
|
||||
* @param sUserSe String
|
||||
*/
|
||||
public void setSUserSe(String userSe) {
|
||||
sUserSe = userSe;
|
||||
}
|
||||
/**
|
||||
* orgnztId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getOrgnztId() {
|
||||
return orgnztId;
|
||||
}
|
||||
/**
|
||||
* orgnztId attribute 값을 설정한다.
|
||||
* @param orgnztId String
|
||||
*/
|
||||
public void setOrgnztId(String orgnztId) {
|
||||
this.orgnztId = orgnztId;
|
||||
}
|
||||
/**
|
||||
* uniqId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getUniqId() {
|
||||
return uniqId;
|
||||
}
|
||||
/**
|
||||
* uniqId attribute 값을 설정한다.
|
||||
* @param uniqId String
|
||||
*/
|
||||
public void setUniqId(String uniqId) {
|
||||
this.uniqId = uniqId;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package egovframework.com.cmm.annotation;
|
||||
|
||||
/**
|
||||
* 컴포넌트의 포함 정보 표현을 위한 annotation 클래스
|
||||
* 기본적으로 Controller 클래스에 annotation을 부여하되,
|
||||
* 하나의 Controller에 여러 개의 목록성 url mapping이 제공되는 경우에는
|
||||
* 메소드에 annotation을 부여한다.
|
||||
* @author 공통컴포넌트 정진오
|
||||
* @since 2011.08.26
|
||||
* @version 2.0.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2011.08.26 정진오 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface IncludedInfo {
|
||||
String name() default ""; // 컴포넌트의 한글 이름
|
||||
String listUrl() default ""; // 컴포넌트의 목록정보조회를 위한 URL
|
||||
int order() default 0; // 자동 생성되는 메뉴 목록에 표시되는 순서
|
||||
int gid() default 0; // 컴포넌트의 Group ID(대분류 구분)
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security).
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package egovframework.com.cmm.filter;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
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;
|
||||
|
||||
public class HTMLTagFilter implements Filter{
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private FilterConfig config;
|
||||
|
||||
public void doFilter(ServletRequest request, ServletResponse response,
|
||||
FilterChain chain) throws IOException, ServletException {
|
||||
|
||||
chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest)request), response);
|
||||
}
|
||||
|
||||
public void init(FilterConfig config) throws ServletException {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security).
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package egovframework.com.cmm.filter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletRequestWrapper;
|
||||
|
||||
public class HTMLTagFilterRequestWrapper extends HttpServletRequestWrapper {
|
||||
|
||||
public HTMLTagFilterRequestWrapper(HttpServletRequest request) {
|
||||
super(request);
|
||||
}
|
||||
|
||||
public String[] getParameterValues(String parameter) {
|
||||
|
||||
String[] values = super.getParameterValues(parameter);
|
||||
|
||||
if(values==null){
|
||||
return null;
|
||||
}
|
||||
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
if (values[i] != null) {
|
||||
StringBuffer strBuff = new StringBuffer();
|
||||
for (int j = 0; j < values[i].length(); j++) {
|
||||
char c = values[i].charAt(j);
|
||||
switch (c) {
|
||||
case '<':
|
||||
strBuff.append("<");
|
||||
break;
|
||||
case '>':
|
||||
strBuff.append(">");
|
||||
break;
|
||||
//case '&':
|
||||
//strBuff.append("&");
|
||||
//break;
|
||||
case '"':
|
||||
strBuff.append(""");
|
||||
break;
|
||||
case '\'':
|
||||
strBuff.append("'");
|
||||
break;
|
||||
default:
|
||||
strBuff.append(c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
values[i] = strBuff.toString();
|
||||
} else {
|
||||
values[i] = null;
|
||||
}
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public String getParameter(String parameter) {
|
||||
|
||||
String value = super.getParameter(parameter);
|
||||
|
||||
if(value==null){
|
||||
return null;
|
||||
}
|
||||
|
||||
StringBuffer strBuff = new StringBuffer();
|
||||
|
||||
for (int i = 0; i < value.length(); i++) {
|
||||
char c = value.charAt(i);
|
||||
switch (c) {
|
||||
case '<':
|
||||
strBuff.append("<");
|
||||
break;
|
||||
case '>':
|
||||
strBuff.append(">");
|
||||
break;
|
||||
case '&':
|
||||
strBuff.append("&");
|
||||
break;
|
||||
case '"':
|
||||
strBuff.append(""");
|
||||
break;
|
||||
case '\'':
|
||||
strBuff.append("'");
|
||||
break;
|
||||
default:
|
||||
strBuff.append(c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
value = strBuff.toString();
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package egovframework.com.cmm.interceptor;
|
||||
|
||||
import egovframework.com.cmm.LoginVO;
|
||||
import egovframework.com.cmm.util.EgovUserDetailsHelper;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.ModelAndViewDefiningException;
|
||||
import org.springframework.web.servlet.mvc.WebContentInterceptor;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* 인증여부 체크 인터셉터
|
||||
* @author 공통서비스 개발팀 서준식
|
||||
* @since 2011.07.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2011.07.01 서준식 최초 생성
|
||||
* 2011.09.07 서준식 인증이 필요없는 URL을 패스하는 로직 추가
|
||||
* 2014.06.11 이기하 인증이 필요없는 URL을 패스하는 로직 삭제(xml로 대체)
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
public class AuthenticInterceptor extends WebContentInterceptor {
|
||||
|
||||
/**
|
||||
* 세션에 계정정보(LoginVO)가 있는지 여부로 인증 여부를 체크한다.
|
||||
* 계정정보(LoginVO)가 없다면, 로그인 페이지로 이동한다.
|
||||
*/
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
|
||||
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
boolean isBool = EgovUserDetailsHelper.isAuthenticated();
|
||||
//System.out.println(isBool);
|
||||
Object loginSession = request.getSession().getAttribute("LoginVO");
|
||||
//System.out.println(loginVO);
|
||||
//System.out.println(loginSession);
|
||||
String reqUrl = request.getRequestURI();
|
||||
String w2xPath = request.getParameter("w2xPath");
|
||||
|
||||
if (loginSession != null) {
|
||||
return true;
|
||||
} else {
|
||||
ModelAndView modelAndView = new ModelAndView("redirect:/login/loginUsr.do");
|
||||
throw new ModelAndViewDefiningException(modelAndView);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,194 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 공통상세코드 모델 클래스
|
||||
* @author 공통서비스 개발팀 이중호
|
||||
* @since 2009.04.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.04.01 이중호 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class CmmnDetailCode implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -6508801327314181679L;
|
||||
|
||||
/*
|
||||
* 코드ID
|
||||
*/
|
||||
private String codeId = "";
|
||||
|
||||
/*
|
||||
* 코드ID명
|
||||
*/
|
||||
private String codeIdNm = "";
|
||||
|
||||
/*
|
||||
* 코드
|
||||
*/
|
||||
private String code = "";
|
||||
|
||||
/*
|
||||
* 코드명
|
||||
*/
|
||||
private String codeNm = "";
|
||||
|
||||
/*
|
||||
* 코드설명
|
||||
*/
|
||||
private String codeDc = "";
|
||||
|
||||
/*
|
||||
* 사용여부
|
||||
*/
|
||||
private String useAt = "";
|
||||
|
||||
/*
|
||||
* 최초등록자ID
|
||||
*/
|
||||
private String frstRegisterId = "";
|
||||
|
||||
/*
|
||||
* 최종수정자ID
|
||||
*/
|
||||
private String lastUpdusrId = "";
|
||||
|
||||
/**
|
||||
* codeId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getCodeId() {
|
||||
return codeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeId attribute 값을 설정한다.
|
||||
* @param codeId String
|
||||
*/
|
||||
public void setCodeId(String codeId) {
|
||||
this.codeId = codeId;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeIdNm attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getCodeIdNm() {
|
||||
return codeIdNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeIdNm attribute 값을 설정한다.
|
||||
* @param codeIdNm String
|
||||
*/
|
||||
public void setCodeIdNm(String codeIdNm) {
|
||||
this.codeIdNm = codeIdNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* code attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* code attribute 값을 설정한다.
|
||||
* @param code String
|
||||
*/
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeNm attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getCodeNm() {
|
||||
return codeNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeNm attribute 값을 설정한다.
|
||||
* @param codeNm String
|
||||
*/
|
||||
public void setCodeNm(String codeNm) {
|
||||
this.codeNm = codeNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeDc attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getCodeDc() {
|
||||
return codeDc;
|
||||
}
|
||||
|
||||
/**
|
||||
* codeDc attribute 값을 설정한다.
|
||||
* @param codeDc String
|
||||
*/
|
||||
public void setCodeDc(String codeDc) {
|
||||
this.codeDc = codeDc;
|
||||
}
|
||||
|
||||
/**
|
||||
* useAt attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getUseAt() {
|
||||
return useAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* useAt attribute 값을 설정한다.
|
||||
* @param useAt String
|
||||
*/
|
||||
public void setUseAt(String useAt) {
|
||||
this.useAt = useAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* frstRegisterId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getFrstRegisterId() {
|
||||
return frstRegisterId;
|
||||
}
|
||||
|
||||
/**
|
||||
* frstRegisterId attribute 값을 설정한다.
|
||||
* @param frstRegisterId String
|
||||
*/
|
||||
public void setFrstRegisterId(String frstRegisterId) {
|
||||
this.frstRegisterId = frstRegisterId;
|
||||
}
|
||||
|
||||
/**
|
||||
* lastUpdusrId attribute 를 리턴한다.
|
||||
* @return String
|
||||
*/
|
||||
public String getLastUpdusrId() {
|
||||
return lastUpdusrId;
|
||||
}
|
||||
|
||||
/**
|
||||
* lastUpdusrId attribute 값을 설정한다.
|
||||
* @param lastUpdusrId String
|
||||
*/
|
||||
public void setLastUpdusrId(String lastUpdusrId) {
|
||||
this.lastUpdusrId = lastUpdusrId;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.com.cmm.ComDefaultCodeVO;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스
|
||||
* @author 공통서비스 개발팀 이삼섭
|
||||
* @since 2009.04.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.11 이삼섭 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public interface EgovCmmUseService {
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return List(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
|
||||
*
|
||||
* @param voList
|
||||
* @return Map(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List<?> voList) throws Exception;
|
||||
|
||||
/**
|
||||
* 조직정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 조직정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 그룹정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 그룹정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
}
|
||||
@ -0,0 +1,115 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovFileMngService.java
|
||||
* @Description : 파일정보의 관리를 위한 서비스 인터페이스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 25. 이삼섭 최초생성
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 25.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
public interface EgovFileMngService {
|
||||
|
||||
/**
|
||||
* 파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<FileVO> selectFileInfs(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 하나의 파일에 대한 정보(속성 및 상세)를 등록한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertFileInf(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다.
|
||||
*
|
||||
* @param fvoList
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertFileInfs(List<?> fvoList) throws Exception;
|
||||
|
||||
/**
|
||||
* 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다.
|
||||
*
|
||||
* @param fvoList
|
||||
* @throws Exception
|
||||
*/
|
||||
public void updateFileInfs(List<?> fvoList) throws Exception;
|
||||
|
||||
/**
|
||||
* 여러 개의 파일을 삭제한다.
|
||||
*
|
||||
* @param fvoList
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteFileInfs(List<?> fvoList) throws Exception;
|
||||
|
||||
/**
|
||||
* 하나의 파일을 삭제한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteFileInf(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 파일에 대한 상세정보를 조회한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public FileVO selectFileInf(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 파일 구분자에 대한 최대값을 구한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int getMaxFileSN(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 전체 파일을 삭제한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteAllFileInf(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 파일명 검색에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, Object> selectFileListByFileNm(FileVO fvo) throws Exception;
|
||||
|
||||
/**
|
||||
* 이미지 파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<FileVO> selectImageFileList(FileVO vo) throws Exception;
|
||||
}
|
||||
@ -0,0 +1,244 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
//import java.io.FileNotFoundException;
|
||||
//import java.io.IOException;
|
||||
//import java.util.Properties;
|
||||
/**
|
||||
* Class Name : EgovProperties.java
|
||||
* Description : properties값들을 파일로부터 읽어와 Globals클래스의 정적변수로 로드시켜주는 클래스로
|
||||
* 문자열 정보 기준으로 사용할 전역변수를 시스템 재시작으로 반영할 수 있도록 한다.
|
||||
* Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.01.19 박지욱 최초 생성
|
||||
* 2011.07.20 서준식 Globals파일의 상대경로를 읽은 메서드 추가
|
||||
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* @author 공통 서비스 개발팀 박지욱
|
||||
* @since 2009. 01. 19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
|
||||
public class EgovProperties{
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovProperties.class);
|
||||
|
||||
//프로퍼티값 로드시 에러발생하면 반환되는 에러문자열
|
||||
public static final String ERR_CODE =" EXCEPTION OCCURRED";
|
||||
public static final String ERR_CODE_FNFE =" EXCEPTION(FNFE) OCCURRED";
|
||||
public static final String ERR_CODE_IOE =" EXCEPTION(IOE) OCCURRED";
|
||||
|
||||
//파일구분자
|
||||
static final char FILE_SEPARATOR = File.separatorChar;
|
||||
|
||||
//프로퍼티 파일의 물리적 위치
|
||||
/*public static final String GLOBALS_PROPERTIES_FILE
|
||||
= System.getProperty("user.home") + System.getProperty("file.separator") + "egovProps"
|
||||
+ System.getProperty("file.separator") + "globals.properties";*/
|
||||
|
||||
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath()
|
||||
+ System.getProperty("file.separator") + ".." + System.getProperty("file.separator")
|
||||
+ ".." + System.getProperty("file.separator") + ".." + System.getProperty("file.separator");
|
||||
|
||||
public static final String GLOBALS_PROPERTIES_FILE
|
||||
= RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "globals.properties";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 인자로 주어진 문자열을 Key값으로 하는 상대경로 프로퍼티 값을 절대경로로 반환한다(Globals.java 전용)
|
||||
* @param keyName String
|
||||
* @return String
|
||||
|
||||
public static String getPathProperty(String keyName){
|
||||
String value = ERR_CODE;
|
||||
value="99";
|
||||
debug(GLOBALS_PROPERTIES_FILE + " : " + keyName);
|
||||
FileInputStream fis = null;
|
||||
try{
|
||||
Properties props = new Properties();
|
||||
fis = new FileInputStream(GLOBALS_PROPERTIES_FILE);
|
||||
props.load(new java.io.BufferedInputStream(fis));
|
||||
value = props.getProperty(keyName).trim();
|
||||
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
|
||||
}catch(FileNotFoundException fne){
|
||||
debug(fne);
|
||||
}catch(IOException ioe){
|
||||
debug(ioe);
|
||||
}catch(Exception e){
|
||||
debug(e);
|
||||
}finally{
|
||||
try {
|
||||
if (fis != null) fis.close();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
return value;
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(Globals.java 전용)
|
||||
* @param keyName String
|
||||
* @return String
|
||||
|
||||
public static String getProperty(String keyName){
|
||||
String value = ERR_CODE;
|
||||
value="99";
|
||||
debug(GLOBALS_PROPERTIES_FILE + " : " + keyName);
|
||||
FileInputStream fis = null;
|
||||
try{
|
||||
Properties props = new Properties();
|
||||
fis = new FileInputStream(GLOBALS_PROPERTIES_FILE);
|
||||
props.load(new java.io.BufferedInputStream(fis));
|
||||
value = props.getProperty(keyName).trim();
|
||||
}catch(FileNotFoundException fne){
|
||||
debug(fne);
|
||||
}catch(IOException ioe){
|
||||
debug(ioe);
|
||||
}catch(Exception e){
|
||||
debug(e);
|
||||
}finally{
|
||||
try {
|
||||
if (fis != null) fis.close();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
return value;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 상대 경로값을 절대 경로값으로 반환한다
|
||||
* @param fileName String
|
||||
* @param key String
|
||||
* @return String
|
||||
|
||||
public static String getPathProperty(String fileName, String key){
|
||||
FileInputStream fis = null;
|
||||
try{
|
||||
java.util.Properties props = new java.util.Properties();
|
||||
fis = new FileInputStream(fileName);
|
||||
props.load(new java.io.BufferedInputStream(fis));
|
||||
fis.close();
|
||||
|
||||
String value = props.getProperty(key);
|
||||
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
|
||||
return value;
|
||||
}catch(java.io.FileNotFoundException fne){
|
||||
return ERR_CODE_FNFE;
|
||||
}catch(java.io.IOException ioe){
|
||||
return ERR_CODE_IOE;
|
||||
}finally{
|
||||
try {
|
||||
if (fis != null) fis.close();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다
|
||||
* @param fileName String
|
||||
* @param key String
|
||||
* @return String
|
||||
|
||||
public static String getProperty(String fileName, String key){
|
||||
FileInputStream fis = null;
|
||||
try{
|
||||
java.util.Properties props = new java.util.Properties();
|
||||
fis = new FileInputStream(fileName);
|
||||
props.load(new java.io.BufferedInputStream(fis));
|
||||
fis.close();
|
||||
|
||||
String value = props.getProperty(key);
|
||||
return value;
|
||||
}catch(java.io.FileNotFoundException fne){
|
||||
return ERR_CODE_FNFE;
|
||||
}catch(java.io.IOException ioe){
|
||||
return ERR_CODE_IOE;
|
||||
}finally{
|
||||
try {
|
||||
if (fis != null) fis.close();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 주어진 프로파일의 내용을 파싱하여 (key-value) 형태의 구조체 배열을 반환한다.
|
||||
* @param property String
|
||||
* @return ArrayList
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public static ArrayList<Map<String, String>> loadPropertyFile(String property){
|
||||
|
||||
// key - value 형태로 된 배열 결과
|
||||
ArrayList<Map<String, String>> keyList = new ArrayList<Map<String, String>>();
|
||||
|
||||
String src = property.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR);
|
||||
FileInputStream fis = null;
|
||||
try
|
||||
{
|
||||
|
||||
File srcFile = new File(src);
|
||||
if (srcFile.exists()) {
|
||||
|
||||
java.util.Properties props = new java.util.Properties();
|
||||
fis = new FileInputStream(src);
|
||||
props.load(new java.io.BufferedInputStream(fis));
|
||||
fis.close();
|
||||
|
||||
int i = 0;
|
||||
Enumeration<?> plist = props.propertyNames();
|
||||
if (plist != null) {
|
||||
while (plist.hasMoreElements()) {
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
String key = (String)plist.nextElement();
|
||||
map.put(key, props.getProperty(key));
|
||||
keyList.add(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex){
|
||||
debug("EX:"+ex);
|
||||
} finally {
|
||||
try {
|
||||
if (fis != null) fis.close();
|
||||
} catch (Exception ex) {
|
||||
debug("EX:"+ex);
|
||||
}
|
||||
}
|
||||
|
||||
return keyList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시스템 로그를 출력한다.
|
||||
* @param obj Object
|
||||
*/
|
||||
private static void debug(Object obj) {
|
||||
if (obj instanceof java.lang.Exception) {
|
||||
LOGGER.debug("IGNORED: {}", ((Exception)obj).getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface EgovUserDetailsService {
|
||||
|
||||
/**
|
||||
* 인증된 사용자객체를 VO형식으로 가져온다.
|
||||
* @return Object - 사용자 ValueObject
|
||||
*/
|
||||
public Object getAuthenticatedUser();
|
||||
|
||||
/**
|
||||
* 인증된 사용자의 권한 정보를 가져온다.
|
||||
* 예) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY]
|
||||
* @return List - 사용자 권한정보 목록
|
||||
*/
|
||||
public List<String> getAuthorities();
|
||||
|
||||
/**
|
||||
* 인증된 사용자 여부를 체크한다.
|
||||
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
|
||||
*/
|
||||
public Boolean isAuthenticated();
|
||||
|
||||
}
|
||||
@ -0,0 +1,243 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
|
||||
/**
|
||||
* @Class Name : FileVO.java
|
||||
* @Description : 파일정보 처리를 위한 VO 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 25. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 25.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
public class FileVO implements Serializable {
|
||||
|
||||
/**
|
||||
* serialVersion UID
|
||||
*/
|
||||
private static final long serialVersionUID = -287950405903719128L;
|
||||
/**
|
||||
* 첨부파일 아이디
|
||||
*/
|
||||
public String atchFileId = "";
|
||||
/**
|
||||
* 생성일자
|
||||
*/
|
||||
public String creatDt = "";
|
||||
/**
|
||||
* 파일내용
|
||||
*/
|
||||
public String fileCn = "";
|
||||
/**
|
||||
* 파일확장자
|
||||
*/
|
||||
public String fileExtsn = "";
|
||||
/**
|
||||
* 파일크기
|
||||
*/
|
||||
public String fileMg = "";
|
||||
/**
|
||||
* 파일연번
|
||||
*/
|
||||
public String fileSn = "";
|
||||
/**
|
||||
* 파일저장경로
|
||||
*/
|
||||
public String fileStreCours = "";
|
||||
/**
|
||||
* 원파일명
|
||||
*/
|
||||
public String orignlFileNm = "";
|
||||
/**
|
||||
* 저장파일명
|
||||
*/
|
||||
public String streFileNm = "";
|
||||
|
||||
/**
|
||||
* atchFileId attribute를 리턴한다.
|
||||
*
|
||||
* @return the atchFileId
|
||||
*/
|
||||
public String getAtchFileId() {
|
||||
return atchFileId;
|
||||
}
|
||||
|
||||
/**
|
||||
* atchFileId attribute 값을 설정한다.
|
||||
*
|
||||
* @param atchFileId
|
||||
* the atchFileId to set
|
||||
*/
|
||||
public void setAtchFileId(String atchFileId) {
|
||||
this.atchFileId = atchFileId;
|
||||
}
|
||||
|
||||
/**
|
||||
* creatDt attribute를 리턴한다.
|
||||
*
|
||||
* @return the creatDt
|
||||
*/
|
||||
public String getCreatDt() {
|
||||
return creatDt;
|
||||
}
|
||||
|
||||
/**
|
||||
* creatDt attribute 값을 설정한다.
|
||||
*
|
||||
* @param creatDt
|
||||
* the creatDt to set
|
||||
*/
|
||||
public void setCreatDt(String creatDt) {
|
||||
this.creatDt = creatDt;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileCn attribute를 리턴한다.
|
||||
*
|
||||
* @return the fileCn
|
||||
*/
|
||||
public String getFileCn() {
|
||||
return fileCn;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileCn attribute 값을 설정한다.
|
||||
*
|
||||
* @param fileCn
|
||||
* the fileCn to set
|
||||
*/
|
||||
public void setFileCn(String fileCn) {
|
||||
this.fileCn = fileCn;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileExtsn attribute를 리턴한다.
|
||||
*
|
||||
* @return the fileExtsn
|
||||
*/
|
||||
public String getFileExtsn() {
|
||||
return fileExtsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileExtsn attribute 값을 설정한다.
|
||||
*
|
||||
* @param fileExtsn
|
||||
* the fileExtsn to set
|
||||
*/
|
||||
public void setFileExtsn(String fileExtsn) {
|
||||
this.fileExtsn = fileExtsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileMg attribute를 리턴한다.
|
||||
*
|
||||
* @return the fileMg
|
||||
*/
|
||||
public String getFileMg() {
|
||||
return fileMg;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileMg attribute 값을 설정한다.
|
||||
*
|
||||
* @param fileMg
|
||||
* the fileMg to set
|
||||
*/
|
||||
public void setFileMg(String fileMg) {
|
||||
this.fileMg = fileMg;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileSn attribute를 리턴한다.
|
||||
*
|
||||
* @return the fileSn
|
||||
*/
|
||||
public String getFileSn() {
|
||||
return fileSn;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileSn attribute 값을 설정한다.
|
||||
*
|
||||
* @param fileSn
|
||||
* the fileSn to set
|
||||
*/
|
||||
public void setFileSn(String fileSn) {
|
||||
this.fileSn = fileSn;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileStreCours attribute를 리턴한다.
|
||||
*
|
||||
* @return the fileStreCours
|
||||
*/
|
||||
public String getFileStreCours() {
|
||||
return fileStreCours;
|
||||
}
|
||||
|
||||
/**
|
||||
* fileStreCours attribute 값을 설정한다.
|
||||
*
|
||||
* @param fileStreCours
|
||||
* the fileStreCours to set
|
||||
*/
|
||||
public void setFileStreCours(String fileStreCours) {
|
||||
this.fileStreCours = fileStreCours;
|
||||
}
|
||||
|
||||
/**
|
||||
* orignlFileNm attribute를 리턴한다.
|
||||
*
|
||||
* @return the orignlFileNm
|
||||
*/
|
||||
public String getOrignlFileNm() {
|
||||
return orignlFileNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* orignlFileNm attribute 값을 설정한다.
|
||||
*
|
||||
* @param orignlFileNm
|
||||
* the orignlFileNm to set
|
||||
*/
|
||||
public void setOrignlFileNm(String orignlFileNm) {
|
||||
this.orignlFileNm = orignlFileNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* streFileNm attribute를 리턴한다.
|
||||
*
|
||||
* @return the streFileNm
|
||||
*/
|
||||
public String getStreFileNm() {
|
||||
return streFileNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* streFileNm attribute 값을 설정한다.
|
||||
*
|
||||
* @param streFileNm
|
||||
* the streFileNm to set
|
||||
*/
|
||||
public void setStreFileNm(String streFileNm) {
|
||||
this.streFileNm = streFileNm;
|
||||
}
|
||||
|
||||
/**
|
||||
* toString 메소드를 대치한다.
|
||||
*/
|
||||
public String toString() {
|
||||
return ToStringBuilder.reflectionToString(this);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package egovframework.com.cmm.service;
|
||||
|
||||
/**
|
||||
* Class Name : Globals.java
|
||||
* Description : 시스템 구동 시 프로퍼티를 통해 사용될 전역변수를 정의한다.
|
||||
* Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.01.19 박지욱 최초 생성
|
||||
*
|
||||
* @author 공통 서비스 개발팀 박지욱
|
||||
* @since 2009. 01. 19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
|
||||
public class Globals {
|
||||
//파일 업로드 원 파일명
|
||||
public static final String ORIGIN_FILE_NM = "originalFileName";
|
||||
//파일 확장자
|
||||
public static final String FILE_EXT = "fileExtension";
|
||||
//파일크기
|
||||
public static final String FILE_SIZE = "fileSize";
|
||||
//업로드된 파일명
|
||||
public static final String UPLOAD_FILE_NM = "uploadFileName";
|
||||
//파일경로
|
||||
public static final String FILE_PATH = "filePath";
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import egovframework.com.cmm.ComDefaultCodeVO;
|
||||
import egovframework.com.cmm.service.CmmnDetailCode;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @Class Name : CmmUseDAO.java
|
||||
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 데이터 접근 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 11. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 11.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Repository("cmmUseDAO")
|
||||
public class CmmUseDAO extends EgovComAbstractDAO {
|
||||
|
||||
/**
|
||||
* 주어진 조건에 따른 공통코드를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectCmmCodeDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드로 사용할 조직정보를 를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectOgrnztIdDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드로 사용할그룹정보를 를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectGroupIdDetail", vo);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,95 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.com.cmm.ComDefaultCodeVO;
|
||||
import egovframework.com.cmm.service.CmmnDetailCode;
|
||||
import egovframework.com.cmm.service.EgovCmmUseService;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovCmmUseServiceImpl.java
|
||||
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 11. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 11.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Service("EgovCmmUseService")
|
||||
public class EgovCmmUseServiceImpl extends EgovAbstractServiceImpl implements EgovCmmUseService {
|
||||
|
||||
@Resource(name = "cmmUseDAO")
|
||||
private CmmUseDAO cmmUseDAO;
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectCmmCodeDetail(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
|
||||
*
|
||||
* @param voList
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List<?> voList) throws Exception {
|
||||
ComDefaultCodeVO vo;
|
||||
Map<String, List<CmmnDetailCode>> map = new HashMap<String, List<CmmnDetailCode>>();
|
||||
|
||||
Iterator<?> iter = voList.iterator();
|
||||
while (iter.hasNext()) {
|
||||
vo = (ComDefaultCodeVO) iter.next();
|
||||
map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo));
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 조직정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 조직정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectOgrnztIdDetail(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 그룹정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 그룹정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectGroupIdDetail(vo);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.ibatis.sqlmap.client.SqlMapClient;
|
||||
|
||||
/**
|
||||
* EgovComAbstractDAO.java 클래스
|
||||
*
|
||||
* @author 서준식
|
||||
* @since 2011. 9. 23.
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------------- ----------------------
|
||||
* 2011. 9. 23. 서준식 최초 생성
|
||||
* </pre>
|
||||
*/
|
||||
public abstract class EgovComAbstractDAO extends EgovAbstractDAO{
|
||||
|
||||
|
||||
@Resource(name="egov.sqlMapClient")
|
||||
public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
|
||||
super.setSuperSqlMapClient(sqlMapClient);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,167 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.com.cmm.service.EgovFileMngService;
|
||||
import egovframework.com.cmm.service.FileVO;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovFileMngServiceImpl.java
|
||||
* @Description : 파일정보의 관리를 위한 구현 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 25. 이삼섭 최초생성
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 25.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Service("EgovFileMngService")
|
||||
public class EgovFileMngServiceImpl extends EgovAbstractServiceImpl implements EgovFileMngService {
|
||||
|
||||
@Resource(name = "FileManageDAO")
|
||||
private FileManageDAO fileMngDAO;
|
||||
|
||||
/**
|
||||
* 여러 개의 파일을 삭제한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInfs(java.util.List)
|
||||
*/
|
||||
@Override
|
||||
public void deleteFileInfs(List<?> fvoList) throws Exception {
|
||||
fileMngDAO.deleteFileInfs(fvoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 하나의 파일에 대한 정보(속성 및 상세)를 등록한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#insertFileInf(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public String insertFileInf(FileVO fvo) throws Exception {
|
||||
String atchFileId = fvo.getAtchFileId();
|
||||
|
||||
fileMngDAO.insertFileInf(fvo);
|
||||
|
||||
return atchFileId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#insertFileInfs(java.util.List)
|
||||
*/
|
||||
@Override
|
||||
public String insertFileInfs(List<?> fvoList) throws Exception {
|
||||
String atchFileId = "";
|
||||
|
||||
if (fvoList.size() != 0) {
|
||||
atchFileId = fileMngDAO.insertFileInfs(fvoList);
|
||||
}
|
||||
if(atchFileId == ""){
|
||||
atchFileId = null;
|
||||
}
|
||||
return atchFileId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#selectFileInfs(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public List<FileVO> selectFileInfs(FileVO fvo) throws Exception {
|
||||
return fileMngDAO.selectFileInfs(fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#updateFileInfs(java.util.List)
|
||||
*/
|
||||
@Override
|
||||
public void updateFileInfs(List<?> fvoList) throws Exception {
|
||||
//Delete & Insert
|
||||
fileMngDAO.updateFileInfs(fvoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 하나의 파일을 삭제한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInf(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public void deleteFileInf(FileVO fvo) throws Exception {
|
||||
fileMngDAO.deleteFileInf(fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일에 대한 상세정보를 조회한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#selectFileInf(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public FileVO selectFileInf(FileVO fvo) throws Exception {
|
||||
return fileMngDAO.selectFileInf(fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일 구분자에 대한 최대값을 구한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#getMaxFileSN(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public int getMaxFileSN(FileVO fvo) throws Exception {
|
||||
return fileMngDAO.getMaxFileSN(fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전체 파일을 삭제한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#deleteAllFileInf(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public void deleteAllFileInf(FileVO fvo) throws Exception {
|
||||
fileMngDAO.deleteAllFileInf(fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일명 검색에 대한 목록을 조회한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#selectFileListByFileNm(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> selectFileListByFileNm(FileVO fvo) throws Exception {
|
||||
List<FileVO> result = fileMngDAO.selectFileListByFileNm(fvo);
|
||||
int cnt = fileMngDAO.selectFileListCntByFileNm(fvo);
|
||||
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
map.put("resultList", result);
|
||||
map.put("resultCnt", Integer.toString(cnt));
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 이미지 파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @see egovframework.com.cmm.service.EgovFileMngService#selectImageFileList(egovframework.com.cmm.service.FileVO)
|
||||
*/
|
||||
@Override
|
||||
public List<FileVO> selectImageFileList(FileVO vo) throws Exception {
|
||||
return fileMngDAO.selectImageFileList(vo);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,87 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import egovframework.com.cmm.LoginVO;
|
||||
import egovframework.com.cmm.service.EgovUserDetailsService;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 공통서비스 개발팀 서준식
|
||||
* @since 2011. 8. 12.
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* 개정이력(Modification Information)
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2011. 8. 12. 서준식 최초생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
public class EgovTestUserDetailsServiceImpl extends EgovAbstractServiceImpl implements
|
||||
EgovUserDetailsService {
|
||||
|
||||
@Override
|
||||
public Object getAuthenticatedUser() {
|
||||
|
||||
LoginVO loginVO = new LoginVO();
|
||||
loginVO.setId("TEST1");
|
||||
loginVO.setPassword("raHLBnHFcunwNzcDcfad4PhD11hHgXSUr7fc1Jk9uoQ=");
|
||||
loginVO.setUserSe("USR");
|
||||
loginVO.setEmail("egovframe@nia.or.kr");
|
||||
loginVO.setIhidNum("");
|
||||
loginVO.setName("더미사용자");
|
||||
loginVO.setOrgnztId("ORGNZT_0000000000000");
|
||||
loginVO.setUniqId("USRCNFRM_00000000000");
|
||||
return loginVO;
|
||||
|
||||
// return
|
||||
// RequestContextHolder.getRequestAttributes().getAttribute("loginVO",
|
||||
// RequestAttributes.SCOPE_SESSION);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAuthorities() {
|
||||
|
||||
// 권한 설정을 리턴한다.
|
||||
|
||||
List<String> listAuth = new ArrayList<String>();
|
||||
listAuth.add("IS_AUTHENTICATED_ANONYMOUSLY");
|
||||
listAuth.add("IS_AUTHENTICATED_FULLY");
|
||||
listAuth.add("IS_AUTHENTICATED_REMEMBERED");
|
||||
listAuth.add("ROLE_ADMIN");
|
||||
listAuth.add("ROLE_ANONYMOUS");
|
||||
listAuth.add("ROLE_RESTRICTED");
|
||||
listAuth.add("ROLE_USER");
|
||||
|
||||
return listAuth;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isAuthenticated() {
|
||||
// 인증된 유저인지 확인한다.
|
||||
|
||||
/*if (RequestContextHolder.getRequestAttributes() == null) {
|
||||
return false;
|
||||
} else {
|
||||
|
||||
if (RequestContextHolder.getRequestAttributes().getAttribute(
|
||||
"loginVO", RequestAttributes.SCOPE_SESSION) == null) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}*/
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import egovframework.com.cmm.service.EgovUserDetailsService;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 공통서비스 개발팀 서준식
|
||||
* @since 2011. 6. 25.
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* 개정이력(Modification Information)
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2011. 8. 12. 서준식 최초생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
public class EgovUserDetailsSessionServiceImpl extends EgovAbstractServiceImpl implements
|
||||
EgovUserDetailsService {
|
||||
|
||||
public Object getAuthenticatedUser() {
|
||||
|
||||
|
||||
|
||||
return RequestContextHolder.getRequestAttributes().getAttribute("loginVO", RequestAttributes.SCOPE_SESSION);
|
||||
|
||||
}
|
||||
|
||||
public List<String> getAuthorities() {
|
||||
|
||||
// 권한 설정을 리턴한다.
|
||||
List<String> listAuth = new ArrayList<String>();
|
||||
|
||||
return listAuth;
|
||||
}
|
||||
|
||||
public Boolean isAuthenticated() {
|
||||
// 인증된 유저인지 확인한다.
|
||||
|
||||
if (RequestContextHolder.getRequestAttributes() == null) {
|
||||
return false;
|
||||
} else {
|
||||
|
||||
if (RequestContextHolder.getRequestAttributes().getAttribute(
|
||||
"loginVO", RequestAttributes.SCOPE_SESSION) == null) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
package egovframework.com.cmm.service.impl;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import egovframework.com.cmm.service.FileVO;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovFileMngDAO.java
|
||||
* @Description : 파일정보 관리를 위한 데이터 처리 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 25. 이삼섭 최초생성
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 25.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Repository("FileManageDAO")
|
||||
public class FileManageDAO extends EgovComAbstractDAO {
|
||||
|
||||
/**
|
||||
* 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다.
|
||||
*
|
||||
* @param fileList
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String insertFileInfs(List<?> fileList) throws Exception {
|
||||
FileVO vo = (FileVO) fileList.get(0);
|
||||
String atchFileId = vo.getAtchFileId();
|
||||
|
||||
insert("FileManageDAO.insertFileMaster", vo);
|
||||
|
||||
Iterator<?> iter = fileList.iterator();
|
||||
while (iter.hasNext()) {
|
||||
vo = (FileVO) iter.next();
|
||||
|
||||
insert("FileManageDAO.insertFileDetail", vo);
|
||||
}
|
||||
|
||||
return atchFileId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 하나의 파일에 대한 정보(속성 및 상세)를 등록한다.
|
||||
*
|
||||
* @param vo
|
||||
* @throws Exception
|
||||
*/
|
||||
public void insertFileInf(FileVO vo) throws Exception {
|
||||
insert("FileManageDAO.insertFileMaster", vo);
|
||||
insert("FileManageDAO.insertFileDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다.
|
||||
*
|
||||
* @param fileList
|
||||
* @throws Exception
|
||||
*/
|
||||
public void updateFileInfs(List<?> fileList) throws Exception {
|
||||
FileVO vo;
|
||||
Iterator<?> iter = fileList.iterator();
|
||||
while (iter.hasNext()) {
|
||||
vo = (FileVO) iter.next();
|
||||
|
||||
insert("FileManageDAO.insertFileDetail", vo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 여러 개의 파일을 삭제한다.
|
||||
*
|
||||
* @param fileList
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteFileInfs(List<?> fileList) throws Exception {
|
||||
Iterator<?> iter = fileList.iterator();
|
||||
FileVO vo;
|
||||
while (iter.hasNext()) {
|
||||
vo = (FileVO) iter.next();
|
||||
|
||||
delete("FileManageDAO.deleteFileDetail", vo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 하나의 파일을 삭제한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteFileInf(FileVO fvo) throws Exception {
|
||||
delete("FileManageDAO.deleteFileDetail", fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<FileVO> selectFileInfs(FileVO vo) throws Exception {
|
||||
return (List<FileVO>) list("FileManageDAO.selectFileList", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일 구분자에 대한 최대값을 구한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int getMaxFileSN(FileVO fvo) throws Exception {
|
||||
return (Integer) select("FileManageDAO.getMaxFileSN", fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일에 대한 상세정보를 조회한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public FileVO selectFileInf(FileVO fvo) throws Exception {
|
||||
return (FileVO) select("FileManageDAO.selectFileInf", fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전체 파일을 삭제한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @throws Exception
|
||||
*/
|
||||
public void deleteAllFileInf(FileVO fvo) throws Exception {
|
||||
update("FileManageDAO.deleteCOMTNFILE", fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일명 검색에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<FileVO> selectFileListByFileNm(FileVO fvo) throws Exception {
|
||||
return (List<FileVO>) list("FileManageDAO.selectFileListByFileNm", fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 파일명 검색에 대한 목록 전체 건수를 조회한다.
|
||||
*
|
||||
* @param fvo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public int selectFileListCntByFileNm(FileVO fvo) throws Exception {
|
||||
return (Integer) select("FileManageDAO.selectFileListCntByFileNm", fvo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이미지 파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<FileVO> selectImageFileList(FileVO vo) throws Exception {
|
||||
return (List<FileVO>) list("FileManageDAO.selectImageFileList", vo);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package egovframework.com.cmm.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import egovframework.com.cmm.LoginVO;
|
||||
|
||||
import egovframework.rte.fdl.string.EgovObjectUtil;
|
||||
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
|
||||
/**
|
||||
* EgovUserDetails Helper 클래스
|
||||
*
|
||||
* @author sjyoon
|
||||
* @since 2009.06.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------------- ----------------------
|
||||
* 2009.03.10 sjyoon 최초 생성
|
||||
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
public class EgovUserDetailsHelper {
|
||||
|
||||
/**
|
||||
* 인증된 사용자객체를 VO형식으로 가져온다.
|
||||
* @return Object - 사용자 ValueObject
|
||||
*/
|
||||
public static Object getAuthenticatedUser() {
|
||||
return (LoginVO)RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION)==null ?
|
||||
new LoginVO() : (LoginVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 인증된 사용자의 권한 정보를 가져온다.
|
||||
* 예) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY]
|
||||
* @return List - 사용자 권한정보 목록
|
||||
*/
|
||||
public static List<String> getAuthorities() {
|
||||
List<String> listAuth = new ArrayList<String>();
|
||||
|
||||
if (EgovObjectUtil.isNull((LoginVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION))) {
|
||||
// log.debug("## authentication object is null!!");
|
||||
return null;
|
||||
}
|
||||
|
||||
return listAuth;
|
||||
}
|
||||
|
||||
/**
|
||||
* 인증된 사용자 여부를 체크한다.
|
||||
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
|
||||
*/
|
||||
public static Boolean isAuthenticated() {
|
||||
|
||||
if (EgovObjectUtil.isNull((LoginVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION))) {
|
||||
// log.debug("## authentication object is null!!");
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package egovframework.com.cmm.web;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import org.springframework.beans.propertyeditors.CustomDateEditor;
|
||||
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.bind.support.WebBindingInitializer;
|
||||
import org.springframework.web.context.request.WebRequest;
|
||||
|
||||
public class EgovBindingInitializer implements WebBindingInitializer {
|
||||
|
||||
|
||||
public void initBinder(WebDataBinder binder, WebRequest request) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
dateFormat.setLenient(false);
|
||||
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
|
||||
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package egovframework.com.cmm.web;
|
||||
|
||||
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
/**
|
||||
* 공통유틸리티성 작업을 위한 Controller 클래스
|
||||
* @author 공통 서비스 개발팀 JJY
|
||||
* @since 2009.03.02
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.02 JJY 최초 생성
|
||||
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
public class EgovComUtlController {
|
||||
|
||||
/** EgovPropertyService */
|
||||
@Resource(name = "propertiesService")
|
||||
protected EgovPropertyService propertiesService;
|
||||
|
||||
/**
|
||||
* JSP 호출작업만 처리하는 공통 함수
|
||||
*/
|
||||
@RequestMapping(value="/EgovPageLink.do")
|
||||
public String moveToPage(@RequestParam("link") String linkPage,
|
||||
HttpSession session,
|
||||
@RequestParam(value="menuNo", required=false) String menuNo){
|
||||
String link = linkPage;
|
||||
// service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함
|
||||
if (linkPage==null || linkPage.equals("")){
|
||||
link="cmm/egovError";
|
||||
}else{
|
||||
if(link.indexOf(",")>-1){
|
||||
link=link.substring(0,link.indexOf(","));
|
||||
}
|
||||
}
|
||||
// 선택된 메뉴정보를 세션으로 등록한다.
|
||||
if (menuNo!=null && !menuNo.equals("")){
|
||||
session.setAttribute("menuNo",menuNo);
|
||||
}
|
||||
return link;
|
||||
}
|
||||
|
||||
/**
|
||||
* JSP 호출작업만 처리하는 공통 함수
|
||||
*/
|
||||
@RequestMapping(value="/EgovPageLink.action")
|
||||
public String moveToPage_action(@RequestParam("link") String linkPage){
|
||||
String link = linkPage;
|
||||
// service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함
|
||||
if (linkPage==null || linkPage.equals("")){
|
||||
link="cmm/egovError";
|
||||
}
|
||||
return link;
|
||||
}
|
||||
|
||||
/**
|
||||
* validation rule dynamic java script
|
||||
*/
|
||||
@RequestMapping("/validator.do")
|
||||
public String validate(){
|
||||
return "cmm/validator";
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,201 @@
|
||||
package egovframework.com.cmm.web;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.com.cmm.service.EgovFileMngService;
|
||||
import egovframework.com.cmm.service.FileVO;
|
||||
import egovframework.com.cmm.util.EgovUserDetailsHelper;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
/**
|
||||
* 파일 다운로드를 위한 컨트롤러 클래스
|
||||
* @author 공통서비스개발팀 이삼섭
|
||||
* @since 2009.06.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.3.25 이삼섭 최초 생성
|
||||
*
|
||||
* Copyright (C) 2009 by MOPAS All right reserved.
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
public class EgovFileDownloadController {
|
||||
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
|
||||
|
||||
/**
|
||||
* 브라우저 구분 얻기.
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
private String getBrowser(HttpServletRequest request) {
|
||||
String header = request.getHeader("User-Agent");
|
||||
if (header.indexOf("MSIE") > -1) {
|
||||
return "MSIE";
|
||||
} else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
|
||||
return "Trident";
|
||||
} else if (header.indexOf("Chrome") > -1) {
|
||||
return "Chrome";
|
||||
} else if (header.indexOf("Opera") > -1) {
|
||||
return "Opera";
|
||||
}
|
||||
return "Firefox";
|
||||
}
|
||||
|
||||
/**
|
||||
* Disposition 지정하기.
|
||||
*
|
||||
* @param filename
|
||||
* @param request
|
||||
* @param response
|
||||
* @throws Exception
|
||||
*/
|
||||
private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String browser = getBrowser(request);
|
||||
|
||||
String dispositionPrefix = "attachment; filename=";
|
||||
String encodedFilename = null;
|
||||
|
||||
if (browser.equals("MSIE")) {
|
||||
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
|
||||
} else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
|
||||
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
|
||||
} else if (browser.equals("Firefox")) {
|
||||
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
|
||||
} else if (browser.equals("Opera")) {
|
||||
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
|
||||
} else if (browser.equals("Chrome")) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < filename.length(); i++) {
|
||||
char c = filename.charAt(i);
|
||||
if (c > '~') {
|
||||
sb.append(URLEncoder.encode("" + c, "UTF-8"));
|
||||
} else {
|
||||
sb.append(c);
|
||||
}
|
||||
}
|
||||
encodedFilename = sb.toString();
|
||||
} else {
|
||||
//throw new RuntimeException("Not supported browser");
|
||||
throw new IOException("Not supported browser");
|
||||
}
|
||||
|
||||
response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename);
|
||||
|
||||
if ("Opera".equals(browser)) {
|
||||
response.setContentType("application/octet-stream;charset=UTF-8");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다.
|
||||
*
|
||||
* @param commandMap
|
||||
* @param response
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/cmm/fms/FileDown.do")
|
||||
public void cvplFileDownload(@RequestParam Map<String, Object> commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
|
||||
String atchFileId = (String) commandMap.get("atchFileId");
|
||||
String fileSn = (String) commandMap.get("fileSn");
|
||||
|
||||
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
||||
|
||||
if (isAuthenticated) {
|
||||
|
||||
FileVO fileVO = new FileVO();
|
||||
fileVO.setAtchFileId(atchFileId);
|
||||
fileVO.setFileSn(fileSn);
|
||||
FileVO fvo = fileService.selectFileInf(fileVO);
|
||||
|
||||
File uFile = new File(fvo.getFileStreCours(), fvo.getStreFileNm());
|
||||
long fSize = uFile.length();
|
||||
|
||||
if (fSize > 0) {
|
||||
String mimetype = "application/x-msdownload";
|
||||
|
||||
//response.setBufferSize(fSize); // OutOfMemeory 발생
|
||||
response.setContentType(mimetype);
|
||||
//response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fvo.getOrignlFileNm(), "utf-8") + "\"");
|
||||
setDisposition(fvo.getOrignlFileNm(), request, response);
|
||||
//response.setContentLength(fSize);
|
||||
|
||||
/*
|
||||
* FileCopyUtils.copy(in, response.getOutputStream());
|
||||
* in.close();
|
||||
* response.getOutputStream().flush();
|
||||
* response.getOutputStream().close();
|
||||
*/
|
||||
BufferedInputStream in = null;
|
||||
BufferedOutputStream out = null;
|
||||
|
||||
try {
|
||||
in = new BufferedInputStream(new FileInputStream(uFile));
|
||||
out = new BufferedOutputStream(response.getOutputStream());
|
||||
|
||||
FileCopyUtils.copy(in, out);
|
||||
out.flush();
|
||||
} catch (Exception ex) {
|
||||
// 다음 Exception 무시 처리
|
||||
// Connection reset by peer: socket write error
|
||||
LOGGER.debug("IGNORED: {}", ex.getMessage());
|
||||
} finally {
|
||||
if (in != null) {
|
||||
try {
|
||||
in.close();
|
||||
} catch (Exception ignore) {
|
||||
LOGGER.debug("IGNORED: {}", ignore.getMessage());
|
||||
}
|
||||
}
|
||||
if (out != null) {
|
||||
try {
|
||||
out.close();
|
||||
} catch (Exception ignore) {
|
||||
LOGGER.debug("IGNORED: {}", ignore.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
response.setContentType("application/x-msdownload");
|
||||
|
||||
PrintWriter printwriter = response.getWriter();
|
||||
printwriter.println("<html>");
|
||||
printwriter.println("<br><br><br><h2>Could not get file name:<br>" + fvo.getOrignlFileNm() + "</h2>");
|
||||
printwriter.println("<br><br><br><center><h3><a href='javascript: history.go(-1)'>Back</a></h3></center>");
|
||||
printwriter.println("<br><br><br>© webAccess");
|
||||
printwriter.println("</html>");
|
||||
printwriter.flush();
|
||||
printwriter.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,157 @@
|
||||
package egovframework.com.cmm.web;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.com.cmm.service.EgovFileMngService;
|
||||
import egovframework.com.cmm.service.FileVO;
|
||||
import egovframework.com.cmm.util.EgovUserDetailsHelper;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
/**
|
||||
* 파일 조회, 삭제, 다운로드 처리를 위한 컨트롤러 클래스
|
||||
* @author 공통서비스개발팀 이삼섭
|
||||
* @since 2009.06.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.25 이삼섭 최초 생성
|
||||
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
public class EgovFileMngController {
|
||||
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
/**
|
||||
* 첨부파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param fileVO
|
||||
* @param atchFileId
|
||||
* @param sessionVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cmm/fms/selectFileInfs.do")
|
||||
public String selectFileInfs(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
|
||||
String atchFileId = (String)commandMap.get("param_atchFileId");
|
||||
|
||||
fileVO.setAtchFileId(atchFileId);
|
||||
List<FileVO> result = fileService.selectFileInfs(fileVO);
|
||||
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("updateFlag", "N");
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
model.addAttribute("atchFileId", atchFileId);
|
||||
|
||||
return "cmm/fms/EgovFileList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 첨부파일 변경을 위한 수정페이지로 이동한다.
|
||||
*
|
||||
* @param fileVO
|
||||
* @param atchFileId
|
||||
* @param sessionVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cmm/fms/selectFileInfsForUpdate.do")
|
||||
public String selectFileInfsForUpdate(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map<String, Object> commandMap,
|
||||
ModelMap model) throws Exception {
|
||||
|
||||
String atchFileId = (String)commandMap.get("param_atchFileId");
|
||||
|
||||
fileVO.setAtchFileId(atchFileId);
|
||||
|
||||
List<FileVO> result = fileService.selectFileInfs(fileVO);
|
||||
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("updateFlag", "Y");
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
model.addAttribute("atchFileId", atchFileId);
|
||||
|
||||
return "cmm/fms/EgovFileList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 첨부파일에 대한 삭제를 처리한다.
|
||||
*
|
||||
* @param fileVO
|
||||
* @param returnUrl
|
||||
* @param sessionVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cmm/fms/deleteFileInfs.do")
|
||||
public String deleteFileInf(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam("returnUrl") String returnUrl,
|
||||
HttpServletRequest request,
|
||||
ModelMap model) throws Exception {
|
||||
|
||||
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
||||
|
||||
if (isAuthenticated) {
|
||||
fileService.deleteFileInf(fileVO);
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// contextRoot가 있는 경우 제외 시켜야 함
|
||||
//--------------------------------------------
|
||||
////return "forward:/cmm/fms/selectFileInfs.do";
|
||||
//return "forward:" + returnUrl;
|
||||
|
||||
if ("".equals(request.getContextPath()) || "/".equals(request.getContextPath())) {
|
||||
return "forward:" + returnUrl;
|
||||
}
|
||||
|
||||
if (returnUrl.startsWith(request.getContextPath())) {
|
||||
return "forward:" + returnUrl.substring(returnUrl.indexOf("/", 1));
|
||||
} else {
|
||||
return "forward:" + returnUrl;
|
||||
}
|
||||
////------------------------------------------
|
||||
}
|
||||
|
||||
/**
|
||||
* 이미지 첨부파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param fileVO
|
||||
* @param atchFileId
|
||||
* @param sessionVO
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cmm/fms/selectImageFileInfs.do")
|
||||
public String selectImageFileInfs(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map<String, Object> commandMap,
|
||||
ModelMap model) throws Exception {
|
||||
|
||||
String atchFileId = (String)commandMap.get("atchFileId");
|
||||
|
||||
fileVO.setAtchFileId(atchFileId);
|
||||
List<FileVO> result = fileService.selectImageFileList(fileVO);
|
||||
|
||||
model.addAttribute("fileList", result);
|
||||
|
||||
return "cmm/fms/EgovImgFileList";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,145 @@
|
||||
package egovframework.com.cmm.web;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.com.cmm.SessionVO;
|
||||
import egovframework.com.cmm.service.EgovFileMngService;
|
||||
import egovframework.com.cmm.service.FileVO;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
|
||||
/**
|
||||
* @Class Name : EgovImageProcessController.java
|
||||
* @Description :
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 4. 2. 이삼섭
|
||||
* 2011.08.31. JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 4. 2.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class EgovImageProcessController extends HttpServlet {
|
||||
|
||||
/**
|
||||
* serialVersion UID
|
||||
*/
|
||||
private static final long serialVersionUID = -6339945210971171173L;
|
||||
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovImageProcessController.class);
|
||||
|
||||
/**
|
||||
* 첨부된 이미지에 대한 미리보기 기능을 제공한다.
|
||||
*
|
||||
* @param atchFileId
|
||||
* @param fileSn
|
||||
* @param sessionVO
|
||||
* @param model
|
||||
* @param response
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("resource")
|
||||
@RequestMapping("/cmm/fms/getImage.do")
|
||||
public void getImageInf(SessionVO sessionVO, ModelMap model, @RequestParam Map<String, Object> commandMap, HttpServletResponse response) throws Exception {
|
||||
|
||||
//@RequestParam("atchFileId") String atchFileId,
|
||||
//@RequestParam("fileSn") String fileSn,
|
||||
String atchFileId = (String)commandMap.get("atchFileId");
|
||||
String fileSn = (String)commandMap.get("fileSn");
|
||||
|
||||
FileVO vo = new FileVO();
|
||||
|
||||
vo.setAtchFileId(atchFileId);
|
||||
vo.setFileSn(fileSn);
|
||||
|
||||
FileVO fvo = fileService.selectFileInf(vo);
|
||||
|
||||
//String fileLoaction = fvo.getFileStreCours() + fvo.getStreFileNm();
|
||||
|
||||
File file = new File(fvo.getFileStreCours(), fvo.getStreFileNm());
|
||||
FileInputStream fis = null; new FileInputStream(file);
|
||||
|
||||
BufferedInputStream in = null;
|
||||
ByteArrayOutputStream bStream = null;
|
||||
try{
|
||||
fis = new FileInputStream(file);
|
||||
in = new BufferedInputStream(fis);
|
||||
bStream = new ByteArrayOutputStream();
|
||||
int imgByte;
|
||||
while ((imgByte = in.read()) != -1) {
|
||||
bStream.write(imgByte);
|
||||
}
|
||||
|
||||
String type = "";
|
||||
|
||||
if (fvo.getFileExtsn() != null && !"".equals(fvo.getFileExtsn())) {
|
||||
if ("jpg".equals(fvo.getFileExtsn().toLowerCase())) {
|
||||
type = "image/jpeg";
|
||||
} else {
|
||||
type = "image/" + fvo.getFileExtsn().toLowerCase();
|
||||
}
|
||||
type = "image/" + fvo.getFileExtsn().toLowerCase();
|
||||
|
||||
} else {
|
||||
LOGGER.debug("Image fileType is null.");
|
||||
}
|
||||
|
||||
response.setHeader("Content-Type", type);
|
||||
response.setContentLength(bStream.size());
|
||||
|
||||
bStream.writeTo(response.getOutputStream());
|
||||
|
||||
response.getOutputStream().flush();
|
||||
response.getOutputStream().close();
|
||||
|
||||
|
||||
}catch(Exception e){
|
||||
LOGGER.debug("{}", e);
|
||||
}finally{
|
||||
if (bStream != null) {
|
||||
try {
|
||||
bStream.close();
|
||||
} catch (Exception est) {
|
||||
LOGGER.debug("IGNORED: {}", est.getMessage());
|
||||
}
|
||||
}
|
||||
if (in != null) {
|
||||
try {
|
||||
in.close();
|
||||
} catch (Exception ei) {
|
||||
LOGGER.debug("IGNORED: {}", ei.getMessage());
|
||||
}
|
||||
}
|
||||
if (fis != null) {
|
||||
try {
|
||||
fis.close();
|
||||
} catch (Exception efis) {
|
||||
LOGGER.debug("IGNORED: {}", efis.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
package egovframework.com.cmm.web;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2006 The Apache Software Foundation.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the ";License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS"; BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.apache.commons.fileupload.FileItem;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.multipart.MultipartException;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
||||
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
||||
|
||||
/**
|
||||
* 실행환경의 파일업로드 처리를 위한 기능 클래스
|
||||
* @author 공통서비스개발팀 이삼섭
|
||||
* @since 2009.06.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.3.25 이삼섭 최초 생성
|
||||
* 2011.06.11 서준식 스프링 3.0 업그레이드 API변경으로인한 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class EgovMultipartResolver extends CommonsMultipartResolver {
|
||||
public EgovMultipartResolver() {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 첨부파일 처리를 위한 multipart resolver를 생성한다.
|
||||
*
|
||||
* @param servletContext
|
||||
*/
|
||||
public EgovMultipartResolver(ServletContext servletContext) {
|
||||
super(servletContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* multipart에 대한 parsing을 처리한다.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
protected MultipartParsingResult parseFileItems(List fileItems, String encoding) {
|
||||
|
||||
//스프링 3.0변경으로 수정한 부분
|
||||
MultiValueMap<String, MultipartFile> multipartFiles = new LinkedMultiValueMap<String, MultipartFile>();
|
||||
Map<String, String[]> multipartParameters = new HashMap<String, String[]>();
|
||||
|
||||
// Extract multipart files and multipart parameters.
|
||||
for (Iterator<?> it = fileItems.iterator(); it.hasNext();) {
|
||||
FileItem fileItem = (FileItem)it.next();
|
||||
|
||||
if (fileItem.isFormField()) {
|
||||
|
||||
String value = null;
|
||||
if (encoding != null) {
|
||||
try {
|
||||
value = fileItem.getString(encoding);
|
||||
} catch (UnsupportedEncodingException ex) {
|
||||
if (logger.isWarnEnabled()) {
|
||||
logger.warn("Could not decode multipart item '" + fileItem.getFieldName() + "' with encoding '" + encoding
|
||||
+ "': using platform default");
|
||||
}
|
||||
value = fileItem.getString();
|
||||
}
|
||||
} else {
|
||||
value = fileItem.getString();
|
||||
}
|
||||
String[] curParam = multipartParameters.get(fileItem.getFieldName());
|
||||
if (curParam == null) {
|
||||
// simple form field
|
||||
multipartParameters.put(fileItem.getFieldName(), new String[] { value });
|
||||
} else {
|
||||
// array of simple form fields
|
||||
String[] newParam = StringUtils.addStringToArray(curParam, value);
|
||||
multipartParameters.put(fileItem.getFieldName(), newParam);
|
||||
}
|
||||
} else {
|
||||
|
||||
if (fileItem.getSize() > 0) {
|
||||
// multipart file field
|
||||
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
|
||||
|
||||
|
||||
//스프링 3.0 업그레이드 API변경으로인한 수정
|
||||
List<MultipartFile> fileList = new ArrayList<MultipartFile>();
|
||||
fileList.add(file);
|
||||
|
||||
|
||||
if (multipartFiles.put(fileItem.getName(), fileList) != null) { // CHANGED!!
|
||||
throw new MultipartException("Multiple files for field name [" + file.getName()
|
||||
+ "] found - not supported by MultipartResolver");
|
||||
}
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Found multipart file [" + file.getName() + "] of size " + file.getSize() + " bytes with original filename ["
|
||||
+ file.getOriginalFilename() + "], stored " + file.getStorageDescription());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return new MultipartParsingResult(multipartFiles, multipartParameters, null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package gtpa.icsmw.common.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 23/04/2019
|
||||
* TIME : 1:30 PM
|
||||
* Project : icsmw
|
||||
* Class : CommonService
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public interface CommonService {
|
||||
List<Map> getCommonCode();
|
||||
List<Map> getCommonCode(Map param);
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package gtpa.icsmw.common.service.impl;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 23/04/2019
|
||||
* TIME : 1:33 PM
|
||||
* Project : icsmw
|
||||
* Class : CommonMapper
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Repository("commonDao")
|
||||
public class CommonMapper extends EgovAbstractMapper{
|
||||
private String NAMESPACE = "CommonDAO";
|
||||
|
||||
public List<Map> getCommonCode() {
|
||||
return selectList(NAMESPACE+".getAllCommonCode");
|
||||
}
|
||||
|
||||
public List<Map> getCommonCode(Map param) {
|
||||
return selectList(NAMESPACE+".getCommonCode",param);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package gtpa.icsmw.common.service.impl;
|
||||
|
||||
import gtpa.icsmw.common.service.CommonService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 23/04/2019
|
||||
* TIME : 1:32 PM
|
||||
* Project : icsmw
|
||||
* Class : CommonServiceImpl
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Service("commonService")
|
||||
public class CommonServiceImpl implements CommonService{
|
||||
|
||||
@Resource(name = "commonDao")
|
||||
CommonMapper commonMapper;
|
||||
|
||||
@Override
|
||||
public List<Map> getCommonCode() {
|
||||
return commonMapper.getCommonCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map> getCommonCode(Map param) {
|
||||
return commonMapper.getCommonCode(param);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package gtpa.icsmw.common.web;
|
||||
|
||||
import java.util.Enumeration;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.MessageSource;
|
||||
|
||||
public class BaseController{
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(BaseController.class);
|
||||
|
||||
@Autowired
|
||||
protected MessageSource messageSource;
|
||||
|
||||
public void printRequest(HttpServletRequest pReq) {
|
||||
|
||||
Enumeration<?> eParam = pReq.getParameterNames();
|
||||
while (eParam.hasMoreElements()) {
|
||||
String pName = (String) eParam.nextElement();
|
||||
String pValue = pReq.getParameter(pName);
|
||||
|
||||
logger.info("#### RequestParamMap = " + pName + " : " + pValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package gtpa.icsmw.common.web;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import gtpa.icsmw.common.service.CommonService;
|
||||
import gtpa.icsmw.util.Result;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 23/04/2019
|
||||
* TIME : 1:30 PM
|
||||
* Project : icsmw
|
||||
* Class : CommonController
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Controller
|
||||
public class CommonController {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(CommonController.class);
|
||||
|
||||
@Autowired
|
||||
CommonService commonService;
|
||||
|
||||
@RequestMapping(value = "/common/getCommonCode.do", method = RequestMethod.GET)
|
||||
public @ResponseBody
|
||||
Result getCommonCode() {
|
||||
Result result = new Result();
|
||||
List<Map> codeList = new ArrayList<>();
|
||||
try {
|
||||
codeList = commonService.getCommonCode();
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,e);
|
||||
} finally {
|
||||
result.setData("code", codeList);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/common/getCommonCode.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Result getCommonCode(@RequestBody Map<String, Object> param) {
|
||||
Result result = new Result();
|
||||
List<Map> codeList = new ArrayList<>();
|
||||
Map<String, Object> params = (Map) param.get("param");
|
||||
try {
|
||||
codeList = commonService.getCommonCode(params);
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,e);
|
||||
} finally {
|
||||
result.setData("code", codeList);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
package gtpa.icsmw.handler;
|
||||
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 23/04/2019
|
||||
* TIME : 2:13 PM
|
||||
* Project : icsmw
|
||||
* Class : ClobTypeHandler
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@MappedJdbcTypes(value = {JdbcType.CLOB})
|
||||
public class ClobTypeHandler extends BaseTypeHandler<String>{
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
|
||||
preparedStatement.setString(i,s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
|
||||
return resultSet.getString(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
|
||||
return resultSet.getString(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
|
||||
return callableStatement.getString(i);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package gtpa.icsmw.handler;
|
||||
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 23/04/2019
|
||||
* TIME : 2:01 PM
|
||||
* Project : icsmw
|
||||
* Class : StringTypeHandler
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@MappedJdbcTypes(value = {JdbcType.VARCHAR,JdbcType.CHAR})
|
||||
public class StringTypeHandler extends BaseTypeHandler<String>{
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
|
||||
preparedStatement.setString(i,s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
|
||||
if(resultSet.getString(s) != null){
|
||||
return resultSet.getString(s).trim();
|
||||
}else{
|
||||
return resultSet.getString(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
|
||||
if(resultSet.getString(i) != null){
|
||||
return resultSet.getString(i).trim();
|
||||
}else{
|
||||
return resultSet.getString(i);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
|
||||
if(callableStatement.getString(i) != null){
|
||||
return callableStatement.getString(i).trim();
|
||||
}else{
|
||||
return callableStatement.getString(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,188 @@
|
||||
package gtpa.icsmw.home.web;
|
||||
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import gtpa.icsmw.user.dto.UserInfo;
|
||||
import gtpa.icsmw.util.PageURIUtil;
|
||||
import gtpa.icsmw.util.Result;
|
||||
import eu.bitwalker.useragentutils.DeviceType;
|
||||
import eu.bitwalker.useragentutils.OperatingSystem;
|
||||
import eu.bitwalker.useragentutils.UserAgent;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Controller
|
||||
public class InitController {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(InitController.class);
|
||||
@Autowired
|
||||
private UserInfo userInfo;
|
||||
|
||||
@Autowired
|
||||
private PageURIUtil pageURIUtil;
|
||||
|
||||
public InitController() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 다국어 처리 Root Url 처리
|
||||
*
|
||||
* @date 2017.12.22
|
||||
* @author Inswave
|
||||
* @example websquare 진입 후 세션과 설정 값에 따른 화면 xml 분기를 위한 controller. 고려 대상은 websquare.jsp와 I18N.jsp. 화면 페이지의 정보는 properties파일에서 일괄 관리.
|
||||
* @todo 차후 interceptor에서 일괄 처리 가능한지 체크 해야 함.
|
||||
*/
|
||||
@RequestMapping("/I18N")
|
||||
public String indexMultiLang(HttpServletRequest request, HttpServletResponse response, Model model) {
|
||||
model.addAttribute("movePage", getInitPage(request.getParameter("w2xPath")));
|
||||
return "websquare/I18N";
|
||||
}
|
||||
|
||||
/**
|
||||
* 기본 Root Url 처리
|
||||
*
|
||||
* @date 2017.12.22
|
||||
* @author Inswave
|
||||
* @todo url의 경로가 /(root)인 경우 웹스퀘어 엔진에서 하위 컨텐츠 로딩 부분의 특이사항이 발견되어 redirect로 처리.수정 및 개선 필요.
|
||||
*/
|
||||
/* @RequestMapping(value = "/", method = RequestMethod.GET)
|
||||
public String IndexBase(HttpServletRequest request, Model model) throws Exception {
|
||||
return "redirect:/ws.do";
|
||||
}*/
|
||||
@RequestMapping(value = "/ws.do", method = RequestMethod.GET)
|
||||
public ModelAndView IndexHideBase(HttpServletRequest request, HttpServletResponse response) {
|
||||
ModelAndView mv = new ModelAndView();
|
||||
HttpSession session = request.getSession(false);
|
||||
String movePage = request.getParameter("w2xPath");
|
||||
String linkPage = request.getParameter("link");
|
||||
|
||||
if(session.getAttribute("w2xPath") != null){
|
||||
movePage = (String)session.getAttribute("w2xPath");
|
||||
session.removeAttribute("w2xPath");
|
||||
}else{
|
||||
if (movePage == null || movePage.equals("")) {
|
||||
movePage = getInitPage(movePage);
|
||||
}
|
||||
}
|
||||
|
||||
if(linkPage == null && session.getAttribute("link") != null){
|
||||
linkPage = (String)session.getAttribute("link");
|
||||
session.removeAttribute("link");
|
||||
}
|
||||
|
||||
mv.setViewName("websquare/websquare");
|
||||
mv.addObject("movePage", movePage);
|
||||
mv.addObject("link", linkPage);
|
||||
logger.info("movePage ::" + movePage);
|
||||
logger.info("link ::" + linkPage);
|
||||
UserAgent agent = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
|
||||
// operating system
|
||||
OperatingSystem os = agent.getOperatingSystem();
|
||||
// device type
|
||||
DeviceType deviceType = os.getDeviceType();
|
||||
logger.info("*Device: " + deviceType.getName());
|
||||
return mv;
|
||||
}
|
||||
|
||||
/**
|
||||
* SPA IFrame에서 호출하는 Blank 페이지를 반환하다.
|
||||
*
|
||||
* @param request
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/blank.xml", method = RequestMethod.GET)
|
||||
public String callBlankPage(HttpServletRequest request, Model model) {
|
||||
return "websquare/blank";
|
||||
}
|
||||
|
||||
/**
|
||||
* 로그인 페이지 Url을 반환한다.
|
||||
*
|
||||
* @param w2xPath w2xPath 파라미터
|
||||
* @return 로그인 페이지 Url
|
||||
*/
|
||||
private String getInitPage(String w2xPath) {
|
||||
String movePage = w2xPath;
|
||||
// session이 없을 경우 login 화면으로 이동.
|
||||
if (!userInfo.isLogined()) {
|
||||
// session이 있고 w2xPath가 없을 경우 index화면으로 이동.
|
||||
if (movePage == null) {
|
||||
//movePage = pageURIUtil.getLoginPage();
|
||||
movePage = pageURIUtil.getIndexPage();
|
||||
} else if (w2xPath.indexOf("/cm/main/") < 0) {
|
||||
//movePage = pageURIUtil.getLoginPage();
|
||||
movePage = pageURIUtil.getIndexPage();
|
||||
} else if (w2xPath.indexOf("/cm/join/") < 0) {
|
||||
// System.out.println(w2xPath);
|
||||
}
|
||||
} else {
|
||||
if (movePage == null) {
|
||||
// DB 설정조회 초기 page 구성
|
||||
movePage = pageURIUtil.getIndexPageURI();
|
||||
|
||||
// DB에 값이 저장되어 있지 않은 경우 기본 index화면으로 이동
|
||||
if (movePage == null) {
|
||||
movePage = pageURIUtil.getIndexPageURI();
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.info("getInit movePage ::" + movePage);
|
||||
return movePage;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/initTempData.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map initTempData(HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
try {
|
||||
HttpSession session = request.getSession(false);
|
||||
if (session != null && session.getAttribute("scopedTarget.tempUserSessionInfoDTO") != null) {
|
||||
session.invalidate();
|
||||
}
|
||||
result.setMsg(Result.STATUS_SUCESS, Result.STATUS_SUCESS_MESSAGE);
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,e);
|
||||
}
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/refreshPage.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map refreshPage(HttpServletRequest request, @RequestBody Map param) {
|
||||
Result result = new Result();
|
||||
try {
|
||||
HttpSession session = request.getSession(false);
|
||||
if (session != null) {
|
||||
session.setAttribute("link",param.get("link"));
|
||||
}
|
||||
result.setMsg(Result.STATUS_SUCESS, Result.STATUS_SUCESS_MESSAGE);
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,e);
|
||||
}
|
||||
return result.getResult();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package gtpa.icsmw.icsmanager.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IcsManagerService {
|
||||
|
||||
// ICS 관리 메인 메소드
|
||||
public List getIcsOperTroblMainList(Map param);
|
||||
|
||||
public List getIcsMainList(Map param);
|
||||
|
||||
// CCTV 관련 메소드
|
||||
public List getCctvList(Map param);
|
||||
|
||||
public Map getCctvView(Map param);
|
||||
|
||||
public Map getCctvErrorInfoView(Map param);
|
||||
|
||||
public Map cctvErrorActionMemoSave(Map param);
|
||||
|
||||
// ANPR 관련 메소드
|
||||
public List getAnprList(Map param);
|
||||
|
||||
public Map getAnprView(Map param);
|
||||
|
||||
public Map getAnprErrorInfoView(Map param);
|
||||
|
||||
public Map anprErrorActionMemoSave(Map param);
|
||||
|
||||
// VMS 관련 메소드
|
||||
public List getVmsList(Map param);
|
||||
|
||||
public Map getVmsView(Map param);
|
||||
|
||||
public Map getVmsErrorInfoView(Map param);
|
||||
|
||||
public Map vmsErrorActionMemoSave(Map param);
|
||||
|
||||
public Map errorActionMemoSave(Map param1, Map param2);
|
||||
|
||||
public Map rtuReset(Map param);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,111 @@
|
||||
package gtpa.icsmw.icsmanager.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : jackt
|
||||
* <p>
|
||||
* Date : 08/08/2019
|
||||
* TIME : 9:34 AM
|
||||
* Project : icsmw
|
||||
* Class : IcsManagerMapper
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Repository("icsManagerDao")
|
||||
public class IcsManagerMapper extends EgovAbstractMapper {
|
||||
private String NAMESPACE = "IcsManagerDao";
|
||||
|
||||
//장애관리 메인 목록
|
||||
public List getOperTroblManagerList(Map param) {
|
||||
return selectList(NAMESPACE + ".getOperTroblManagerList", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
//현장장비 메인 검색 목록
|
||||
public List getCctvAnprVmsList(Map param) {
|
||||
return selectList(NAMESPACE + ".getCctvAnprVmsList", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// cctv 현장장비 검색 목록
|
||||
public List getCctvList(Map param) {
|
||||
return selectList(NAMESPACE + ".getCctvList", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// anpr 현장장비 검색 목록
|
||||
public List getAnprList(Map param) {
|
||||
return selectList(NAMESPACE + ".getAnprList", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// cctv, anpr 현장장비 검색 목록
|
||||
public List getCctvAnprList(Map param) {
|
||||
return selectList(NAMESPACE + ".getCctvAnprList", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// 장애내역 처리 공통 메퍼 Start
|
||||
// cctv anpr 현장장비 상세
|
||||
public Map getCctvAnprView(Map param) {
|
||||
return selectOne(NAMESPACE + ".getCctvAnprView", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// cctv anpr 장애내역 상세
|
||||
public Map getErrorInfoView(Map param) {
|
||||
return selectOne(NAMESPACE + ".getErrorInfoView", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// 장애내역 신규생성 및 업데이트
|
||||
public int errorActionMemoSave(Map param) {
|
||||
return insert(NAMESPACE + ".errorActionMemoSave", param);
|
||||
}
|
||||
|
||||
;
|
||||
// 장애내역 처리 공통 메퍼 End
|
||||
|
||||
|
||||
// vms 현장장비 검색 목록
|
||||
public List getVmsList(Map param) {
|
||||
return selectList(NAMESPACE + ".getVmsList", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// vms 현장장비 상세
|
||||
public Map getVmsView(Map param) {
|
||||
return selectOne(NAMESPACE + ".getVmsView", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
// vms 장애내역 상세
|
||||
public Map getVmsErrorInfoView(Map param) {
|
||||
return selectOne(NAMESPACE + ".getVmsErrorInfoView", param);
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,318 @@
|
||||
package gtpa.icsmw.icsmanager.service.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.ResponseHandler;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.BasicResponseHandler;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import gtpa.icsmw.icsmanager.service.IcsManagerService;
|
||||
|
||||
@Service
|
||||
public class IcsManagerServiceImpl implements IcsManagerService {
|
||||
|
||||
@Resource(name = "icsManagerDao")
|
||||
private IcsManagerMapper icsManagerMapper;
|
||||
|
||||
@Resource(name = "globalsProperties")
|
||||
private Properties env;
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(IcsManagerServiceImpl.class);
|
||||
|
||||
// 장애관리 메인 목록
|
||||
@Override
|
||||
public List getIcsOperTroblMainList(Map param) {
|
||||
List<Map> rsList = new ArrayList<>();
|
||||
rsList = icsManagerMapper.getOperTroblManagerList(param);
|
||||
|
||||
logger.info("rsList : " + rsList);
|
||||
|
||||
return rsList;
|
||||
}
|
||||
|
||||
// 현장장비 검색 메인 목록
|
||||
@Override
|
||||
public List getIcsMainList(Map param) {
|
||||
List<Map> rsList = new ArrayList<>();
|
||||
rsList = icsManagerMapper.getCctvAnprVmsList(param);
|
||||
return rsList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List getCctvList(Map param) {
|
||||
List<Map> rsList = new ArrayList<>();
|
||||
rsList = icsManagerMapper.getCctvList(param);
|
||||
|
||||
logger.info("rsList : " + rsList);
|
||||
|
||||
return rsList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getCctvView(Map param) {
|
||||
Map tmpInfo = icsManagerMapper.getCctvAnprView(param);
|
||||
logger.info("tmpInfo : " + tmpInfo);
|
||||
|
||||
return tmpInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getCctvErrorInfoView(Map param) {
|
||||
Map tmpInfo = icsManagerMapper.getErrorInfoView(param);
|
||||
logger.info("tmpInfo : " + tmpInfo);
|
||||
|
||||
return tmpInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map cctvErrorActionMemoSave(Map param) {
|
||||
int cnt = 0;
|
||||
cnt = icsManagerMapper.errorActionMemoSave(param);
|
||||
|
||||
HashMap result = new HashMap();
|
||||
if(cnt > 0) {
|
||||
result.put("STATUS", "S");
|
||||
} else {
|
||||
result.put("STATUS", "F");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List getAnprList(Map param) {
|
||||
List<Map> rsList = new ArrayList<>();
|
||||
rsList = icsManagerMapper.getAnprList(param);
|
||||
|
||||
logger.info("rsList : " + rsList);
|
||||
|
||||
return rsList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getAnprView(Map param) {
|
||||
Map tmpInfo = icsManagerMapper.getCctvAnprView(param);
|
||||
logger.info("tmpInfo : " + tmpInfo);
|
||||
|
||||
return tmpInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getAnprErrorInfoView(Map param) {
|
||||
Map tmpInfo = icsManagerMapper.getErrorInfoView(param);
|
||||
logger.info("tmpInfo : " + tmpInfo);
|
||||
|
||||
return tmpInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map anprErrorActionMemoSave(Map param) {
|
||||
int cnt = 0;
|
||||
cnt = icsManagerMapper.errorActionMemoSave(param);
|
||||
|
||||
HashMap result = new HashMap();
|
||||
if(cnt > 0) {
|
||||
result.put("STATUS", "S");
|
||||
} else {
|
||||
result.put("STATUS", "F");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List getVmsList(Map param) {
|
||||
List<Map> rsList = new ArrayList<>();
|
||||
rsList = icsManagerMapper.getVmsList(param);
|
||||
|
||||
logger.info("rsList : " + rsList);
|
||||
|
||||
return rsList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getVmsView(Map param) {
|
||||
Map tmpInfo = icsManagerMapper.getVmsView(param);
|
||||
logger.info("tmpInfo : " + tmpInfo);
|
||||
|
||||
return tmpInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getVmsErrorInfoView(Map param) {
|
||||
Map tmpInfo = icsManagerMapper.getVmsErrorInfoView(param);
|
||||
logger.info("tmpInfo : " + tmpInfo);
|
||||
|
||||
return tmpInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map vmsErrorActionMemoSave(Map param) {
|
||||
int cnt = 0;
|
||||
cnt = icsManagerMapper.errorActionMemoSave(param);
|
||||
|
||||
HashMap result = new HashMap();
|
||||
if(cnt > 0) {
|
||||
result.put("STATUS", "S");
|
||||
} else {
|
||||
result.put("STATUS", "F");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map errorActionMemoSave(Map param1, Map param2) {
|
||||
logger.info("param1::" + param1);
|
||||
logger.info("param2::" + param2);
|
||||
|
||||
param2.put("cctvAnprId", param1.get("cctvAnprId"));
|
||||
param2.put("troblDt", param1.get("troblDt"));
|
||||
|
||||
int cnt = 0;
|
||||
cnt = icsManagerMapper.errorActionMemoSave(param2);
|
||||
|
||||
HashMap result = new HashMap();
|
||||
if(cnt > 0) {
|
||||
result.put("STATUS", "S");
|
||||
} else {
|
||||
result.put("STATUS", "F");
|
||||
}
|
||||
|
||||
result.put("cctvAnprId", param1.get("cctvAnprId"));
|
||||
result.put("troblDt", param1.get("troblDt"));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map rtuReset(Map param) {
|
||||
Map result = null;
|
||||
String url = env.getProperty("Globals.SmartPlatform.Url") + env.getProperty("Globals.SmartPlatform.RTUResetURL");
|
||||
String ip = (String) param.get("IP_ADRES");
|
||||
int port = (int) param.get("PORT");
|
||||
String macAddress = (String) param.get("MAC_ADRES");
|
||||
String relayNum = (String) param.get("RELAY_NO");
|
||||
|
||||
Map reqData = new LinkedHashMap();
|
||||
reqData.put("ip", ip);
|
||||
reqData.put("port", port);
|
||||
//reqData.put("macAddress", macAddress);
|
||||
reqData.put("macAddress", "000000000000");//맥 어드레스는 0 12자리로.
|
||||
reqData.put("relayNum", 1+relayNum);
|
||||
reqData.put("state", "2");//( 0 : off, 1:on, 2:reset(default)
|
||||
|
||||
logger.info("url::" + url);
|
||||
logger.info("reqData::" + reqData);
|
||||
result = requestRtuResetApi(url, reqData);
|
||||
logger.info("result:: " + result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map requestRtuResetApi(String requestURL,
|
||||
Map reqData
|
||||
) {
|
||||
Map result = new HashMap();
|
||||
//CloseableHttpClient client = HttpClients.createDefault();
|
||||
RequestConfig defaultRequestConfig = RequestConfig.custom()
|
||||
.setSocketTimeout(10000)
|
||||
.setConnectTimeout(10000)
|
||||
.setConnectionRequestTimeout(10000)
|
||||
.setStaleConnectionCheckEnabled(true)
|
||||
.build();
|
||||
CloseableHttpClient client = HttpClients.custom()
|
||||
.setDefaultRequestConfig(defaultRequestConfig)
|
||||
.build();
|
||||
try {
|
||||
String token = env.getProperty("Globals.SmartPlatform.token");
|
||||
HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성
|
||||
postRequest.setHeader("Accept", "application/json");
|
||||
postRequest.setHeader("BROKER_TOKEN", token);
|
||||
List<NameValuePair> pairs = new ArrayList<>();
|
||||
Iterator<String> keys = reqData.keySet().iterator();
|
||||
while (keys.hasNext()) {
|
||||
String key = keys.next();
|
||||
String val = "";
|
||||
if("port".equals(key)) {
|
||||
int port = (int) reqData.get("port");
|
||||
val = String.valueOf(port);
|
||||
} else {
|
||||
val = (String)reqData.get(key);
|
||||
}
|
||||
pairs.add(new BasicNameValuePair(key, val));
|
||||
}
|
||||
postRequest.setEntity(new UrlEncodedFormEntity(pairs, "UTF-8"));
|
||||
HttpResponse response = client.execute(postRequest);
|
||||
//Response 출력
|
||||
if (response.getStatusLine().getStatusCode() == 200) {
|
||||
ResponseHandler<String> handler = new BasicResponseHandler();
|
||||
String body = handler.handleResponse(response);
|
||||
JSONParser parser = new JSONParser();
|
||||
Object obj = parser.parse(body);
|
||||
JSONObject jsonObj = (JSONObject) obj;
|
||||
JSONArray datas = (JSONArray) jsonObj.get("data");
|
||||
logger.info("body::" + jsonObj.toJSONString());
|
||||
if (jsonObj.get("result").equals("SUCCESS")) {
|
||||
if (jsonObj.get("resultCode").equals("")) {
|
||||
result.put("rspnsResult", "S");
|
||||
result.put("data", datas);
|
||||
} else {
|
||||
result.put("rspnsResult", "E");
|
||||
}
|
||||
result.put("rspnsCode", "0000");
|
||||
result.put("rspnsMssage", jsonObj.get("rspnsMssage"));
|
||||
} else {
|
||||
result.put("rspnsResult", "E");
|
||||
result.put("rspnsCode", "9999");
|
||||
result.put("rspnsMssage", jsonObj.get("resultMessage"));
|
||||
}
|
||||
} else {
|
||||
logger.error("response is error : " + response.getStatusLine().getStatusCode());
|
||||
result.put("rspnsResult", "E");
|
||||
result.put("rspnsCode", "9999");
|
||||
result.put("rspnsMssage", "response is error");
|
||||
}
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.put("rspnsResult", "E");
|
||||
result.put("rspnsCode", "9999");
|
||||
result.put("rspnsMssage", "시스템 오류가 발생하였습니다.");
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
result.put("rspnsResult", "E");
|
||||
result.put("rspnsCode", "9999");
|
||||
result.put("rspnsMssage", "연결 오류가 발생하였습니다.");
|
||||
} finally {
|
||||
try {
|
||||
client.close();
|
||||
} catch (IOException io) {
|
||||
logger.error("[process error::" + "" + "]", io);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,558 @@
|
||||
package gtpa.icsmw.icsmanager.web;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import gtpa.icsmw.user.dto.UserInfo;
|
||||
import gtpa.icsmw.common.web.BaseController;
|
||||
import gtpa.icsmw.icsmanager.service.IcsManagerService;
|
||||
import gtpa.icsmw.util.Result;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : jackt
|
||||
* Date : 22/07/2019
|
||||
* TIME : 14:00 PM
|
||||
* Project : ICSMOBILE
|
||||
* Class : IcsManagerController
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Controller
|
||||
public class IcsManagerController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IcsManagerService icsManagerService;
|
||||
|
||||
@Autowired
|
||||
private UserInfo userInfo;
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(IcsManagerController.class);
|
||||
|
||||
/**
|
||||
* 장애관리 메인 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the ics oper trobl main list
|
||||
*/
|
||||
|
||||
@RequestMapping(value = "/icsmanager/getIcsOperTroblMainList.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getIcsOperTroblMainList(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getIcsOperTroblMainList POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dlt_resultIcsOperTroblMainList", icsManagerService.getIcsOperTroblMainList(dbParam));
|
||||
|
||||
logger.info("getIcsOperTroblMainList Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 현장장비관리 메인검색 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the ics main list
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getIcsMainList.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getIcsMainList(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getIcsMainList POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
List<Map> resultList = new ArrayList<>();
|
||||
resultList = icsManagerService.getIcsMainList(dbParam);
|
||||
|
||||
result.setData("dlt_resultIcsMainList", resultList);
|
||||
|
||||
logger.info("getIcsMainList Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* CCTV 목록 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the cctv list
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getCctvList.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getCctvList(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getCctvList POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dlt_resultList", icsManagerService.getCctvList(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* CCTV 상세 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the cctv view
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getCctvView.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getCctvView(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getCctvView POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.getCctvView(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* CCTV 장애 조치내역 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the cctv error info view
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getCctvErrorInfoView.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getCctvErrorInfoView(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getCctvErrorInfoView POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.getCctvErrorInfoView(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* CCTV 장애 조치내역 저장
|
||||
*
|
||||
* @param param the param
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/cctvErrorActionMemoSave.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> cctvErrorActionMemoSave(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== cctvErrorActionMemoSave POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_saveParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_saveParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.cctvErrorActionMemoSave(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_WARNING, "저장시 에러가 발생하였습니다.<br>입력파라미터 또는 로그를 확인해주세요.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "저장시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* ANPR 목록 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the anpr list
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getAnprList.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getAnprList(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getAnprList POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dlt_resultList", icsManagerService.getAnprList(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* ANPR 상세 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the anpr view
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getAnprView.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getAnprView(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getAnprView POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.getAnprView(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* ANPR 장애 조치내역 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the anpr error info view
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getAnprErrorInfoView.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getAnprErrorInfoView(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getAnprErrorInfoView POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.getAnprErrorInfoView(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* ANPR 장애 조치내역 저장
|
||||
*
|
||||
* @param param the param
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/anprErrorActionMemoSave.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> anprErrorActionMemoSave(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== anprErrorActionMemoSave POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
logger.info("Param Data : " + (Map) param.get("dma_result"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_saveParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.anprErrorActionMemoSave(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_WARNING, "저장시 에러가 발생하였습니다.<br>입력파라미터 또는 로그를 확인해주세요.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "저장시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* VMS 목록 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the vms list
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getVmsList.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getVmsList(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getVmsList POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dlt_resultList", icsManagerService.getVmsList(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* VMS 상세 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the vms view
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getVmsView.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getVmsView(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getVmsView POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.getVmsView(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* VMS 장애 조치내역 조회
|
||||
*
|
||||
* @param param the param
|
||||
* @return the vms error info view
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/getVmsErrorInfoView.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> getVmsErrorInfoView(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== getVmsErrorInfoView POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_searchParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_searchParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.getVmsErrorInfoView(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "조회시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "조회시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* VMS 장애 조치내역 저장
|
||||
*
|
||||
* @param param the param
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/vmsErrorActionMemoSave.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> vmsErrorActionMemoSave(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== vmsErrorActionMemoSave POST =======");
|
||||
logger.info("Param Data : " + (Map) param.get("dma_saveParm"));
|
||||
|
||||
Map dbParam = (Map) param.get("dma_saveParm");
|
||||
|
||||
result.setData("dma_result", icsManagerService.vmsErrorActionMemoSave(dbParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 죄회되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_WARNING, "저장시 에러가 발생하였습니다.<br>입력파라미터 또는 로그를 확인해주세요.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "저장시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* ANPR 장애 조치내역 저장
|
||||
*
|
||||
* @param param the param
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/errorActionMemoSave.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> errorActionMemoSave(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== anprErrorActionMemoSave POST =======");
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
Map dbSearchParam = (Map) param.get("dma_searchParm");
|
||||
Map dbInputParam = (Map) param.get("dma_result");
|
||||
resultMap = userInfo.getUserInfoByBase();
|
||||
|
||||
logger.info("dbSearchParam::" + dbSearchParam);
|
||||
logger.info("dbInputParam::" + dbInputParam);
|
||||
logger.info("resultMap::" + resultMap);
|
||||
dbInputParam.put("MBER_ID", resultMap.get("MBER_ID"));
|
||||
|
||||
result.setData("dma_result", icsManagerService.errorActionMemoSave(dbSearchParam, dbInputParam));
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 저장되었습니다.");
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_WARNING, "저장시 에러가 발생하였습니다.<br>입력파라미터 또는 로그를 확인해주세요.",re);
|
||||
} catch (Exception ex) {
|
||||
result.setMsg(result.STATUS_ERROR, "저장시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 현장장비 재가동 API 호출
|
||||
*
|
||||
* @param param the param
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/icsmanager/rtuReset.do", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
Map<String, Object> rtuReset(@RequestBody Map<String, Object> param) {
|
||||
|
||||
Result result = new Result();
|
||||
try {
|
||||
logger.info("====#####== rtuReset POST =======");
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
Map resetParam = (Map) param.get("dma_rtu_reset");
|
||||
|
||||
logger.info("resetParam::" + resetParam);
|
||||
resultMap = icsManagerService.rtuReset(resetParam);
|
||||
logger.info("resultMap::" + resultMap);
|
||||
|
||||
result.setData("dma_rtu_reset", resultMap);
|
||||
|
||||
logger.info("Result Data: " + result.getResult());
|
||||
result.setMsg(result.STATUS_SUCESS, "정상적으로 전송되었습니다.");
|
||||
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, "전송시 에러가 발생하였습니다.",re);
|
||||
} catch (Exception ex) {
|
||||
logger.error("[process error::" + "" + "]", ex);
|
||||
result.setMsg(result.STATUS_ERROR, "전송시 에러가 발생하였습니다.", ex);
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
package gtpa.icsmw.interceptor;
|
||||
|
||||
import eu.bitwalker.useragentutils.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.servlet.mvc.WebContentInterceptor;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 31/05/2019
|
||||
* TIME : 5:30 PM
|
||||
* Project : icsmw
|
||||
* Class : AccessStaticInterceptor
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class AccessStaticInterceptor extends WebContentInterceptor {
|
||||
private Logger logger = LoggerFactory.getLogger(AccessStaticInterceptor.class);
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
|
||||
logger.info("=== refresh browser");
|
||||
logger.info("=== access Browser:"+request.getHeader("user-agent"));
|
||||
|
||||
UserAgent agent = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
|
||||
// browser
|
||||
Browser browser = agent.getBrowser();
|
||||
logger.info("Browser type: " + browser.getBrowserType().getName());
|
||||
logger.info("*Browser name: " + browser.getName());
|
||||
logger.info("Browser render engine: " + browser.getRenderingEngine());
|
||||
|
||||
Version version = agent.getBrowserVersion();
|
||||
if (version != null){
|
||||
logger.info("*Browser version: " + version.getVersion());
|
||||
logger.info("Browser major version: " + version.getMajorVersion());
|
||||
logger.info("Browser minor version: " + version.getMinorVersion());
|
||||
}
|
||||
logger.info("Browser manufacturer: " + browser.getManufacturer().getName());
|
||||
|
||||
// operating system
|
||||
OperatingSystem os = agent.getOperatingSystem();
|
||||
logger.info("*OS Name: " + os.getName());
|
||||
logger.info("OS Manufacturer: " + os.getManufacturer());
|
||||
OperatingSystem group = os.getGroup();
|
||||
logger.info("OS group: " + group.getName());
|
||||
|
||||
// device type
|
||||
DeviceType deviceType = os.getDeviceType();
|
||||
logger.info("*Device: " + deviceType.getName());
|
||||
|
||||
return super.preHandle(request, response, handler);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package gtpa.icsmw.interceptor;
|
||||
|
||||
import gtpa.icsmw.user.dto.UserInfo;
|
||||
import gtpa.icsmw.util.Result;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.method.HandlerMethod;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.WebContentInterceptor;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 17/04/2019
|
||||
* TIME : 5:59 PM
|
||||
* Project : icsmw
|
||||
* Class : AuthenticInterceptor
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class AuthenticInterceptor extends WebContentInterceptor {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(AuthenticInterceptor.class);
|
||||
|
||||
@Autowired
|
||||
private UserInfo userInfo;
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException {
|
||||
boolean result = true;
|
||||
try {
|
||||
logger.info("== AuthenticInterceptor preHandle start =======" + request.getRequestURI());
|
||||
HandlerMethod handlerMethod = (HandlerMethod) handler;
|
||||
Method method = handlerMethod.getMethod();
|
||||
logger.info("== method ======" + method);
|
||||
logger.info("== bean ======" + handlerMethod.getBean());
|
||||
|
||||
//logger.info("== UserInfo ============================" + userInfo.getUserInfo());
|
||||
if(request.getSession(false) != null){
|
||||
logger.info("== tempUserSessionInfoDTO =====================" + request.getSession(false).getAttribute("scopedTarget.tempUserSessionInfoDTO"));
|
||||
}
|
||||
|
||||
if (userInfo.getUserId() != null) {
|
||||
result = true;
|
||||
} else {
|
||||
result = false;
|
||||
response.setContentType("application/json");
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.getWriter().write("{\"rsMsg\":{\"statusCode\":\"E\", \"errorCode\" : \"E0001\", \"message\":\"장시간 서비스 이용이 없어 접속 종료되었습니다.\",\"status\":\"Error\"}}");
|
||||
}
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
}finally {
|
||||
logger.info("== result ============================" + result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||
super.postHandle(request, response, handler, modelAndView);
|
||||
logger.info("== AuthenticInterceptor postHandle start =======" + request.getRequestURI());
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,100 @@
|
||||
package gtpa.icsmw.interceptor;
|
||||
|
||||
import gtpa.icsmw.login.service.LoginService;
|
||||
import eu.bitwalker.useragentutils.*;
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
||||
@Aspect // AOP bean : AOP 애노테이션
|
||||
@Component
|
||||
@EnableAspectJAutoProxy
|
||||
public class MessageAdvice {
|
||||
|
||||
@Autowired
|
||||
private LoginService loginService;
|
||||
private Logger logger = LoggerFactory.getLogger(MessageAdvice.class);
|
||||
|
||||
// 매개변수 확인, @Before(대상:호출전)
|
||||
@Before("execution(* gtpa.icsmw.login.web.LoginController.login(..)) || execution(* gtpa.icsmw.login.web.LoginController.deUserLogin(..))")
|
||||
public void startLog(JoinPoint jp){
|
||||
// 핵심업무의 클래스,매서드, 매개변수 로깅
|
||||
logger.info("핵심업무 코드정보 : "+jp.getSignature());
|
||||
logger.info("메서드 : "+jp.getSignature().getName());
|
||||
logger.info("매개변수:"+ Arrays.toString(jp.getArgs()));
|
||||
}
|
||||
|
||||
// method 실행 시간 확인, @Around : 핵심업무 전후에 자동호출, ProceedingJoinPoint
|
||||
@Around("execution(* gtpa.icsmw.login.web.LoginController.login(..)) || execution(* gtpa.icsmw.login.web.LoginController.deUserLogin(..))")
|
||||
public Object timeLog(ProceedingJoinPoint pjp) throws Throwable {
|
||||
// 핵심업무 실행 전
|
||||
long start = System.currentTimeMillis();
|
||||
// 핵심업무 실행
|
||||
Object result = pjp.proceed();
|
||||
// 핵심업무 실행 후
|
||||
long end = System.currentTimeMillis();
|
||||
// 핵심업무 실행시간 연산
|
||||
logger.info("매개변수:"+Arrays.toString(pjp.getArgs()));
|
||||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
|
||||
UserAgent agent = UserAgent.parseUserAgentString(request.getHeader("user-agent"));
|
||||
// browser
|
||||
Browser browser = agent.getBrowser();
|
||||
//logger.info("Browser type: " + browser.getBrowserType().getName());
|
||||
logger.info("*Browser name: " + browser.getName());
|
||||
//logger.info("Browser render engine: " + browser.getRenderingEngine());
|
||||
|
||||
Version version = agent.getBrowserVersion();
|
||||
if (version != null){
|
||||
//logger.info("Browser version: " + version.getVersion());
|
||||
//logger.info("Browser major version: " + version.getMajorVersion());
|
||||
//logger.info("Browser minor version: " + version.getMinorVersion());
|
||||
}
|
||||
//logger.info("Browser manufacturer: " + browser.getManufacturer().getName());
|
||||
|
||||
// operating system
|
||||
OperatingSystem os = agent.getOperatingSystem();
|
||||
//logger.info("*OS Name: " + os.getName());
|
||||
//logger.info("OS Manufacturer: " + os.getManufacturer());
|
||||
OperatingSystem group = os.getGroup();
|
||||
//logger.info("*OS group: " + group.getName());
|
||||
|
||||
// device type
|
||||
DeviceType deviceType = os.getDeviceType();
|
||||
logger.info("**Device: " + deviceType.getName());
|
||||
logger.info("SESSION::"+request.getSession().getAttribute("MBER_NO"));
|
||||
HashMap param = new HashMap();
|
||||
param.put("MBER_NO",request.getSession().getAttribute("MBER_NO"));
|
||||
param.put("DEVICE",deviceType.getName());
|
||||
param.put("BROWSER",browser.getName());
|
||||
boolean isLogined = false;
|
||||
boolean isTempMber = false;
|
||||
if(request.getSession().getAttribute("IS_LOGIN") != null) {
|
||||
isLogined = (boolean)request.getSession().getAttribute("IS_LOGIN");
|
||||
if(request.getSession().getAttribute("IS_TEMPMBER") != null){
|
||||
isTempMber = (boolean)request.getSession().getAttribute("IS_TEMPMBER");
|
||||
}
|
||||
}
|
||||
if(isLogined) {
|
||||
if(isTempMber){
|
||||
param.put("MBER_NO",request.getSession().getAttribute("MBER_ID"));
|
||||
}
|
||||
//loginService.insertConnInfo(param);
|
||||
}
|
||||
logger.info(pjp.getSignature().getName()+"메서드 실행시간:"+(end-start));
|
||||
logger.info("==========================================");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,122 @@
|
||||
package gtpa.icsmw.interceptor;
|
||||
|
||||
import gtpa.icsmw.user.dto.UserInfo;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 11/04/2019
|
||||
* TIME : 2:57 PM
|
||||
* Project : icsmw
|
||||
* Class : SessionCheckInterceptor
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class SessionCheckInterceptor extends HandlerInterceptorAdapter {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(SessionCheckInterceptor.class);
|
||||
|
||||
@Autowired
|
||||
private UserInfo userInfo;
|
||||
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
|
||||
String loginInfo;
|
||||
HttpSession session = request.getSession();
|
||||
String reqUrl = request.getRequestURI();
|
||||
String w2xPath = request.getParameter("w2xPath");
|
||||
String link = request.getParameter("link");
|
||||
logger.info("== sessionId ============================" + session.getId());
|
||||
logger.info("== preHandle start ============================" + reqUrl);
|
||||
logger.info("== w2xPath ============================" + w2xPath);
|
||||
logger.info("== link ============================" + link);
|
||||
//logger.info("== userInfo =====================" + userInfo.getUserInfo());
|
||||
|
||||
boolean result = true;
|
||||
try {
|
||||
loginInfo = (String) session.getAttribute("MBER_ID");
|
||||
logger.info("== loginInfo =====================" + loginInfo);
|
||||
if (loginInfo != null) {
|
||||
userInfo.setUserInfo(session);
|
||||
} else {
|
||||
if (!isSkipURI(request)) {
|
||||
if ((w2xPath != null) || (reqUrl.indexOf(".xml") > -1)) {
|
||||
// 웹스퀘어 화면 호출 시 세션이 종료된 경우, 로그인 페이지로 Redirect 처리한다.
|
||||
result = false;
|
||||
//response.sendRedirect("/ws.do?w2xPath=/cm/main/sub.xml&link=/cm/main/auth_check.xml");
|
||||
session.setAttribute("w2xPath", "/cm/main/auth_check.xml");
|
||||
response.sendRedirect("/");
|
||||
} else {
|
||||
// 서비스 호출 시 세션이 종료된 경우, Session 종료 Alert 후, 로그인 페이지로 Redirect 처리 한다.
|
||||
result = false;
|
||||
response.setContentType("application/json");
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.getWriter().write("{\"rsMsg\":{\"statusCode\":\"E\", \"errorCode\" : \"E0001\", \"message\":\"장시간 서비스 이용이 없어 접속 종료되었습니다.\",\"status\":\"Error\"}}");
|
||||
/*response.getWriter().write("{\"statusCode\":\"E\", \"errorCode\" : \"E0001\", \"message\":\"Session이 종료 되었습니다.\",\"status\":\"Error\"}");*/
|
||||
}
|
||||
}
|
||||
|
||||
if (link != null) {
|
||||
if (link.indexOf("/ui") > -1) {
|
||||
result = false;
|
||||
//response.sendRedirect("/ws.do?w2xPath=/cm/main/sub.xml&link=/cm/main/auth_check.xml");
|
||||
session.setAttribute("w2xPath", "/cm/main/auth_check.xml");
|
||||
response.sendRedirect("/");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
} finally {
|
||||
logger.info("== result ============================" + result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Session 체크 대상에서 예외 URI 구성
|
||||
*
|
||||
* @param request 파라미터 정보
|
||||
* @date 2016. 8. 29.
|
||||
* @returns <boolean> 반환 변수 및 객체
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
*/
|
||||
private boolean isSkipURI(HttpServletRequest request) {
|
||||
|
||||
String[] skipUrl = {"/", "/I18N", "/ws.do"};
|
||||
String[] skipw2xPath = {"/cm", "/pub"};
|
||||
boolean result = false;
|
||||
String uri = (request.getRequestURI()).replace(request.getContextPath(), "");
|
||||
String w2xPath = request.getParameter("w2xPath");
|
||||
|
||||
for (int i = 0; i < skipUrl.length; i++) {
|
||||
if (uri.equals(skipUrl[i])) {
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (w2xPath != null) {
|
||||
for (int i = 0; i < skipw2xPath.length; i++) {
|
||||
if (w2xPath.contains(skipw2xPath[i])) {
|
||||
if (!result) result = true;
|
||||
break;
|
||||
} else {
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package gtpa.icsmw.login.service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface LoginService {
|
||||
|
||||
// 사용자 정보 조회 (로그인 체크용도로 사용 )
|
||||
Map selectMemberInfoForLogin(Map param);
|
||||
|
||||
Map checkSecsnAt(Map defInfo);
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package gtpa.icsmw.login.service.impl;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository("loginDao")
|
||||
public class LoginMapper extends EgovAbstractMapper {
|
||||
private String NAMESPACE = "LoginDAO";
|
||||
|
||||
public Map selectMemberInfoForLogin(Map param){
|
||||
return selectOne(NAMESPACE+".selectMemberInfoForLogin",param);
|
||||
}
|
||||
|
||||
public Map checkSecsnAt(Map defInfo) {
|
||||
return selectOne(NAMESPACE+".checkSecsnAt",defInfo);
|
||||
}
|
||||
|
||||
public void updateMemberLoginErrCount(Map param) {
|
||||
update(NAMESPACE + ".updateMemberLoginErrCount", param);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
package gtpa.icsmw.login.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import gtpa.icsmw.login.service.LoginService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class LoginServiceImpl implements LoginService {
|
||||
|
||||
@Resource(name = "loginDao")
|
||||
private LoginMapper loginMapper;
|
||||
|
||||
//@Value("${system.admin.id}")
|
||||
private String adminId = "admin";
|
||||
|
||||
/**
|
||||
* 사용자 정보 조회 (로그인 체크용도로 사용 )
|
||||
*/
|
||||
@Override
|
||||
public Map selectMemberInfoForLogin(Map param) {
|
||||
Map memberMap = loginMapper.selectMemberInfoForLogin(param);
|
||||
|
||||
// 사용자가 존재하지 않을 경우
|
||||
if (memberMap == null) {
|
||||
memberMap = new HashMap();
|
||||
memberMap.put("LOGIN", "notexist");
|
||||
|
||||
// 사용자가 존재할 경우
|
||||
} else {
|
||||
int promptLogin = Integer.parseInt(String.valueOf(memberMap.get("CONECT_FAILR_CO")));
|
||||
if( promptLogin > 4) {
|
||||
memberMap.put("LOGIN", "promptover");
|
||||
return memberMap;
|
||||
}
|
||||
String PASSWORD = (String) memberMap.get("PASSWORD");
|
||||
//String reqPASSWORD = (String) param.get("pw");
|
||||
//reqPASSWORD = SHA256Util.encryptSHA256(reqPASSWORD);
|
||||
String pw = (String) param.get("pw");
|
||||
// 패스워드 일치
|
||||
if (PASSWORD.equals(pw)) {
|
||||
//memberMap.put("PW", "");
|
||||
memberMap.put("LOGIN", "success");
|
||||
} else { // 패스워드 불일치
|
||||
memberMap.put("LOGIN", "error");
|
||||
promptLogin = promptLogin + 1;
|
||||
memberMap.put("CONECT_FAILR_CO",promptLogin);
|
||||
loginMapper.updateMemberLoginErrCount(memberMap);
|
||||
}
|
||||
}
|
||||
return memberMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 해당 사용자 아이디가 관리자 아이디인지를 검사한다.
|
||||
*/
|
||||
/* @Override
|
||||
public boolean isAdmin(String userId) {
|
||||
String[] adminIdList = adminId.split(",");
|
||||
|
||||
for (String adminId : adminIdList) {
|
||||
if (adminId.trim().equals(userId)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}*/
|
||||
|
||||
@Override
|
||||
public Map checkSecsnAt(Map defInfo) {
|
||||
return loginMapper.checkSecsnAt(defInfo);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,247 @@
|
||||
package gtpa.icsmw.login.web;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import gtpa.icsmw.common.web.BaseController;
|
||||
import gtpa.icsmw.login.service.LoginService;
|
||||
import gtpa.icsmw.user.dto.UserInfo;
|
||||
import gtpa.icsmw.util.Result;
|
||||
|
||||
/**
|
||||
* The type Login controller.
|
||||
*/
|
||||
@Controller
|
||||
public class LoginController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private UserInfo userInfo;
|
||||
|
||||
@Autowired
|
||||
private LoginService loginService;
|
||||
|
||||
@Resource(name = "globalsProperties")
|
||||
private Properties env;
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(LoginController.class);
|
||||
|
||||
/**
|
||||
* Gets init main info.
|
||||
*
|
||||
* @param request the request
|
||||
* @return the init main info
|
||||
*/
|
||||
@RequestMapping("/common/init.do")
|
||||
public @ResponseBody Map<String, Object> getInitMainInfo(HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
//Map memberParam = null;
|
||||
//Map setInfo = null;
|
||||
Map defInfo = null;
|
||||
try {
|
||||
//memberParam = userInfo.getUserInfoByBase();
|
||||
defInfo = new HashMap();
|
||||
//request.getSession().invalidate();
|
||||
String loginInfo = (String) request.getSession().getAttribute("MBER_ID");
|
||||
if (loginInfo != null) {
|
||||
userInfo.setUserInfo(request.getSession());
|
||||
}
|
||||
defInfo.put("MBER_NO", userInfo.getUserNo());
|
||||
defInfo.put("MBER_ID", userInfo.getUserId());
|
||||
defInfo.put("MBER_NM", userInfo.getUserName());
|
||||
//defInfo.put("IS_ADMIN", userInfo.getIsAdmin());
|
||||
//defInfo.put("IS_TEMPMBER", userInfo.isTempMber());
|
||||
defInfo.put("IS_ADMIN", "");
|
||||
defInfo.put("IS_TEMPMBER", "");
|
||||
defInfo.put("IS_LOGIN",userInfo.isLogined());
|
||||
/*if(!"".equals(loginInfo)){
|
||||
Map checkData = loginService.checkSecsnAt(defInfo);
|
||||
if(checkData!= null && "Y".equals(checkData.get("SECSN_AT"))){
|
||||
request.getSession().invalidate();
|
||||
}else{
|
||||
result.setData("dma_defInfo", defInfo);
|
||||
}
|
||||
}else{
|
||||
result.setData("dma_defInfo", defInfo);
|
||||
}*/
|
||||
|
||||
logger.info("dma_defInfo::" + defInfo);
|
||||
result.setData("dma_defInfo", defInfo);
|
||||
|
||||
/*result.setData("dlt_menu", commonService.selectMenuList(memberParam));
|
||||
result.setData("dlt_fav", commonService.selectFavListByEmpCd(user.getUserId()));
|
||||
result.setData("dlt_programAuthority", commonService.selectProgramAuthorityList(memberParam));*/
|
||||
result.setMsg(Result.STATUS_SUCESS, Result.STATUS_SUCESS_MESSAGE);
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE,re);
|
||||
} catch (Exception ex) {
|
||||
logger.error("[process error::" + "" + "]", ex);
|
||||
result.setMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE, ex);
|
||||
}finally {
|
||||
request.getSession().setAttribute("IS_LOGIN", userInfo.isLogined());
|
||||
}
|
||||
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* Session check map.
|
||||
*
|
||||
* @param session the session
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/login/sessionCheck.do", method = RequestMethod.GET)
|
||||
public @ResponseBody
|
||||
Map<String, Object> sessionCheck(HttpSession session) {
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
Map<String, Object> header = new HashMap<String, Object>();
|
||||
try {
|
||||
logger.info("sessionCheck");
|
||||
|
||||
if (session.getAttribute("LoginVO") != null) {
|
||||
header.put("resultCode", "001");
|
||||
header.put("resultMessage", "성공했습니다.");
|
||||
} else {
|
||||
header.put("resultCode", "002");
|
||||
header.put("resultMessage", "실패했습니다.");
|
||||
}
|
||||
result.put("header", header);
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[process error::" + "" + "]", re);
|
||||
header.put("resultCode", "002");
|
||||
header.put("resultMessage", "오류가 발생하였습니다.");
|
||||
} catch (Exception e) {
|
||||
logger.error("[process error::" + "" + "]", e);
|
||||
header.put("resultCode", "002");
|
||||
header.put("resultMessage", "오류가 발생하였습니다.");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Login map.
|
||||
*
|
||||
* @param param the param
|
||||
* @param request the request
|
||||
* @param response the response
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/login/login.do")
|
||||
public @ResponseBody
|
||||
Map<String, Object> login(@RequestBody Map<String, Object> param, HttpServletRequest request, HttpServletResponse response) {
|
||||
HttpSession session = request.getSession();
|
||||
Map memberMap = null;
|
||||
String status = null;
|
||||
Map loginParam = null;
|
||||
|
||||
Result result = new Result();
|
||||
if (session.getAttribute("IS_LOGIN") != null && (boolean) session.getAttribute("IS_LOGIN") == true) {
|
||||
result.setMsg(Result.STATUS_WARNING, "이미 로그인중입니다.");
|
||||
return result.getResult();
|
||||
}
|
||||
try {
|
||||
// loginParam은 param(EMP_CD/PW)의 값을 꺼내는 용도
|
||||
loginParam = (Map) param.get("dma_loginCheck");
|
||||
|
||||
memberMap = loginService.selectMemberInfoForLogin(loginParam);
|
||||
status = (String) memberMap.get("LOGIN");
|
||||
|
||||
// 로그인 성공
|
||||
if (status.equals("success")) {
|
||||
//String mainLayout = (String) memberMap.get("MAIN_LAYOUT_PAGE_CODE");
|
||||
|
||||
// main setting에 값이 저장되어 있지 않는 경우 insert.
|
||||
//if (mainLayout == null) {
|
||||
//mainLayout = userInfo.getDefaultMainLayoutCode();
|
||||
//}
|
||||
|
||||
userInfo.setUserInfo(memberMap);
|
||||
//session.setAttribute("MBER_CI", memberMap.get("MBER_CI"));
|
||||
session.setAttribute("MBER_NO", memberMap.get("MBER_NO"));
|
||||
session.setAttribute("MBER_ID", memberMap.get("MBER_ID"));
|
||||
session.setAttribute("MBER_NM", memberMap.get("MBER_NM"));
|
||||
//session.setAttribute("MBER_TY", memberMap.get("MBER_TY"));
|
||||
|
||||
//session.setAttribute("MAIN_LAYOUT_PAGE_CODE", mainLayout);
|
||||
|
||||
// 로그인한 아이디가 시스템 관리자인지 여부를 체크한다.
|
||||
// 시스템 관리자 아이디는 websquareConfig.properties 파일의 system.admin.id 속성에 정의하면 된다.
|
||||
// 시스템 관자자 아이디가 여러 개일 경우 콤마(",") 구분해서 작성할 수 있다.
|
||||
//boolean isAdmin = loginService.isAdmin((String) memberMap.get("MBER_ID"));
|
||||
//session.setAttribute("IS_ADMIN", isAdmin);
|
||||
//session.setAttribute("IS_ADMIN", "");
|
||||
//session.setAttribute("IS_TEMPMBER", false);
|
||||
|
||||
// 클라이언트(UI)에 전달하는 IS_ADMIN 정보는 관리자인지의 여부에 따라 화면 제어가 필요한 로직 처리를 위해서만 사용한다.
|
||||
// 서버 서비스에서의 로직 처리는 보안을 위해서 클라이언트에서 전달하는 IS_ADMIN 정보가 아닌
|
||||
// 서버 서비스에서 관리하는 UserInfo.getIsAdmin()에서 관리자 여부를 받아와서 판단해야 한다.
|
||||
session.setMaxInactiveInterval(60 * 60);
|
||||
userInfo.setUserInfo(session);
|
||||
logger.info("UserLogin after::" + userInfo.toString());
|
||||
result.setMsg(Result.STATUS_SUCESS, "로그인 성공");
|
||||
result.setData("dc_result", memberMap);
|
||||
} else if (status.equals("promptover")) {
|
||||
result.setMsg("O", "비밀번호 오류가 5회이상 발생하여 로그인이 불가하오니<br>관리자를 통하여 로그인횟수 초기화 후 다시 로그인하여 주시기 바랍니다.");
|
||||
return result.getResult();
|
||||
} else if (status.equals("error")) {
|
||||
result.setMsg(result.STATUS_ERROR, "아이디 또는 패스워드가 잘못 되었습니다.");
|
||||
} else {
|
||||
result.setMsg(result.STATUS_ERROR, "아이디 또는 패스워드가 잘못 되었습니다.");
|
||||
}
|
||||
} catch (RuntimeException re) {// DB커넥션 없음
|
||||
logger.error("[process error::" + "" + "]", re);
|
||||
result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, re);
|
||||
} catch (Exception ex) {// DB커넥션 없음
|
||||
logger.error("[process error::" + "" + "]", ex);
|
||||
result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, ex);
|
||||
} finally {
|
||||
session.setAttribute("IS_LOGIN", userInfo.isLogined());
|
||||
}
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* Logout map.
|
||||
*
|
||||
* @param request the request
|
||||
* @param response the response
|
||||
* @return the map
|
||||
*/
|
||||
@RequestMapping(value = "/login/logout.do")
|
||||
public @ResponseBody
|
||||
Map<String, Object> logout(HttpServletRequest request, HttpServletResponse response) {
|
||||
Result result = new Result();
|
||||
try {
|
||||
result.setMsg(Result.STATUS_SUCESS, "정상적으로 로그아웃 되었습니다.");
|
||||
} catch (RuntimeException re) {// DB커넥션 없음
|
||||
logger.error("[process error::" + "" + "]", re);
|
||||
result.setMsg(result.STATUS_ERROR, result.STATUS_ERROR_MESSAGE, re);
|
||||
} catch (Exception ex) {
|
||||
logger.error("[process error::" + "" + "]", ex);
|
||||
result.setMsg(Result.STATUS_ERROR, "로그아웃 도중 오류가 발생하였습니다.", ex);
|
||||
} finally {
|
||||
request.getSession().invalidate();
|
||||
userInfo.init();
|
||||
logger.info(userInfo.toString());
|
||||
}
|
||||
return result.getResult();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,123 @@
|
||||
package gtpa.icsmw.user.dto;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 12/04/2019
|
||||
* TIME : 4:04 PM
|
||||
* Project : icsmw
|
||||
* Class : TempCarInfo
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class TempCarInfo {
|
||||
//차량정보
|
||||
String mberNo = "";
|
||||
String vhcleManageNo = "";
|
||||
String vhclePosesnTy= "";
|
||||
String vhcleNo= "";
|
||||
String vhcleOwnerCi= "";
|
||||
String useBeginDt= "";
|
||||
String useEndDt= "";
|
||||
String vhcleSttusTy= "";
|
||||
String setleAgreTy= "";
|
||||
String penaltyAgreTy= "";
|
||||
|
||||
public String getMberNo() {
|
||||
return mberNo;
|
||||
}
|
||||
|
||||
public void setMberNo(String mberNo) {
|
||||
this.mberNo = mberNo;
|
||||
}
|
||||
|
||||
public String getVhcleManageNo() {
|
||||
return vhcleManageNo;
|
||||
}
|
||||
|
||||
public void setVhcleManageNo(String vhcleManageNo) {
|
||||
this.vhcleManageNo = vhcleManageNo;
|
||||
}
|
||||
|
||||
public String getVhclePosesnTy() {
|
||||
return vhclePosesnTy;
|
||||
}
|
||||
|
||||
public void setVhclePosesnTy(String vhclePosesnTy) {
|
||||
this.vhclePosesnTy = vhclePosesnTy;
|
||||
}
|
||||
|
||||
public String getVhcleNo() {
|
||||
return vhcleNo;
|
||||
}
|
||||
|
||||
public void setVhcleNo(String vhcleNo) {
|
||||
this.vhcleNo = vhcleNo;
|
||||
}
|
||||
|
||||
public String getVhcleOwnerCi() {
|
||||
return vhcleOwnerCi;
|
||||
}
|
||||
|
||||
public void setVhcleOwnerCi(String vhcleOwnerCi) {
|
||||
this.vhcleOwnerCi = vhcleOwnerCi;
|
||||
}
|
||||
|
||||
public String getUseBeginDt() {
|
||||
return useBeginDt;
|
||||
}
|
||||
|
||||
public void setUseBeginDt(String useBeginDt) {
|
||||
this.useBeginDt = useBeginDt;
|
||||
}
|
||||
|
||||
public String getUseEndDt() {
|
||||
return useEndDt;
|
||||
}
|
||||
|
||||
public void setUseEndDt(String useEndDt) {
|
||||
this.useEndDt = useEndDt;
|
||||
}
|
||||
|
||||
public String getVhcleSttusTy() {
|
||||
return vhcleSttusTy;
|
||||
}
|
||||
|
||||
public void setVhcleSttusTy(String vhcleSttusTy) {
|
||||
this.vhcleSttusTy = vhcleSttusTy;
|
||||
}
|
||||
|
||||
public String getSetleAgreTy() {
|
||||
return setleAgreTy;
|
||||
}
|
||||
|
||||
public void setSetleAgreTy(String setleAgreTy) {
|
||||
this.setleAgreTy = setleAgreTy;
|
||||
}
|
||||
|
||||
public String getPenaltyAgreTy() {
|
||||
return penaltyAgreTy;
|
||||
}
|
||||
|
||||
public void setPenaltyAgreTy(String penaltyAgreTy) {
|
||||
this.penaltyAgreTy = penaltyAgreTy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuffer sb = new StringBuffer("TempCarInfo{");
|
||||
sb.append("mberNo='").append(mberNo).append('\'');
|
||||
sb.append(", vhcleManageNo='").append(vhcleManageNo).append('\'');
|
||||
sb.append(", vhclePosesnTy='").append(vhclePosesnTy).append('\'');
|
||||
sb.append(", vhcleNo='").append(vhcleNo).append('\'');
|
||||
sb.append(", vhcleOwnerCi='").append(vhcleOwnerCi).append('\'');
|
||||
sb.append(", useBeginDt='").append(useBeginDt).append('\'');
|
||||
sb.append(", useEndDt='").append(useEndDt).append('\'');
|
||||
sb.append(", vhcleSttusTy='").append(vhcleSttusTy).append('\'');
|
||||
sb.append(", setleAgreTy='").append(setleAgreTy).append('\'');
|
||||
sb.append(", penaltyAgreTy='").append(penaltyAgreTy).append('\'');
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package gtpa.icsmw.user.dto;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 12/04/2019
|
||||
* TIME : 4:04 PM
|
||||
* Project : icsmw
|
||||
* Class : TempCarInfo
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class TempPayInfo {
|
||||
//결제수단
|
||||
String payOrd;
|
||||
String payType;
|
||||
String payComp;
|
||||
String payName;
|
||||
String payKey;
|
||||
|
||||
public String getPayOrd() {
|
||||
return payOrd;
|
||||
}
|
||||
|
||||
public void setPayOrd(String payOrd) {
|
||||
this.payOrd = payOrd;
|
||||
}
|
||||
|
||||
public String getPayType() {
|
||||
return payType;
|
||||
}
|
||||
|
||||
public void setPayType(String payType) {
|
||||
this.payType = payType;
|
||||
}
|
||||
|
||||
public String getPayComp() {
|
||||
return payComp;
|
||||
}
|
||||
|
||||
public void setPayComp(String payComp) {
|
||||
this.payComp = payComp;
|
||||
}
|
||||
|
||||
public String getPayName() {
|
||||
return payName;
|
||||
}
|
||||
|
||||
public void setPayName(String payName) {
|
||||
this.payName = payName;
|
||||
}
|
||||
|
||||
public String getPayKey() {
|
||||
return payKey;
|
||||
}
|
||||
|
||||
public void setPayKey(String payKey) {
|
||||
this.payKey = payKey;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuffer sb = new StringBuffer("TempPayInfo{");
|
||||
sb.append("payOrd='").append(payOrd).append('\'');
|
||||
sb.append(", payType='").append(payType).append('\'');
|
||||
sb.append(", payComp='").append(payComp).append('\'');
|
||||
sb.append(", payName='").append(payName).append('\'');
|
||||
sb.append(", payKey='").append(payKey).append('\'');
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,283 @@
|
||||
package gtpa.icsmw.user.dto;
|
||||
|
||||
import gtpa.icsmw.util.SHA256Util;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.context.annotation.ScopedProxyMode;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 12/04/2019
|
||||
* TIME : 10:25 AM
|
||||
* Project : icsmw
|
||||
* Class : TempUserSessionDTO
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Component
|
||||
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
|
||||
public class TempUserSessionInfoDTO implements Serializable {
|
||||
|
||||
public Date makeTime;
|
||||
// 회원정보
|
||||
public String mberNo;
|
||||
public String mberId;
|
||||
public String mberty;
|
||||
public String mberPw;
|
||||
public String mberNm;
|
||||
public String mberCi;
|
||||
// 사업자정보
|
||||
public String entrprsNm ;
|
||||
public String bsnmRegistNo;
|
||||
public String cprRegistNo;
|
||||
public String chargerNm;
|
||||
public String chargerCi;
|
||||
public String infoProvdAgreAt;
|
||||
public Map tempUserInfo;
|
||||
public List<Map> tempCarInfos;
|
||||
public List<Map> tempCreditInfos;
|
||||
public List<Map> tempBankInfos;
|
||||
//약관동의
|
||||
public String termsCheck1;
|
||||
public String termsCheck2;
|
||||
public String termsCheck3;
|
||||
public String termsCheck4;
|
||||
public String termsCheck5;
|
||||
|
||||
//문자인증키
|
||||
public String phoneNum;
|
||||
public String smsKey;
|
||||
|
||||
public TempUserSessionInfoDTO() {
|
||||
this.makeTime = new Date();
|
||||
}
|
||||
|
||||
public long getMakeTime() {
|
||||
return makeTime.getTime();
|
||||
}
|
||||
|
||||
public Map getTempUserInfo() {
|
||||
return tempUserInfo;
|
||||
}
|
||||
|
||||
public void setTempUserInfo(Map tempUserInfo) {
|
||||
this.tempUserInfo = tempUserInfo;
|
||||
}
|
||||
|
||||
public String getMberNo() {
|
||||
return mberNo;
|
||||
}
|
||||
|
||||
public void setMberNo(String mberNo) {
|
||||
this.mberNo = mberNo;
|
||||
}
|
||||
|
||||
public String getMberId() {
|
||||
return mberId;
|
||||
}
|
||||
|
||||
public void setMberId(String mberId) {
|
||||
this.mberId = mberId;
|
||||
}
|
||||
|
||||
public String getMberty() {
|
||||
return mberty;
|
||||
}
|
||||
|
||||
public void setMberty(String mberty) {
|
||||
this.mberty = mberty;
|
||||
}
|
||||
|
||||
public String getMberPw() {
|
||||
return mberPw;
|
||||
}
|
||||
|
||||
public void setMberPw(String mberPw) {
|
||||
this.mberPw = SHA256Util.encryptSHA256(mberPw);
|
||||
}
|
||||
|
||||
public String getMberNm() {
|
||||
return mberNm;
|
||||
}
|
||||
|
||||
public void setMberNm(String mberNm) {
|
||||
this.mberNm = mberNm;
|
||||
}
|
||||
|
||||
public String getMberCi() {
|
||||
return mberCi;
|
||||
}
|
||||
|
||||
public void setMberCi(String mberCi) {
|
||||
this.mberCi = mberCi;
|
||||
}
|
||||
|
||||
public String getEntrprsNm() {
|
||||
return entrprsNm;
|
||||
}
|
||||
|
||||
public void setEntrprsNm(String entrprsNm) {
|
||||
this.entrprsNm = entrprsNm;
|
||||
}
|
||||
|
||||
public String getBsnmRegistNo() {
|
||||
return bsnmRegistNo;
|
||||
}
|
||||
|
||||
public void setBsnmRegistNo(String bsnmRegistNo) {
|
||||
this.bsnmRegistNo = bsnmRegistNo;
|
||||
}
|
||||
|
||||
public String getCprRegistNo() {
|
||||
return cprRegistNo;
|
||||
}
|
||||
|
||||
public void setCprRegistNo(String cprRegistNo) {
|
||||
this.cprRegistNo = cprRegistNo;
|
||||
}
|
||||
|
||||
public String getChargerNm() {
|
||||
return chargerNm;
|
||||
}
|
||||
|
||||
public void setChargerNm(String chargerNm) {
|
||||
this.chargerNm = chargerNm;
|
||||
}
|
||||
|
||||
public String getChargerCi() {
|
||||
return chargerCi;
|
||||
}
|
||||
|
||||
public void setChargerCi(String chargerCi) {
|
||||
this.chargerCi = chargerCi;
|
||||
}
|
||||
|
||||
public String getInfoProvdAgreAt() {
|
||||
return infoProvdAgreAt;
|
||||
}
|
||||
|
||||
public void setInfoProvdAgreAt(String infoProvdAgreAt) {
|
||||
this.infoProvdAgreAt = infoProvdAgreAt;
|
||||
}
|
||||
|
||||
public List<Map> getTempCarInfos() {
|
||||
return tempCarInfos;
|
||||
}
|
||||
|
||||
public void setTempCarInfos(List<Map> tempCarInfos) {
|
||||
for (Map carInfo: tempCarInfos) {
|
||||
carInfo.put("mberNo",this.mberNo);
|
||||
}
|
||||
this.tempCarInfos = tempCarInfos;
|
||||
}
|
||||
|
||||
public List<Map> getTempCreditInfos() {
|
||||
return tempCreditInfos;
|
||||
}
|
||||
|
||||
public void setTempCreditInfos(List<Map> tempCreditInfos) {
|
||||
this.tempCreditInfos = tempCreditInfos;
|
||||
}
|
||||
|
||||
public List<Map> getTempBankInfos() {
|
||||
return tempBankInfos;
|
||||
}
|
||||
|
||||
public void setTempBankInfos(List<Map> tempBankInfos) {
|
||||
this.tempBankInfos = tempBankInfos;
|
||||
}
|
||||
|
||||
public String getTermsCheck1() {
|
||||
return termsCheck1;
|
||||
}
|
||||
|
||||
public void setTermsCheck1(String termsCheck1) {
|
||||
this.termsCheck1 = termsCheck1;
|
||||
}
|
||||
|
||||
public String getTermsCheck2() {
|
||||
return termsCheck2;
|
||||
}
|
||||
|
||||
public void setTermsCheck2(String termsCheck2) {
|
||||
this.termsCheck2 = termsCheck2;
|
||||
}
|
||||
|
||||
public String getTermsCheck3() {
|
||||
return termsCheck3;
|
||||
}
|
||||
|
||||
public void setTermsCheck3(String termsCheck3) {
|
||||
this.termsCheck3 = termsCheck3;
|
||||
}
|
||||
|
||||
public String getTermsCheck4() {
|
||||
return termsCheck4;
|
||||
}
|
||||
|
||||
public void setTermsCheck4(String termsCheck4) {
|
||||
this.termsCheck4 = termsCheck4;
|
||||
}
|
||||
|
||||
public String getTermsCheck5() {
|
||||
return termsCheck5;
|
||||
}
|
||||
|
||||
public void setTermsCheck5(String termsCheck5) {
|
||||
this.termsCheck5 = termsCheck5;
|
||||
}
|
||||
|
||||
public String getPhoneNum() {
|
||||
return phoneNum;
|
||||
}
|
||||
|
||||
public void setPhoneNum(String phoneNum) {
|
||||
this.phoneNum = phoneNum;
|
||||
}
|
||||
|
||||
public String getSmsKey() {
|
||||
return smsKey;
|
||||
}
|
||||
|
||||
public void setSmsKey(String smsKey) {
|
||||
this.smsKey = smsKey;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuffer sb = new StringBuffer("TempUserSessionInfoDTO{");
|
||||
sb.append("makeTime=").append(makeTime);
|
||||
sb.append(", mberNo='").append(mberNo).append('\'');
|
||||
sb.append(", mberId='").append(mberId).append('\'');
|
||||
sb.append(", mberty='").append(mberty).append('\'');
|
||||
sb.append(", mberPw='").append(mberPw).append('\'');
|
||||
sb.append(", mberNm='").append(mberNm).append('\'');
|
||||
sb.append(", mberCi='").append(mberCi).append('\'');
|
||||
sb.append(", entrprsNm='").append(entrprsNm).append('\'');
|
||||
sb.append(", bsnmRegistNo='").append(bsnmRegistNo).append('\'');
|
||||
sb.append(", cprRegistNo='").append(cprRegistNo).append('\'');
|
||||
sb.append(", chargerNm='").append(chargerNm).append('\'');
|
||||
sb.append(", chargerCi='").append(chargerCi).append('\'');
|
||||
sb.append(", infoProvdAgreAt='").append(infoProvdAgreAt).append('\'');
|
||||
sb.append(", tempUserInfo=").append(tempUserInfo);
|
||||
sb.append(", tempCarInfos=").append(tempCarInfos);
|
||||
sb.append(", tempCreditInfos=").append(tempCreditInfos);
|
||||
sb.append(", tempBankInfos=").append(tempBankInfos);
|
||||
sb.append(", termsCheck1='").append(termsCheck1).append('\'');
|
||||
sb.append(", termsCheck2='").append(termsCheck2).append('\'');
|
||||
sb.append(", termsCheck3='").append(termsCheck3).append('\'');
|
||||
sb.append(", termsCheck4='").append(termsCheck4).append('\'');
|
||||
sb.append(", termsCheck5='").append(termsCheck5).append('\'');
|
||||
sb.append(", phoneNum='").append(phoneNum).append('\'');
|
||||
sb.append(", smsKey='").append(smsKey).append('\'');
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,302 @@
|
||||
package gtpa.icsmw.user.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.context.annotation.ScopedProxyMode;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
|
||||
public class UserInfo implements Serializable {
|
||||
|
||||
// MBER_No
|
||||
private String userNo;
|
||||
// MBER_ID
|
||||
private String userId;
|
||||
|
||||
// MBER_TY
|
||||
private String userType;
|
||||
|
||||
// MBER_NM
|
||||
private String userName;
|
||||
|
||||
private String userCi;
|
||||
|
||||
// 시스템 관리자 여부
|
||||
private boolean isAdmin;
|
||||
|
||||
private boolean isTempMber;
|
||||
|
||||
// MAIN_LAYOUT_PAGE_CODE - 메인화면 layout
|
||||
private String mainLayoutCode;
|
||||
|
||||
// FAVORITE_STORAGE - 즐겨찾기 저장 위치
|
||||
private String favoriteStorage;
|
||||
|
||||
private Date makeTime;
|
||||
|
||||
public UserInfo() {
|
||||
this.makeTime = new Date();
|
||||
}
|
||||
|
||||
public long getMakeTime() {
|
||||
return makeTime.getTime();
|
||||
}
|
||||
|
||||
@Value("${main.setting.default.layout}")
|
||||
private String defaultMainLayoutCode;
|
||||
|
||||
@Value("${main.setting.default.favoriteLocation}")
|
||||
private String defaultFavoriteStorage;
|
||||
|
||||
public String getUserNo() {
|
||||
return userNo;
|
||||
}
|
||||
|
||||
public void setUserNo(String userNo) {
|
||||
this.userNo = userNo;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
private void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getUserType() {
|
||||
return userType;
|
||||
}
|
||||
|
||||
private void setUserType(String userType) {
|
||||
this.userType = userType;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
private void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getUserCi() {
|
||||
return userCi;
|
||||
}
|
||||
|
||||
public void setUserCi(String userCi) {
|
||||
this.userCi = userCi;
|
||||
}
|
||||
|
||||
public boolean getIsAdmin() {
|
||||
return isAdmin;
|
||||
}
|
||||
|
||||
public void setIsAdmin(boolean isAdmin) {
|
||||
this.isAdmin = isAdmin;
|
||||
}
|
||||
|
||||
public boolean isTempMber() {
|
||||
return isTempMber;
|
||||
}
|
||||
|
||||
public void setIsTempMber(boolean tempMber) {
|
||||
isTempMber = tempMber;
|
||||
}
|
||||
|
||||
public String getMainLayoutCode() {
|
||||
return mainLayoutCode;
|
||||
}
|
||||
|
||||
public void setMainLayoutCode(String mainLayoutCode) {
|
||||
if (mainLayoutCode == null || mainLayoutCode.equals("")) {
|
||||
this.mainLayoutCode = this.defaultMainLayoutCode;
|
||||
} else {
|
||||
this.mainLayoutCode = mainLayoutCode;
|
||||
}
|
||||
}
|
||||
|
||||
public String getFavoriteStorage() {
|
||||
return favoriteStorage;
|
||||
}
|
||||
|
||||
public void setFavoriteStorage(String favoriteStorage) {
|
||||
if (favoriteStorage == null || favoriteStorage.equals("")) {
|
||||
this.mainLayoutCode = this.defaultFavoriteStorage;
|
||||
} else {
|
||||
this.favoriteStorage = favoriteStorage;
|
||||
}
|
||||
}
|
||||
|
||||
public String getDefaultMainLayoutCode() {
|
||||
return this.defaultMainLayoutCode;
|
||||
}
|
||||
|
||||
public String getDefaultFavoriteStorage() {
|
||||
return this.defaultFavoriteStorage;
|
||||
}
|
||||
|
||||
public Map<String, Object> getUserInfo() {
|
||||
Map<String, Object> userInfo = new HashMap<String, Object>();
|
||||
userInfo.put("MBER_NO", this.getUserNo());
|
||||
userInfo.put("MBER_ID", this.getUserId());
|
||||
//userInfo.put("MBER_TY", this.getUserType());
|
||||
userInfo.put("MBER_NM", this.getUserName());
|
||||
//userInfo.put("MBER_CI", this.getUserCi());
|
||||
userInfo.put("MAIN_LAYOUT", this.getMainLayoutCode());
|
||||
userInfo.put("FV_STORAGE", this.getFavoriteStorage());
|
||||
return userInfo;
|
||||
}
|
||||
|
||||
public Map<String, Object> getDeUserInfo() {
|
||||
Map<String, Object> userInfo = new HashMap<String, Object>();
|
||||
userInfo.put("MBER_NO", this.getUserNo());
|
||||
userInfo.put("MBER_ID", this.getUserId());
|
||||
userInfo.put("MBER_TY", this.getUserType());
|
||||
userInfo.put("MBER_NM", this.getUserName());
|
||||
userInfo.put("MBER_CI", this.getUserCi());
|
||||
userInfo.put("MAIN_LAYOUT", this.getMainLayoutCode());
|
||||
userInfo.put("FV_STORAGE", this.getFavoriteStorage());
|
||||
return userInfo;
|
||||
}
|
||||
|
||||
public Map<String, Object> getUserInfoWithoutUserID() {
|
||||
Map<String, Object> userInfo = new HashMap<String, Object>();
|
||||
userInfo.put("MBER_NM", this.getUserName());
|
||||
userInfo.put("MAIN_LAYOUT", this.getMainLayoutCode());
|
||||
userInfo.put("FV_STORAGE", this.getFavoriteStorage());
|
||||
return userInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Map객체에 사원번호만 담아서 return한다.
|
||||
*
|
||||
* @date 2016.08.22
|
||||
* @returns <Map> MBER_ID 담긴 map
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
* @todo 추가해야 할 작업
|
||||
*/
|
||||
public Map getUserInfoByBase() {
|
||||
Map<String, Object> userInfo = new HashMap<String, Object>();
|
||||
userInfo.put("MBER_ID", this.getUserId());
|
||||
userInfo.put("MBER_NO", this.getUserNo());
|
||||
return userInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* session 값을 참조하여 dataSetting
|
||||
*
|
||||
* @param session 사용자 정보가 담긴 session객체
|
||||
* @date 2016.08.19
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
* @todo 추가해야 할 작업
|
||||
*/
|
||||
public void setUserInfo(HttpSession session) {
|
||||
this.setUserNo((String) session.getAttribute("MBER_NO"));
|
||||
this.setUserId((String) session.getAttribute("MBER_ID"));
|
||||
//this.setUserType((String) session.getAttribute("MBER_TY"));
|
||||
this.setUserName((String) session.getAttribute("MBER_NM"));
|
||||
//this.setUserCi((String) session.getAttribute("MBER_CI"));
|
||||
//this.setIsAdmin((boolean) session.getAttribute("IS_ADMIN"));
|
||||
//this.setIsTempMber((boolean) session.getAttribute("IS_TEMPMBER"));
|
||||
//this.setMainLayoutCode((String) session.getAttribute("MAIN_LAYOUT_PAGE_CODE"));
|
||||
}
|
||||
|
||||
/**
|
||||
* session 값을 참조하여 dataSetting
|
||||
*
|
||||
* @param session 사용자 정보가 담긴 session객체
|
||||
* @date 2016. 8. 19.
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
* @todo 추가해야 할 작업
|
||||
*/
|
||||
public void updateMainLayoutCode(HttpSession session, String mainLayoutPageCode) {
|
||||
this.setMainLayoutCode(mainLayoutPageCode);
|
||||
session.setAttribute("MAIN_LAYOUT_PAGE_CODE", this.getMainLayoutCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* Map값을 참조하여 dataSetting
|
||||
*
|
||||
* @param memberInfo 사용자 정보가 담긴 map객체
|
||||
* @date 2016. 8. 19.
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
* @todo 추가해야 할 작업
|
||||
*/
|
||||
public void setUserInfo(Map memberInfo) {
|
||||
//this.setUserCi((String) memberInfo.get("MBER_CI"));
|
||||
this.setUserNo((String) memberInfo.get("MBER_NO"));
|
||||
this.setUserId((String) memberInfo.get("MBER_ID"));
|
||||
//this.setUserType((String) memberInfo.get("MBER_TY"));
|
||||
this.setUserName((String) memberInfo.get("MBER_NM"));
|
||||
//this.setUserCi((String) memberInfo.get("MBER_CI"));
|
||||
//this.setMainLayoutCode((String) memberInfo.get("MAIN_LAYOUT_PAGE_CODE"));
|
||||
//this.setFavoriteStorage((String) memberInfo.get("FAVORITE_STORAGE"));
|
||||
}
|
||||
|
||||
/**
|
||||
* data 초기화
|
||||
*
|
||||
* @date 2016. 8. 19.
|
||||
* @returns <void> 반환 변수 및 객체
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
* @todo 추가해야 할 작업
|
||||
*/
|
||||
public void init() {
|
||||
this.setUserNo(null);
|
||||
this.setUserId(null);
|
||||
this.setUserName(null);
|
||||
this.setUserCi(null);
|
||||
this.setMainLayoutCode(null);
|
||||
this.setFavoriteStorage(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자(로그인) 정보가 있는 경우
|
||||
*
|
||||
* @date 2016. 8. 19.
|
||||
* @returns <Boolean> 반환 변수 및 객체
|
||||
* @author InswaveSystems
|
||||
* @example 샘플 코드
|
||||
* @todo 추가해야 할 작업
|
||||
*/
|
||||
public Boolean isLogined() {
|
||||
String userId = this.getUserId();
|
||||
if (userId == null || userId.equals("")) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuffer sb = new StringBuffer("UserInfo{");
|
||||
sb.append("userNo='").append(userNo).append('\'');
|
||||
sb.append(", userId='").append(userId).append('\'');
|
||||
sb.append(", userType='").append(userType).append('\'');
|
||||
sb.append(", userName='").append(userName).append('\'');
|
||||
sb.append(", userCi='").append(userCi).append('\'');
|
||||
sb.append(", isAdmin=").append(isAdmin);
|
||||
sb.append(", isTempMember=").append(isTempMber);
|
||||
sb.append(", mainLayoutCode='").append(mainLayoutCode).append('\'');
|
||||
sb.append(", favoriteStorage='").append(favoriteStorage).append('\'');
|
||||
sb.append(", makeTime=").append(makeTime);
|
||||
sb.append(", defaultMainLayoutCode='").append(defaultMainLayoutCode).append('\'');
|
||||
sb.append(", defaultFavoriteStorage='").append(defaultFavoriteStorage).append('\'');
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package gtpa.icsmw.user.service;
|
||||
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 24/04/2019
|
||||
* TIME : 9:51 AM
|
||||
* Project : icsmw
|
||||
* Class : UserService
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public interface UserService {
|
||||
|
||||
@Transactional
|
||||
public int updatePassword(Map userData);
|
||||
|
||||
@Transactional
|
||||
public int updateCompChargerInfo(Map chargerData);
|
||||
|
||||
@Transactional
|
||||
public int updateVhcleInfo(List<Map> vhcleData);
|
||||
|
||||
@Transactional
|
||||
public int secessionUser(Map userData);
|
||||
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package gtpa.icsmw.user.service.impl;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 24/04/2019
|
||||
* TIME : 9:53 AM
|
||||
* Project : icsmw
|
||||
* Class : UserMapper
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Repository("userDao")
|
||||
public class UserMapper extends EgovAbstractMapper{
|
||||
|
||||
private String NAMESPACE = "UserDAO";
|
||||
|
||||
public int updatePassword(Map userData) {
|
||||
return update(NAMESPACE+".updatePassword",userData);
|
||||
}
|
||||
|
||||
public int updateCompChargerInfo(Map chargerData) {
|
||||
return update(NAMESPACE+".updateCompChargerInfo",chargerData);
|
||||
}
|
||||
|
||||
public int updateVhcleInfo(List<Map> vhcleData) {
|
||||
int rsltCnt = 0;
|
||||
rsltCnt = update(NAMESPACE+".updateVhcleInfo",vhcleData);
|
||||
rsltCnt += update(NAMESPACE+".insertVhcleInfo",vhcleData);
|
||||
return rsltCnt;
|
||||
}
|
||||
|
||||
public int secessionUser(Map userData) {
|
||||
return update(NAMESPACE+".secessionUser",userData);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package gtpa.icsmw.user.service.impl;
|
||||
|
||||
import gtpa.icsmw.user.service.UserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 24/04/2019
|
||||
* TIME : 9:52 AM
|
||||
* Project : icsmw
|
||||
* Class : UserServiceImpl
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
@Service
|
||||
public class UserServiceImpl implements UserService{
|
||||
|
||||
@Resource(name = "userDao")
|
||||
UserMapper userMapper;
|
||||
|
||||
@Override
|
||||
public int updatePassword(Map userData) {
|
||||
return userMapper.updatePassword(userData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateCompChargerInfo(Map chargerData) {
|
||||
return userMapper.updateCompChargerInfo(chargerData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateVhcleInfo(List<Map> vhcleData) {
|
||||
return userMapper.updateVhcleInfo(vhcleData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int secessionUser(Map userData) {
|
||||
return userMapper.secessionUser(userData);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package gtpa.icsmw.user.web;
|
||||
|
||||
//import gtpa.icsmw.fee.service.FeeService;
|
||||
import gtpa.icsmw.login.service.LoginService;
|
||||
//import gtpa.icsmw.penalty.service.PenaltyService;
|
||||
import gtpa.icsmw.user.dto.UserInfo;
|
||||
import gtpa.icsmw.user.service.UserService;
|
||||
//import gtpa.icsmw.vehicle.service.VehicleService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 24/04/2019
|
||||
* TIME : 9:30 AM
|
||||
* Project : icsmw
|
||||
* Class : UserController
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
//@Controller
|
||||
public class UserController {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(UserController.class);
|
||||
|
||||
/**
|
||||
* The User info.
|
||||
*/
|
||||
@Autowired
|
||||
UserInfo userInfo;
|
||||
|
||||
/**
|
||||
* The User service.
|
||||
*/
|
||||
@Autowired
|
||||
UserService userService;
|
||||
|
||||
/**
|
||||
* The Login service.
|
||||
*/
|
||||
@Autowired
|
||||
LoginService loginService;
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 11/04/2019
|
||||
* TIME : 4:14 PM
|
||||
* Project : icsmw
|
||||
* Class : BrsIdGnrUtil
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
|
||||
public class BrsIdGnrUtil {
|
||||
private String prefix;
|
||||
private String group;
|
||||
private int cipers;
|
||||
private String fillChar;
|
||||
private String gnrID;
|
||||
|
||||
public String getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public void setPrefix(String prefix) {
|
||||
this.prefix = prefix;
|
||||
}
|
||||
|
||||
public String getGroup() {
|
||||
return group;
|
||||
}
|
||||
|
||||
public void setGroup(String group) {
|
||||
this.group = group;
|
||||
}
|
||||
|
||||
public int getCipers() {
|
||||
return cipers;
|
||||
}
|
||||
|
||||
public void setCipers(int cipers) {
|
||||
this.cipers = cipers;
|
||||
}
|
||||
|
||||
public String getFillChar() {
|
||||
return fillChar;
|
||||
}
|
||||
|
||||
public void setFillChar(String fillChar) {
|
||||
this.fillChar = fillChar;
|
||||
}
|
||||
|
||||
public String getGnrID() {
|
||||
return gnrID;
|
||||
}
|
||||
|
||||
public void setGnrID() {
|
||||
this.gnrID = makeGnrID();
|
||||
}
|
||||
|
||||
public String makeGnrID(){
|
||||
Date date = new Date();
|
||||
String generateID = this.getPrefix()+this.getGroup()+ + date.getTime();
|
||||
return generateID;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 08/04/2019
|
||||
* TIME : 9:54 AM
|
||||
* Project : icsmw
|
||||
* Class : CertifiDAO
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class CertifiDAO {
|
||||
/*
|
||||
* <insert id="insertCertificationKey" parameterClass="HashMap">
|
||||
INSERT INTO certification_tempkey (phone , tempkey)
|
||||
VALUES (#phone#, #tempKey#)
|
||||
</insert>
|
||||
<select id="getTempKey" parameterClass="String" resultClass="String">
|
||||
select tempKey
|
||||
from certification_tempkey
|
||||
where phone = #value#
|
||||
</select>
|
||||
<delete id="deleteTempKey" parameterClass="String">
|
||||
delete
|
||||
from certification_tempkey
|
||||
where phone = #value#
|
||||
</delete>
|
||||
|
||||
|
||||
출처: https://cusmaker.tistory.com/105 [Custum + Maker]
|
||||
*
|
||||
* */
|
||||
public void insertCertificationKey(HashMap<Object, Object> param) {
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
//insert("insertCertificationKey", param);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getTempKey(String phone) {
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
//return (String)getSqlMapClientTemplate().queryForObject("getTempKey", phone);
|
||||
return "";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void deleteTempKey(String phone) {
|
||||
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
//getSqlMapClientTemplate().delete("deleteTempKey", phone);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 08/04/2019
|
||||
* TIME : 9:53 AM
|
||||
* Project : icsmw
|
||||
* Class : CertificationKeyGenerator
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
/**
|
||||
* @author lejewk
|
||||
* sms인증시 전화번호에대한 키 제네레이터
|
||||
*/
|
||||
public class CertificationKeyGenerator {
|
||||
public static CertificationKeyGenerator newInstance(){
|
||||
return new CertificationKeyGenerator();
|
||||
}
|
||||
|
||||
private CertificationKeyGenerator(){}
|
||||
|
||||
/**
|
||||
* 인증키 생성 유틸
|
||||
* 인증키는 아래와 같이 시간을 전번 뒤에 섞고 끝에서 6자리를 서브스트링한다.
|
||||
* @param Number
|
||||
* @return
|
||||
*/
|
||||
public String tempKeyGenarator(String Number){
|
||||
String lastNumberString = null;
|
||||
String numberArray[] = Number.split("-");
|
||||
if(numberArray[2].charAt(0) == '0'){
|
||||
lastNumberString = "1"+numberArray[2].substring(1, numberArray[2].length());
|
||||
}else{
|
||||
lastNumberString = numberArray[2];
|
||||
}
|
||||
String last = Long.toString((Integer.parseInt(lastNumberString) * System.currentTimeMillis()));
|
||||
return last.substring(last.length()-6, last.length());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
import javax.servlet.http.HttpSessionEvent;
|
||||
import javax.servlet.http.HttpSessionListener;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 15/05/2019
|
||||
* TIME : 10:37 AM
|
||||
* Project : icsmw
|
||||
* Class : HttpSessionRenew
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
public class HttpSessionRenew implements HttpSessionListener {
|
||||
private Logger logger = LoggerFactory.getLogger(HttpSessionRenew.class);
|
||||
|
||||
private SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
|
||||
public HttpSessionRenew() {
|
||||
super();
|
||||
}
|
||||
|
||||
public void sessionCreated(HttpSessionEvent event) {
|
||||
HttpSession session = event.getSession();
|
||||
logger.info("TIME: " + session.getMaxInactiveInterval());
|
||||
logger.info("ID Session "+session.getId()+" create "+session.getCreationTime());
|
||||
}
|
||||
|
||||
public void sessionDestroyed(HttpSessionEvent event) {
|
||||
HttpSession session = event.getSession();
|
||||
|
||||
// print out the session id
|
||||
if(session != null) {
|
||||
logger.info("Session Id: " + session.getId());
|
||||
synchronized(session) {
|
||||
// invalidating a session destroys it
|
||||
session.invalidate();
|
||||
logger.info("DESTROYD SESSION");
|
||||
}
|
||||
}
|
||||
logger.info("ID Session "+session.getId()+" destroyd "+ f.format(new Date()));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
public final class MessageType {
|
||||
public static final String VEHICLE_SEARCH_SUCCESS = "";
|
||||
public static final String VEHICLE_SEARCH_SUCCESS_CODE = "";
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import org.springframework.context.support.MessageSourceAccessor;
|
||||
/**
|
||||
* /////////////////////////////////////////////////////
|
||||
* Company : MQNIC
|
||||
* Create : seunghyun
|
||||
* Date : 30/04/2019
|
||||
* TIME : 4:16 PM
|
||||
* Project : icsmw
|
||||
* Class : MessageUtils
|
||||
* Desc :
|
||||
* /////////////////////////////////////////////////////
|
||||
*/
|
||||
|
||||
|
||||
public class MessageUtils {
|
||||
private static MessageSourceAccessor msAcc = null;
|
||||
|
||||
public void setMessageSourceAccessor(MessageSourceAccessor msAcc) {
|
||||
MessageUtils.msAcc = msAcc;
|
||||
}
|
||||
|
||||
public static String getMessage(String code) {
|
||||
return msAcc.getMessage(code, Locale.getDefault());
|
||||
}
|
||||
|
||||
public static String getMessage(String code, Object[] objs) {
|
||||
return msAcc.getMessage(code, objs, Locale.getDefault());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
public class PageURIUtil {
|
||||
private String INDEX_PAGE;
|
||||
private String LOGIN_PAGE;
|
||||
private String AUTH_CHECK;
|
||||
|
||||
public void setIndexPage(String indexPage) {
|
||||
this.INDEX_PAGE = indexPage;
|
||||
}
|
||||
|
||||
public void setLoginPage(String loginPage) {
|
||||
LOGIN_PAGE = loginPage;
|
||||
}
|
||||
|
||||
public void setAuthCheck(String authCheck) {
|
||||
AUTH_CHECK = authCheck;
|
||||
}
|
||||
|
||||
/**
|
||||
* getIndexPageURI Main Layout URI 가져오기
|
||||
*
|
||||
* @param {String} [default:def, tab, win, null]URI정보를 가지고 오기 위한 string.
|
||||
* @date 2016. 08. 08
|
||||
* @returns {String} properties에 등록된 main layout URI정보를 가져온다. default값은 w5xml.defIndex에 등록된 값이다.
|
||||
* @author InswaveSytems
|
||||
* @example getIndexPageURI(" def "); return 예시 : "/test/test.xml"
|
||||
*/
|
||||
public String getIndexPageURI() {
|
||||
return INDEX_PAGE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default login page URI 가져오기
|
||||
*
|
||||
* @date 2016. 08. 08
|
||||
* @returns {String} login page uri
|
||||
* @author InswaveSystems
|
||||
* @example getLoginPage(); return 예시 : "/test/test.xml"
|
||||
*/
|
||||
public String getLoginPage() {
|
||||
return LOGIN_PAGE;
|
||||
}
|
||||
|
||||
public String getIndexPage() {
|
||||
return INDEX_PAGE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 권한없는 페이지 호출시 보여주는 page url 가져오기
|
||||
*
|
||||
* @date 2016. 09. 12
|
||||
* @returns {String} 권한없는 페이지 호출시 보여주는 page url
|
||||
* @author InswaveSystems
|
||||
* @example getLoginPage(); return 예시 : "/test/test.xml"
|
||||
*/
|
||||
public String getAuthCheck() {
|
||||
return AUTH_CHECK;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,177 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class Result {
|
||||
|
||||
public Map<String, Object> resultMap = new HashMap<>();
|
||||
|
||||
// 성공메세지
|
||||
public final static String STATUS_SUCESS = "S";
|
||||
|
||||
// 성공 메세지
|
||||
public final static String STATUS_SUCESS_MESSAGE = "정상 처리되었습니다.";
|
||||
|
||||
// 오류메세지
|
||||
public final static String STATUS_ERROR = "E";
|
||||
|
||||
// 기본 에러 상세 코드
|
||||
public final static String STATUS_ERROR_DEFAULT_DETAIL_CODE = "E9999";
|
||||
|
||||
// 오류메세지
|
||||
public final static String STATUS_ERROR_MESSAGE = "처리 도중 오류가 발생되었습니다. 다시 시도 해주세요.";
|
||||
|
||||
// 경고메세지
|
||||
public final static String STATUS_WARNING = "W";
|
||||
|
||||
// 경고메세지
|
||||
public final static String STATUS_WARNING_MESSAGE = "처리 도중 오류가 발생되었습니다. 다시 시도 해주세요.";
|
||||
|
||||
// 기본(map 타입) 웹스퀘어 view
|
||||
public final static String VIEW_DEFAULT = "wqView";
|
||||
|
||||
// 결과값에 대한 메세지 key명
|
||||
public final static String MESSAGE_KEY = "rsMsg";
|
||||
|
||||
// viewType이 VIEW_STRING 일 경우 참조하는 key
|
||||
public final static String RESULT_KEY_DEFAULT = "result";
|
||||
|
||||
public void setData(String id, String data) {
|
||||
resultMap.put(id, data);
|
||||
}
|
||||
|
||||
public void setData(String id, Map data) {
|
||||
resultMap.put(id, data);
|
||||
}
|
||||
|
||||
public void setData(String id, List data) {
|
||||
resultMap.put(id, data);
|
||||
}
|
||||
|
||||
public Map<String, Object> getResult() {
|
||||
if (resultMap.get(MESSAGE_KEY) == null) {
|
||||
setMsg(STATUS_SUCESS);
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 메세지 처리 - 상태 기본 메세지 처리
|
||||
*
|
||||
* @param {} status : 메세지 상태
|
||||
* @date 2017.12.02
|
||||
* @memberOf
|
||||
* @returns void
|
||||
* @author Inswave
|
||||
* @example WqModel.setMsg(STATUS_SUCCESS);
|
||||
*/
|
||||
public void setMsg(String status) {
|
||||
String msg = "";
|
||||
if (status == STATUS_ERROR) {
|
||||
msg = STATUS_ERROR_MESSAGE;
|
||||
} else if (status == STATUS_SUCESS) {
|
||||
msg = STATUS_SUCESS_MESSAGE;
|
||||
} else if (status == STATUS_WARNING) {
|
||||
msg = STATUS_WARNING_MESSAGE;
|
||||
}
|
||||
setMsg(status, msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 메세지 처리
|
||||
*
|
||||
* @param {} status : 메세지 상태, message : 메세지 내용
|
||||
* @date 2017.12.02
|
||||
* @memberOf
|
||||
* @returns void
|
||||
* @author Inswave
|
||||
* @example WqModel.setMsg(STATUS_SUCCESS, " 정상 처리되었습니다. ");
|
||||
*/
|
||||
public void setMsg(String status, String message) {
|
||||
setMsg(status, message, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 메세지 처리
|
||||
*
|
||||
* @param {} status : 메세지 상태, message : 메세지 내용
|
||||
* @date 2017.12.02
|
||||
* @memberOf
|
||||
* @returns void
|
||||
* @author Inswave
|
||||
* @example WqModel.setMsg(returnData, MsgUtil.STATUS_SUCCESS, " 정상 처리되었습니다. ", exception 객체);
|
||||
*/
|
||||
public void setMsg(String status, String message, Exception ex) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
if (status.equals(STATUS_SUCESS)) {
|
||||
result.put("statusCode", STATUS_SUCESS);
|
||||
result.put("message", getDefaultStatusMessage(message, STATUS_SUCESS_MESSAGE));
|
||||
} else if (status.equals(STATUS_WARNING)) {
|
||||
result.put("statusCode", STATUS_WARNING);
|
||||
result.put("message", getDefaultStatusMessage(message, STATUS_WARNING_MESSAGE));
|
||||
} else if (status.equals(STATUS_ERROR)) {
|
||||
setErrorMsg(STATUS_ERROR_DEFAULT_DETAIL_CODE, message, ex);
|
||||
return;
|
||||
}else{
|
||||
result.put("statusCode", status);
|
||||
result.put("message", message);
|
||||
}
|
||||
|
||||
if (ex != null) {
|
||||
result.put("messageDetail", ex.getMessage());
|
||||
}
|
||||
|
||||
resultMap.put(MESSAGE_KEY, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 오류 메세지 처리
|
||||
*
|
||||
* @param {} errorCode : 오류코드, message : 메세지 내용
|
||||
* @date 2017.12.02
|
||||
* @memberOf
|
||||
* @returns void
|
||||
* @author Inswave
|
||||
* @example WqModel.setErrorMsg(" E0001 ", " 세션이없습니다. ");
|
||||
*/
|
||||
public void setErrorMsg(String errorCode, String message) {
|
||||
setErrorMsg(errorCode, message, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 오류 메세지 처리
|
||||
*
|
||||
* @param {} errorCode : 오류코드, message : 메세지 내용
|
||||
* @date 2017.12.02
|
||||
* @memberOf
|
||||
* @returns void
|
||||
* @author Inswave
|
||||
* @example WqModel.setErrorMsg(" E0001 ", " 세션이없습니다. ", exception 객체);
|
||||
*/
|
||||
public void setErrorMsg(String errorCode, String message, Exception ex) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
result.put("statusCode", STATUS_ERROR);
|
||||
result.put("errorCode", errorCode);
|
||||
result.put("message", getDefaultStatusMessage(message, STATUS_ERROR_MESSAGE));
|
||||
|
||||
if (ex != null) {
|
||||
result.put("messageDetail", "" + ex.getMessage());
|
||||
}
|
||||
resultMap.put(MESSAGE_KEY, result);
|
||||
}
|
||||
|
||||
public String getDefaultStatusMessage(String message, String defMessage) {
|
||||
if (message == null) {
|
||||
return defMessage;
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
;
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package gtpa.icsmw.util;
|
||||
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
|
||||
public class SHA256Util {
|
||||
private static Logger logger = LoggerFactory.getLogger(SHA256Util.class);
|
||||
|
||||
public static String encryptSHA256(String str) {
|
||||
String result = "";
|
||||
try {
|
||||
MessageDigest sh = MessageDigest.getInstance("SHA-256");
|
||||
sh.update(str.getBytes());
|
||||
byte[] byteData = sh.digest();
|
||||
StringBuffer sb = new StringBuffer();
|
||||
|
||||
for (int i = 0; i < byteData.length; i++) {
|
||||
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
|
||||
}
|
||||
result = sb.toString();
|
||||
} catch (RuntimeException re) {
|
||||
logger.error("[RuntimeException::" + "" + "]", re);
|
||||
} catch (Exception e) {
|
||||
logger.error("SHA256Util Encrypt Error::" + "e.getMessage()", e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue