Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
drp
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
drp
Commits
f13bce6f
Commit
f13bce6f
authored
Mar 24, 2015
by
reedmi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
删除多余的project相关
parent
4365dd18
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
743 additions
and
1571 deletions
+743
-1571
.gitignore
.gitignore
+1
-0
pom.xml
pom.xml
+189
-189
src/main/java/com/originspark/drp/controllers/BaseController.java
.../java/com/originspark/drp/controllers/BaseController.java
+1
-1
src/main/java/com/originspark/drp/controllers/MainController.java
.../java/com/originspark/drp/controllers/MainController.java
+4
-4
src/main/java/com/originspark/drp/controllers/ProfileController.java
...va/com/originspark/drp/controllers/ProfileController.java
+5
-5
src/main/java/com/originspark/drp/controllers/UserController.java
.../java/com/originspark/drp/controllers/UserController.java
+31
-31
src/main/java/com/originspark/drp/dao/BaseDAO.java
src/main/java/com/originspark/drp/dao/BaseDAO.java
+6
-2
src/main/java/com/originspark/drp/dao/BaseDAOSupport.java
src/main/java/com/originspark/drp/dao/BaseDAOSupport.java
+6
-6
src/main/java/com/originspark/drp/models/AbstractModel.java
src/main/java/com/originspark/drp/models/AbstractModel.java
+8
-8
src/main/java/com/originspark/drp/models/User.java
src/main/java/com/originspark/drp/models/User.java
+1
-1
src/main/java/com/originspark/drp/processor/UTF8StringBeanPostProcessor.java
...riginspark/drp/processor/UTF8StringBeanPostProcessor.java
+25
-24
src/main/java/com/originspark/drp/util/Blowfish.java
src/main/java/com/originspark/drp/util/Blowfish.java
+320
-262
src/main/java/com/originspark/drp/util/FileUtil.java
src/main/java/com/originspark/drp/util/FileUtil.java
+1
-1
src/main/java/com/originspark/drp/util/SessionUtil.java
src/main/java/com/originspark/drp/util/SessionUtil.java
+5
-4
src/main/java/com/originspark/drp/util/StringUtil.java
src/main/java/com/originspark/drp/util/StringUtil.java
+14
-14
src/main/java/com/originspark/drp/util/poi/exporter/MonthendInventoryGenerator.java
...ark/drp/util/poi/exporter/MonthendInventoryGenerator.java
+9
-9
src/main/java/com/originspark/drp/web/models/projects/ProjectUI.java
...va/com/originspark/drp/web/models/projects/ProjectUI.java
+0
-87
src/main/resources/META-INF/persistence.xml
src/main/resources/META-INF/persistence.xml
+19
-0
src/main/resources/context.xml
src/main/resources/context.xml
+2
-20
src/main/resources/ehcache-hibernate-local.xml
src/main/resources/ehcache-hibernate-local.xml
+4
-7
src/main/resources/jdbc.properties
src/main/resources/jdbc.properties
+1
-17
src/main/resources/sql/users.sql
src/main/resources/sql/users.sql
+0
-69
src/main/webapp/WEB-INF/web.xml
src/main/webapp/WEB-INF/web.xml
+91
-90
src/main/webapp/drp/app/controller/projects/ProjectController.js
...n/webapp/drp/app/controller/projects/ProjectController.js
+0
-229
src/main/webapp/drp/app/model/projects/ProjectModel.js
src/main/webapp/drp/app/model/projects/ProjectModel.js
+0
-51
src/main/webapp/drp/app/store/projects/ProjectDataStore.js
src/main/webapp/drp/app/store/projects/ProjectDataStore.js
+0
-4
src/main/webapp/drp/app/store/projects/ProjectStore.js
src/main/webapp/drp/app/store/projects/ProjectStore.js
+0
-9
src/main/webapp/drp/app/view/projects/ProjectView.js
src/main/webapp/drp/app/view/projects/ProjectView.js
+0
-195
src/main/webapp/drp/app/view/projects/ProjectViewForm.js
src/main/webapp/drp/app/view/projects/ProjectViewForm.js
+0
-148
src/main/webapp/drp/app/view/projects/SystemViewForm.js
src/main/webapp/drp/app/view/projects/SystemViewForm.js
+0
-84
No files found.
.gitignore
View file @
f13bce6f
...
@@ -5,3 +5,4 @@
...
@@ -5,3 +5,4 @@
.settings
.settings
/filters/dev
/filters/dev
upload/
upload/
.springBeans
pom.xml
View file @
f13bce6f
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
<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"
>
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.originspark.drp
</groupId>
<groupId>
com.originspark.drp
</groupId>
<artifactId>
drp
</artifactId>
<artifactId>
drp
</artifactId>
<packaging>
war
</packaging>
<packaging>
war
</packaging>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
<name>
drp Maven Webapp
</name>
<name>
drp Maven Webapp
</name>
<url>
http://maven.apache.org
</url>
<url>
http://maven.apache.org
</url>
<properties>
<properties>
<junit.version>
4.11
</junit.version>
<junit.version>
4.11
</junit.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<jdk.version>
1.7
</jdk.version>
<jdk.version>
1.7
</jdk.version>
<hibernate.version>
4.2.0.Final
</hibernate.version>
<hibernate.version>
4.2.0.Final
</hibernate.version>
<mysql.connector.version>
5.1.21
</mysql.connector.version>
<mysql.connector.version>
5.1.21
</mysql.connector.version>
<spring.version>
3.2.2.RELEASE
</spring.version>
<spring.version>
3.2.2.RELEASE
</spring.version>
</properties>
</properties>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<groupId>
javax.servlet
</groupId>
<artifactId>
javax.servlet-api
</artifactId>
<artifactId>
javax.servlet-api
</artifactId>
<version>
3.0.1
</version>
<version>
3.0.1
</version>
<scope>
provided
</scope>
<scope>
provided
</scope>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
javax.servlet.jsp
</groupId>
<groupId>
javax.servlet.jsp
</groupId>
<artifactId>
jsp-api
</artifactId>
<artifactId>
jsp-api
</artifactId>
<version>
2.1
</version>
<version>
2.1
</version>
<scope>
provided
</scope>
<scope>
provided
</scope>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<groupId>
javax.servlet
</groupId>
<artifactId>
jstl
</artifactId>
<artifactId>
jstl
</artifactId>
<version>
1.2
</version>
<version>
1.2
</version>
</dependency>
</dependency>
<!-- DB related dependencies -->
<!-- DB related dependencies -->
<dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
<groupId>
org.hibernate
</groupId>
<artifactId>
hibernate-core
</artifactId>
<artifactId>
hibernate-core
</artifactId>
<version>
${hibernate.version}
</version>
<version>
${hibernate.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
<groupId>
org.hibernate
</groupId>
<artifactId>
hibernate-entitymanager
</artifactId>
<artifactId>
hibernate-entitymanager
</artifactId>
<version>
${hibernate.version}
</version>
<version>
${hibernate.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.hibernate
</groupId>
<groupId>
org.hibernate
</groupId>
<artifactId>
hibernate-ehcache
</artifactId>
<artifactId>
hibernate-ehcache
</artifactId>
<version>
${hibernate.version}
</version>
<version>
${hibernate.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
mysql
</groupId>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
${mysql.connector.version}
</version>
<version>
${mysql.connector.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
commons-dbcp
</groupId>
<groupId>
commons-dbcp
</groupId>
<artifactId>
commons-dbcp
</artifactId>
<artifactId>
commons-dbcp
</artifactId>
<version>
1.4
</version>
<version>
1.4
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
javassist
</groupId>
<groupId>
javassist
</groupId>
<artifactId>
javassist
</artifactId>
<artifactId>
javassist
</artifactId>
<version>
3.12.1.GA
</version>
<version>
3.12.1.GA
</version>
</dependency>
</dependency>
<!-- SPRING -->
<!-- SPRING -->
<dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<artifactId>
spring-webmvc
</artifactId>
<version>
${spring.version}
</version>
<version>
${spring.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-tx
</artifactId>
<artifactId>
spring-tx
</artifactId>
<version>
${spring.version}
</version>
<version>
${spring.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-jdbc
</artifactId>
<artifactId>
spring-jdbc
</artifactId>
<version>
${spring.version}
</version>
<version>
${spring.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-orm
</artifactId>
<artifactId>
spring-orm
</artifactId>
<version>
${spring.version}
</version>
<version>
${spring.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
commons-io
</groupId>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<artifactId>
commons-io
</artifactId>
<version>
2.4
</version>
<version>
2.4
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.3.2
</version>
<version>
3.3.2
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
commons-fileupload
</groupId>
<groupId>
commons-fileupload
</groupId>
<artifactId>
commons-fileupload
</artifactId>
<artifactId>
commons-fileupload
</artifactId>
<version>
1.3.1
</version>
<version>
1.3.1
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
log4j
</groupId>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<artifactId>
log4j
</artifactId>
<version>
1.2.17
</version>
<version>
1.2.17
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.poi
</groupId>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi
</artifactId>
<artifactId>
poi
</artifactId>
<version>
3.11
</version>
<version>
3.11
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.poi
</groupId>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi-ooxml
</artifactId>
<artifactId>
poi-ooxml
</artifactId>
<version>
3.11
</version>
<version>
3.11
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-core
</artifactId>
<artifactId>
jackson-core
</artifactId>
<version>
2.5.1
</version>
<version>
2.5.1
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.fasterxml.jackson.core
</groupId>
<groupId>
com.fasterxml.jackson.core
</groupId>
<artifactId>
jackson-databind
</artifactId>
<artifactId>
jackson-databind
</artifactId>
<version>
2.5.1
</version>
<version>
2.5.1
</version>
</dependency>
</dependency>
</dependencies>
</dependencies>
<profiles>
<profiles>
<profile>
<profile>
<id>
dev
</id>
<id>
dev
</id>
<activation>
<activation>
<activeByDefault>
true
</activeByDefault>
<activeByDefault>
true
</activeByDefault>
</activation>
</activation>
<properties>
<properties>
<filters.env>
dev
</filters.env>
<filters.env>
dev
</filters.env>
</properties>
</properties>
</profile>
</profile>
<profile>
<profile>
<id>
prod
</id>
<id>
prod
</id>
<properties>
<properties>
<filters.env>
prod
</filters.env>
<filters.env>
prod
</filters.env>
</properties>
</properties>
</profile>
</profile>
</profiles>
</profiles>
<build>
<build>
<finalName>
drp
</finalName>
<finalName>
drp
</finalName>
<sourceDirectory>
src/main/java
</sourceDirectory>
<sourceDirectory>
src/main/java
</sourceDirectory>
<testSourceDirectory>
src/test/java
</testSourceDirectory>
<testSourceDirectory>
src/test/java
</testSourceDirectory>
<resources>
<resources>
<resource>
<resource>
<directory>
${project.basedir}/src/main/resources
</directory>
<directory>
${project.basedir}/src/main/resources
</directory>
<filtering>
true
</filtering>
<filtering>
true
</filtering>
</resource>
</resource>
</resources>
</resources>
<filters>
<filters>
<filter>
${basedir}/filters/${filters.env}/jdbc.properties
</filter>
<filter>
${basedir}/filters/${filters.env}/jdbc.properties
</filter>
</filters>
</filters>
<plugins>
<plugins>
<plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
2.5.1
</version>
<version>
2.5.1
</version>
<configuration>
<configuration>
<encoding>
UTF-8
</encoding>
<encoding>
UTF-8
</encoding>
<source>
${jdk.version}
</source>
<source>
${jdk.version}
</source>
<target>
${jdk.version}
</target>
<target>
${jdk.version}
</target>
</configuration>
</configuration>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
org.codehaus.plexus
</groupId>
<groupId>
org.codehaus.plexus
</groupId>
<artifactId>
plexus-compiler-javac
</artifactId>
<artifactId>
plexus-compiler-javac
</artifactId>
<version>
1.8.1
</version>
<version>
1.8.1
</version>
</dependency>
</dependency>
</dependencies>
</dependencies>
</plugin>
</plugin>
<plugin>
<plugin>
<groupId>
org.apache.tomcat.maven
</groupId>
<groupId>
org.apache.tomcat.maven
</groupId>
<artifactId>
tomcat7-maven-plugin
</artifactId>
<artifactId>
tomcat7-maven-plugin
</artifactId>
<version>
2.1
</version>
<version>
2.1
</version>
<configuration>
<configuration>
<port>
8080
</port>
<port>
8080
</port>
<path>
/drp
</path>
<path>
/drp
</path>
<uriEncoding>
UTF-8
</uriEncoding>
<uriEncoding>
UTF-8
</uriEncoding>
<finalName>
drp
</finalName>
<finalName>
drp
</finalName>
<server>
tomcat7
</server>
<server>
tomcat7
</server>
</configuration>
</configuration>
</plugin>
</plugin>
</plugins>
</plugins>
</build>
</build>
</project>
</project>
src/main/java/com/originspark/drp/controllers/BaseController.java
View file @
f13bce6f
...
@@ -78,7 +78,7 @@ public class BaseController extends HandlerInterceptorAdapter {
...
@@ -78,7 +78,7 @@ public class BaseController extends HandlerInterceptorAdapter {
}
}
public
User
getCurrentUser
()
{
public
User
getCurrentUser
()
{
return
(
User
)
session
().
getAttribute
(
"user"
);
return
(
User
)
session
().
getAttribute
(
"user"
);
}
}
// 一般用于create、update、delete的返回值
// 一般用于create、update、delete的返回值
...
...
src/main/java/com/originspark/drp/controllers/MainController.java
View file @
f13bce6f
...
@@ -8,12 +8,12 @@ import org.springframework.web.bind.annotation.RequestMethod;
...
@@ -8,12 +8,12 @@ import org.springframework.web.bind.annotation.RequestMethod;
public
class
MainController
{
public
class
MainController
{
@RequestMapping
(
"index"
)
@RequestMapping
(
"index"
)
public
String
index
(){
public
String
index
()
{
return
"index"
;
return
"index"
;
}
}
@RequestMapping
(
value
=
"main"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"main"
,
method
=
RequestMethod
.
GET
)
public
String
main
(){
public
String
main
()
{
return
"main"
;
return
"main"
;
}
}
}
}
src/main/java/com/originspark/drp/controllers/ProfileController.java
View file @
f13bce6f
...
@@ -15,9 +15,9 @@ import com.originspark.drp.util.json.PasswordJson;
...
@@ -15,9 +15,9 @@ import com.originspark.drp.util.json.PasswordJson;
@RequestMapping
(
"profile"
)
@RequestMapping
(
"profile"
)
public
class
ProfileController
extends
BaseController
{
public
class
ProfileController
extends
BaseController
{
@RequestMapping
(
value
=
"/password/update"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/password/update"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ResponseBody
public
String
updatePassword
(
@RequestParam
String
data
){
public
String
updatePassword
(
@RequestParam
String
data
)
{
System
.
out
.
println
(
request
().
getSession
());
System
.
out
.
println
(
request
().
getSession
());
...
@@ -25,7 +25,7 @@ public class ProfileController extends BaseController {
...
@@ -25,7 +25,7 @@ public class ProfileController extends BaseController {
try
{
try
{
PasswordJson
json
=
mapper
.
readValue
(
data
,
PasswordJson
.
class
);
PasswordJson
json
=
mapper
.
readValue
(
data
,
PasswordJson
.
class
);
if
(!
json
.
getNewpwd
().
equals
(
json
.
getNewpwdagain
()))
{
if
(!
json
.
getNewpwd
().
equals
(
json
.
getNewpwdagain
()))
{
return
failure
(
"修改失败,密码两次输入不一致"
);
return
failure
(
"修改失败,密码两次输入不一致"
);
}
}
...
@@ -33,7 +33,7 @@ public class ProfileController extends BaseController {
...
@@ -33,7 +33,7 @@ public class ProfileController extends BaseController {
Blowfish
bf
=
new
Blowfish
();
Blowfish
bf
=
new
Blowfish
();
String
pwd
=
bf
.
decryptString
(
user
.
getPassword
());
String
pwd
=
bf
.
decryptString
(
user
.
getPassword
());
if
(!
json
.
getPwd
().
equals
(
pwd
))
{
if
(!
json
.
getPwd
().
equals
(
pwd
))
{
return
failure
(
"修改失败,请输入正确的原始密码"
);
return
failure
(
"修改失败,请输入正确的原始密码"
);
}
}
...
@@ -43,7 +43,7 @@ public class ProfileController extends BaseController {
...
@@ -43,7 +43,7 @@ public class ProfileController extends BaseController {
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
return
failure
(
"系统出现异常,修改失败"
);
return
failure
(
"系统出现异常,修改失败"
);
}
}
return
ok
(
"密码修改成功"
);
return
ok
(
"密码修改成功"
);
}
}
...
...
src/main/java/com/originspark/drp/controllers/UserController.java
View file @
f13bce6f
...
@@ -26,14 +26,14 @@ import com.originspark.drp.util.json.JsonUtils;
...
@@ -26,14 +26,14 @@ import com.originspark.drp.util.json.JsonUtils;
@RequestMapping
(
"users"
)
@RequestMapping
(
"users"
)
public
class
UserController
extends
BaseController
{
public
class
UserController
extends
BaseController
{
@RequestMapping
(
value
=
"/{type}"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
value
=
"/{type}"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ResponseBody
public
String
create
(
@PathVariable
String
type
,
@RequestBody
User
user
)
{
public
String
create
(
@PathVariable
String
type
,
@RequestBody
User
user
)
{
if
(
type
==
null
||
""
.
equals
(
type
))
{
if
(
type
==
null
||
""
.
equals
(
type
))
{
return
ok
(
"参数错误"
);
return
ok
(
"参数错误"
);
}
}
User
currentUser
=
getCurrentUser
();
User
currentUser
=
getCurrentUser
();
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
return
ok
(
"权限不足"
);
return
ok
(
"权限不足"
);
}
}
user
.
setType
(
UserType
.
valueOf
(
type
.
toUpperCase
()));
user
.
setType
(
UserType
.
valueOf
(
type
.
toUpperCase
()));
...
@@ -45,11 +45,11 @@ public class UserController extends BaseController {
...
@@ -45,11 +45,11 @@ public class UserController extends BaseController {
@RequestMapping
(
value
=
"/{type}/{id}"
,
method
=
RequestMethod
.
DELETE
)
@RequestMapping
(
value
=
"/{type}/{id}"
,
method
=
RequestMethod
.
DELETE
)
@ResponseBody
@ResponseBody
public
String
delete
(
@PathVariable
String
type
,
@PathVariable
Long
id
)
{
public
String
delete
(
@PathVariable
String
type
,
@PathVariable
Long
id
)
{
if
(
type
==
null
||
""
.
equals
(
type
)
||
id
==
null
||
id
<
1
)
{
if
(
type
==
null
||
""
.
equals
(
type
)
||
id
==
null
||
id
<
1
)
{
return
ok
(
"参数错误"
);
return
ok
(
"参数错误"
);
}
}
User
currentUser
=
getCurrentUser
();
User
currentUser
=
getCurrentUser
();
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
return
ok
(
"权限不足"
);
return
ok
(
"权限不足"
);
}
}
User
leader
=
userService
.
findById
(
User
.
class
,
id
);
User
leader
=
userService
.
findById
(
User
.
class
,
id
);
...
@@ -58,43 +58,43 @@ public class UserController extends BaseController {
...
@@ -58,43 +58,43 @@ public class UserController extends BaseController {
return
ok
(
"注销成功"
);
return
ok
(
"注销成功"
);
}
}
@RequestMapping
(
value
=
"/{type}/deleteBatch"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/{type}/deleteBatch"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ResponseBody
public
String
deleteBatch
(
@PathVariable
String
type
,
HttpServletRequest
request
){
public
String
deleteBatch
(
@PathVariable
String
type
,
HttpServletRequest
request
)
{
if
(
type
==
null
||
""
.
equals
(
type
))
{
if
(
type
==
null
||
""
.
equals
(
type
))
{
return
ok
(
"参数错误"
);
return
ok
(
"参数错误"
);
}
}
User
currentUser
=
getCurrentUser
();
User
currentUser
=
getCurrentUser
();
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
return
ok
(
"权限不足"
);
return
ok
(
"权限不足"
);
}
}
String
data
=
request
.
getParameter
(
"data"
);
String
data
=
request
.
getParameter
(
"data"
);
ObjectMapper
mapper
=
new
ObjectMapper
();
ObjectMapper
mapper
=
new
ObjectMapper
();
IdsJson
json
=
null
;
IdsJson
json
=
null
;
try
{
try
{
json
=
mapper
.
readValue
(
data
,
IdsJson
.
class
);
json
=
mapper
.
readValue
(
data
,
IdsJson
.
class
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
return
failure
(
"提交数据有误"
);
return
failure
(
"提交数据有误"
);
}
}
if
(
json
==
null
)
{
if
(
json
==
null
)
{
return
failure
(
"没有需要审核的数据"
);
return
failure
(
"没有需要审核的数据"
);
}
}
for
(
long
id:
json
.
getIds
())
{
for
(
long
id
:
json
.
getIds
())
{
User
leader
=
userService
.
findById
(
User
.
class
,
id
);
User
leader
=
userService
.
findById
(
User
.
class
,
id
);
leader
.
setStatus
(
Status
.
DESTORYED
);
leader
.
setStatus
(
Status
.
DESTORYED
);
userService
.
update
(
leader
);
userService
.
update
(
leader
);
}
}
return
ok
(
"注销成功"
);
return
ok
(
"注销成功"
);
}
}
@RequestMapping
(
value
=
"/{type}/{id}"
,
method
=
RequestMethod
.
PUT
)
@RequestMapping
(
value
=
"/{type}/{id}"
,
method
=
RequestMethod
.
PUT
)
@ResponseBody
@ResponseBody
public
String
update
(
@PathVariable
String
type
,
@PathVariable
Long
id
,
@RequestBody
User
user
)
{
public
String
update
(
@PathVariable
String
type
,
@PathVariable
Long
id
,
@RequestBody
User
user
)
{
if
(
type
==
null
||
""
.
equals
(
type
)
||
id
==
null
||
id
<
1
)
{
if
(
type
==
null
||
""
.
equals
(
type
)
||
id
==
null
||
id
<
1
)
{
return
ok
(
"参数错误"
);
return
ok
(
"参数错误"
);
}
}
User
currentUser
=
getCurrentUser
();
User
currentUser
=
getCurrentUser
();
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
if
(
currentUser
==
null
||
!
UserType
.
MANAGER
.
equals
(
currentUser
.
getType
()))
{
return
ok
(
"权限不足"
);
return
ok
(
"权限不足"
);
}
}
User
existingLeader
=
userService
.
findById
(
User
.
class
,
id
);
User
existingLeader
=
userService
.
findById
(
User
.
class
,
id
);
...
@@ -114,18 +114,18 @@ public class UserController extends BaseController {
...
@@ -114,18 +114,18 @@ public class UserController extends BaseController {
return
ok
(
"更新成功"
);
return
ok
(
"更新成功"
);
}
}
@RequestMapping
(
value
=
"/{type}"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/{type}"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ResponseBody
public
String
list
(
@PathVariable
String
type
,
@RequestParam
int
start
,
@RequestParam
int
limit
,
@RequestParam
(
required
=
false
)
Object
filter
)
{
public
String
list
(
@PathVariable
String
type
,
@RequestParam
int
start
,
@RequestParam
int
limit
,
@RequestParam
(
required
=
false
)
Object
filter
)
{
List
<
FilterRequest
>
filters
=
new
ArrayList
<
FilterRequest
>();
List
<
FilterRequest
>
filters
=
new
ArrayList
<
FilterRequest
>();
filters
.
add
(
new
FilterRequest
(
"type"
,
type
.
toUpperCase
()));
filters
.
add
(
new
FilterRequest
(
"type"
,
type
.
toUpperCase
()));
if
(
filter
!=
null
)
{
if
(
filter
!=
null
)
{
filters
.
addAll
(
JsonUtils
.
getListFromJsonArray
(
filter
));
filters
.
addAll
(
JsonUtils
.
getListFromJsonArray
(
filter
));
}
}
List
<
User
>
data
=
userService
.
pagedDataSet
(
start
,
limit
,
filters
);
List
<
User
>
data
=
userService
.
pagedDataSet
(
start
,
limit
,
filters
);
Long
count
=
userService
.
pagedDataCount
(
filters
);
Long
count
=
userService
.
pagedDataCount
(
filters
);
return
ok
(
data
,
count
);
return
ok
(
data
,
count
);
...
...
src/main/java/com/originspark/drp/dao/BaseDAO.java
View file @
f13bce6f
package
com
.
originspark
.
drp
.
dao
;
package
com
.
originspark
.
drp
.
dao
;
public
interface
BaseDAO
<
T
>
{
public
interface
BaseDAO
<
T
>
{
T
findById
(
Class
<
T
>
c
,
Long
id
);
T
findById
(
Class
<
T
>
c
,
Long
id
);
T
getReferance
(
Class
<
T
>
c
,
Long
id
);
T
getReferance
(
Class
<
T
>
c
,
Long
id
);
T
save
(
T
entity
);
T
save
(
T
entity
);
T
update
(
T
entity
);
T
update
(
T
entity
);
void
delete
(
T
entity
);
void
delete
(
T
entity
);
}
}
src/main/java/com/originspark/drp/dao/BaseDAOSupport.java
View file @
f13bce6f
...
@@ -5,7 +5,7 @@ import javax.persistence.PersistenceContext;
...
@@ -5,7 +5,7 @@ import javax.persistence.PersistenceContext;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
@Transactional
@Transactional
public
abstract
class
BaseDAOSupport
<
T
>
implements
BaseDAO
<
T
>{
public
abstract
class
BaseDAOSupport
<
T
>
implements
BaseDAO
<
T
>
{
@PersistenceContext
@PersistenceContext
protected
EntityManager
em
;
protected
EntityManager
em
;
...
@@ -14,8 +14,8 @@ public abstract class BaseDAOSupport<T> implements BaseDAO<T>{
...
@@ -14,8 +14,8 @@ public abstract class BaseDAOSupport<T> implements BaseDAO<T>{
em
.
remove
(
entity
);
em
.
remove
(
entity
);
}
}
@Transactional
(
readOnly
=
true
)
@Transactional
(
readOnly
=
true
)
public
T
findById
(
Class
<
T
>
c
,
Long
id
)
{
public
T
findById
(
Class
<
T
>
c
,
Long
id
)
{
return
em
.
find
(
c
,
id
);
return
em
.
find
(
c
,
id
);
}
}
...
@@ -27,9 +27,9 @@ public abstract class BaseDAOSupport<T> implements BaseDAO<T>{
...
@@ -27,9 +27,9 @@ public abstract class BaseDAOSupport<T> implements BaseDAO<T>{
public
T
update
(
T
entity
)
{
public
T
update
(
T
entity
)
{
return
em
.
merge
(
entity
);
return
em
.
merge
(
entity
);
}
}
@Transactional
(
readOnly
=
true
)
@Transactional
(
readOnly
=
true
)
public
T
getReferance
(
Class
<
T
>
c
,
Long
id
)
{
public
T
getReferance
(
Class
<
T
>
c
,
Long
id
)
{
return
em
.
getReference
(
c
,
id
);
return
em
.
getReference
(
c
,
id
);
}
}
...
...
src/main/java/com/originspark/drp/models/AbstractModel.java
View file @
f13bce6f
...
@@ -23,25 +23,25 @@ public abstract class AbstractModel {
...
@@ -23,25 +23,25 @@ public abstract class AbstractModel {
/**
/**
* 维护信息:记录创建日期
* 维护信息:记录创建日期
*/
*/
@Column
(
name
=
"createdOn"
,
nullable
=
false
)
@Column
(
name
=
"createdOn"
,
nullable
=
false
)
private
Date
createdOn
;
private
Date
createdOn
;
/**
/**
* 维护信息:记录创建者
* 维护信息:记录创建者
*/
*/
@Column
(
name
=
"createdBy"
,
length
=
10
)
@Column
(
name
=
"createdBy"
,
length
=
10
)
private
String
createdBy
;
private
String
createdBy
;
/**
/**
* 维护信息:记录更新日期
* 维护信息:记录更新日期
*/
*/
@Column
(
name
=
"updatedOn"
,
nullable
=
false
)
@Column
(
name
=
"updatedOn"
,
nullable
=
false
)
private
Date
updatedOn
;
private
Date
updatedOn
;
/**
/**
* 维护信息:记录更新者
* 维护信息:记录更新者
*/
*/
@Column
(
name
=
"updatedBy"
,
length
=
10
)
@Column
(
name
=
"updatedBy"
,
length
=
10
)
private
String
updatedBy
;
private
String
updatedBy
;
/**
/**
...
@@ -105,12 +105,12 @@ public abstract class AbstractModel {
...
@@ -105,12 +105,12 @@ public abstract class AbstractModel {
}
}
@PreUpdate
@PreUpdate
private
void
preUpdate
(){
private
void
preUpdate
()
{
updatedOn
=
new
Date
();
updatedOn
=
new
Date
();
}
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"id="
+
id
+
", updateOn="
+
updatedOn
;
return
"id="
+
id
+
", updateOn="
+
updatedOn
;
}
}
}
}
\ No newline at end of file
src/main/java/com/originspark/drp/models/User.java
View file @
f13bce6f
...
@@ -11,7 +11,7 @@ import com.originspark.drp.util.enums.Gender;
...
@@ -11,7 +11,7 @@ import com.originspark.drp.util.enums.Gender;
import
com.originspark.drp.util.enums.UserType
;
import
com.originspark.drp.util.enums.UserType
;
@Entity
@Entity
@Table
(
name
=
"users"
)
@Table
(
name
=
"users"
)
public
class
User
extends
AbstractModel
{
public
class
User
extends
AbstractModel
{
@Enumerated
(
EnumType
.
STRING
)
@Enumerated
(
EnumType
.
STRING
)
...
...
src/main/java/com/originspark/drp/processor/UTF8StringBeanPostProcessor.java
View file @
f13bce6f
package
com
.
originspark
.
drp
.
processor
;
package
com
.
originspark
.
drp
.
processor
;
import
java.nio.charset.Charset
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.config.BeanPostProcessor
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.StringHttpMessageConverter
;
public
class
UTF8StringBeanPostProcessor
implements
BeanPostProcessor
{
import
java.nio.charset.Charset
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.config.BeanPostProcessor
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.StringHttpMessageConverter
;
@Override
public
class
UTF8StringBeanPostProcessor
implements
BeanPostProcessor
{
public
Object
postProcessAfterInitialization
(
Object
bean
,
String
beanName
)
throws
BeansException
{
@Override
if
(
bean
instanceof
StringHttpMessageConverter
){
public
Object
postProcessAfterInitialization
(
Object
bean
,
String
beanName
)
throws
BeansException
{
if
(
bean
instanceof
StringHttpMessageConverter
)
{
MediaType
mediaType
=
new
MediaType
(
"text"
,
"plain"
,
Charset
.
forName
(
"UTF-8"
));
MediaType
mediaType
=
new
MediaType
(
"text"
,
"plain"
,
Charset
.
forName
(
"UTF-8"
));
List
<
MediaType
>
types
=
new
ArrayList
<
MediaType
>();
List
<
MediaType
>
types
=
new
ArrayList
<
MediaType
>();
types
.
add
(
mediaType
);
types
.
add
(
mediaType
);
((
StringHttpMessageConverter
)
bean
).
setSupportedMediaTypes
(
types
);
((
StringHttpMessageConverter
)
bean
).
setSupportedMediaTypes
(
types
);
}
}
return
bean
;
return
bean
;
}
}
@Override
@Override
public
Object
postProcessBeforeInitialization
(
Object
bean
,
String
beanName
)
public
Object
postProcessBeforeInitialization
(
Object
bean
,
String
beanName
)
throws
BeansException
{
throws
BeansException
{
// do nothing
// do nothing
return
bean
;
return
bean
;
}
}
}
}
\ No newline at end of file
src/main/java/com/originspark/drp/util/Blowfish.java
View file @
f13bce6f
...
@@ -18,7 +18,8 @@ import java.util.*;
...
@@ -18,7 +18,8 @@ import java.util.*;
import
java.security.*
;
import
java.security.*
;
/**
/**
* A class that provides easy Blowfish encryption.<p>
* A class that provides easy Blowfish encryption.
* <p>
*
*
* @author Markus Hahn <markus_hahn@gmx.net>
* @author Markus Hahn <markus_hahn@gmx.net>
*/
*/
...
@@ -37,12 +38,11 @@ public class Blowfish {
...
@@ -37,12 +38,11 @@ public class Blowfish {
// hash down the password to a 160bit key
// hash down the password to a 160bit key
MessageDigest
digest
=
null
;
MessageDigest
digest
=
null
;
try
{
try
{
String
password
=
"fc4e6e4090e9edfe4dcff438d095954d"
;
String
password
=
"fc4e6e4090e9edfe4dcff438d095954d"
;
digest
=
MessageDigest
.
getInstance
(
"SHA1"
);
digest
=
MessageDigest
.
getInstance
(
"SHA1"
);
digest
.
update
(
password
.
getBytes
());
digest
.
update
(
password
.
getBytes
());
}
}
catch
(
Exception
e
)
{
catch
(
Exception
e
)
{
// Log.error(e);
// Log.error(e);
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
@@ -74,11 +74,11 @@ public class Blowfish {
...
@@ -74,11 +74,11 @@ public class Blowfish {
// Internal routine for string encryption
// Internal routine for string encryption
private
String
encStr
(
String
sPlainText
,
private
String
encStr
(
String
sPlainText
,
long
lNewCBCIV
)
long
lNewCBCIV
)
{
{
// allocate the buffer (align to the next 8 byte border plus padding)
// allocate the buffer (align to the next 8 byte border plus padding)
int
nStrLen
=
sPlainText
.
length
();
int
nStrLen
=
sPlainText
.
length
();
byte
[]
buf
=
new
byte
[((
nStrLen
<<
1
)
&
0xfffffff8
)
+
8
];
byte
[]
buf
=
new
byte
[((
nStrLen
<<
1
)
&
0xfffffff8
)
+
8
];
// copy all bytes of the string into the buffer (use network byte order)
// copy all bytes of the string into the buffer (use network byte order)
int
nI
;
int
nI
;
...
@@ -87,11 +87,11 @@ public class Blowfish {
...
@@ -87,11 +87,11 @@ public class Blowfish {
{
{
char
cActChar
=
sPlainText
.
charAt
(
nI
);
char
cActChar
=
sPlainText
.
charAt
(
nI
);
buf
[
nPos
++]
=
(
byte
)
((
cActChar
>>
8
)
&
0x0ff
);
buf
[
nPos
++]
=
(
byte
)
((
cActChar
>>
8
)
&
0x0ff
);
buf
[
nPos
++]
=
(
byte
)
(
cActChar
&
0x0ff
)
;
buf
[
nPos
++]
=
(
byte
)
(
cActChar
&
0x0ff
);
}
}
// pad the rest with the PKCS5 scheme
// pad the rest with the PKCS5 scheme
byte
bPadVal
=
(
byte
)(
buf
.
length
-
(
nStrLen
<<
1
));
byte
bPadVal
=
(
byte
)
(
buf
.
length
-
(
nStrLen
<<
1
));
while
(
nPos
<
buf
.
length
)
while
(
nPos
<
buf
.
length
)
{
{
buf
[
nPos
++]
=
bPadVal
;
buf
[
nPos
++]
=
bPadVal
;
...
@@ -116,6 +116,7 @@ public class Blowfish {
...
@@ -116,6 +116,7 @@ public class Blowfish {
/**
/**
* decrypts a hexbin string (handling is case sensitive)
* decrypts a hexbin string (handling is case sensitive)
*
* @param sCipherText hexbin string to decrypt
* @param sCipherText hexbin string to decrypt
* @return decrypted string (null equals an error)
* @return decrypted string (null equals an error)
*/
*/
...
@@ -168,7 +169,7 @@ public class Blowfish {
...
@@ -168,7 +169,7 @@ public class Blowfish {
m_bfish
.
decrypt
(
buf
);
m_bfish
.
decrypt
(
buf
);
// get the last padding byte
// get the last padding byte
int
nPadByte
=
(
int
)
buf
[
buf
.
length
-
1
]
&
0x0ff
;
int
nPadByte
=
(
int
)
buf
[
buf
.
length
-
1
]
&
0x0ff
;
// ( try to get all information if the padding doesn't seem to be correct)
// ( try to get all information if the padding doesn't seem to be correct)
if
((
nPadByte
>
8
)
||
(
nPadByte
<
0
))
if
((
nPadByte
>
8
)
||
(
nPadByte
<
0
))
...
@@ -199,6 +200,7 @@ public class Blowfish {
...
@@ -199,6 +200,7 @@ public class Blowfish {
/**
/**
* implementation of the Blowfish encryption algorithm in ECB mode
* implementation of the Blowfish encryption algorithm in ECB mode
*
* @author Markus Hahn <markus_hahn@gmx.net>
* @author Markus Hahn <markus_hahn@gmx.net>
* @version Feburary 14, 2001
* @version Feburary 14, 2001
*/
*/
...
@@ -225,6 +227,7 @@ public class Blowfish {
...
@@ -225,6 +227,7 @@ public class Blowfish {
/**
/**
* default constructor
* default constructor
*
* @param bfkey key material, up to MAXKEYLENGTH bytes
* @param bfkey key material, up to MAXKEYLENGTH bytes
*/
*/
public
BlowfishECB
(
byte
[]
bfkey
)
public
BlowfishECB
(
byte
[]
bfkey
)
...
@@ -283,31 +286,31 @@ public class Blowfish {
...
@@ -283,31 +286,31 @@ public class Blowfish {
{
{
lZero
=
encryptBlock
(
lZero
);
lZero
=
encryptBlock
(
lZero
);
m_pbox
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_pbox
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_pbox
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
m_pbox
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
}
}
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
{
{
lZero
=
encryptBlock
(
lZero
);
lZero
=
encryptBlock
(
lZero
);
m_sbox1
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox1
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox1
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
m_sbox1
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
}
}
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
{
{
lZero
=
encryptBlock
(
lZero
);
lZero
=
encryptBlock
(
lZero
);
m_sbox2
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox2
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox2
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
m_sbox2
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
}
}
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
{
{
lZero
=
encryptBlock
(
lZero
);
lZero
=
encryptBlock
(
lZero
);
m_sbox3
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox3
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox3
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
m_sbox3
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
}
}
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
for
(
nI
=
0
;
nI
<
SBOX_ENTRIES
;
nI
+=
2
)
{
{
lZero
=
encryptBlock
(
lZero
);
lZero
=
encryptBlock
(
lZero
);
m_sbox4
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox4
[
nI
]
=
(
int
)
(
lZero
>>>
32
);
m_sbox4
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
m_sbox4
[
nI
+
1
]
=
(
int
)
(
lZero
&
0x0ffffffff
L
);
}
}
}
}
...
@@ -331,23 +334,34 @@ public class Blowfish {
...
@@ -331,23 +334,34 @@ public class Blowfish {
/**
/**
* selftest routine, to check e.g. for a valid class file transmission
* selftest routine, to check e.g. for a valid class file transmission
*
* @return true: selftest passed / false: selftest failed
* @return true: selftest passed / false: selftest failed
*/
*/
public
static
boolean
selfTest
()
public
static
boolean
selfTest
()
{
{
// test vector #1 (checking for the "signed bug")
// test vector #1 (checking for the "signed bug")
byte
[]
testKey1
=
{
(
byte
)
0x1c
,
(
byte
)
0x58
,
(
byte
)
0x7f
,
(
byte
)
0x1c
,
byte
[]
testKey1
=
{
(
byte
)
0x13
,
(
byte
)
0x92
,
(
byte
)
0x4f
,
(
byte
)
0xef
};
(
byte
)
0x1c
,
(
byte
)
0x58
,
(
byte
)
0x7f
,
(
byte
)
0x1c
,
int
[]
tv_p1
=
{
0x30553228
,
0x6d6f295a
};
(
byte
)
0x13
,
(
byte
)
0x92
,
(
byte
)
0x4f
,
(
byte
)
0xef
int
[]
tv_c1
=
{
0x55cb3774
,
0xd13ef201
};
};
int
[]
tv_p1
=
{
0x30553228
,
0x6d6f295a
};
int
[]
tv_c1
=
{
0x55cb3774
,
0xd13ef201
};
int
[]
tv_t1
=
new
int
[
2
];
int
[]
tv_t1
=
new
int
[
2
];
// test vector #2 (offical vector by Bruce Schneier)
// test vector #2 (offical vector by Bruce Schneier)
String
sTestKey2
=
"Who is John Galt?"
;
String
sTestKey2
=
"Who is John Galt?"
;
byte
[]
testKey2
=
sTestKey2
.
getBytes
();
byte
[]
testKey2
=
sTestKey2
.
getBytes
();
int
[]
tv_p2
=
{
0xfedcba98
,
0x76543210
};
int
[]
tv_p2
=
{
int
[]
tv_c2
=
{
0xcc91732b
,
0x8022f684
};
0xfedcba98
,
0x76543210
};
int
[]
tv_c2
=
{
0xcc91732b
,
0x8022f684
};
int
[]
tv_t2
=
new
int
[
2
];
int
[]
tv_t2
=
new
int
[
2
];
...
@@ -474,7 +488,7 @@ public class Blowfish {
...
@@ -474,7 +488,7 @@ public class Blowfish {
public
void
encrypt
(
byte
[]
inbuffer
,
byte
[]
outbuffer
)
{
public
void
encrypt
(
byte
[]
inbuffer
,
byte
[]
outbuffer
)
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
...
@@ -485,13 +499,14 @@ public class Blowfish {
...
@@ -485,13 +499,14 @@ public class Blowfish {
/**
/**
* encrypts a byte buffer (should be aligned to an 8 byte border) to itself
* encrypts a byte buffer (should be aligned to an 8 byte border) to itself
*
* @param buffer buffer to encrypt
* @param buffer buffer to encrypt
*/
*/
public
void
encrypt
(
byte
[]
buffer
)
public
void
encrypt
(
byte
[]
buffer
)
{
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
...
@@ -504,13 +519,14 @@ public class Blowfish {
...
@@ -504,13 +519,14 @@ public class Blowfish {
* encrypts an integer buffer (should be aligned to an
* encrypts an integer buffer (should be aligned to an
* two integer border) to another int buffer (of the
* two integer border) to another int buffer (of the
* same size or bigger)
* same size or bigger)
*
* @param inbuffer buffer with plaintext data
* @param inbuffer buffer with plaintext data
* @param outbuffer buffer to get the ciphertext data
* @param outbuffer buffer to get the ciphertext data
*/
*/
public
void
encrypt
(
int
[]
inbuffer
,
int
[]
outbuffer
)
{
public
void
encrypt
(
int
[]
inbuffer
,
int
[]
outbuffer
)
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
...
@@ -522,12 +538,13 @@ public class Blowfish {
...
@@ -522,12 +538,13 @@ public class Blowfish {
/**
/**
* encrypts an int buffer (should be aligned to a
* encrypts an int buffer (should be aligned to a
* two integer border)
* two integer border)
*
* @param buffer buffer to encrypt
* @param buffer buffer to encrypt
*/
*/
public
void
encrypt
(
int
[]
buffer
)
{
public
void
encrypt
(
int
[]
buffer
)
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
buffer
,
nI
);
lTemp
=
intArrayToLong
(
buffer
,
nI
);
...
@@ -538,6 +555,7 @@ public class Blowfish {
...
@@ -538,6 +555,7 @@ public class Blowfish {
/**
/**
* encrypts a long buffer to another long buffer (of the same size or bigger)
* encrypts a long buffer to another long buffer (of the same size or bigger)
*
* @param inbuffer buffer with plaintext data
* @param inbuffer buffer with plaintext data
* @param outbuffer buffer to get the ciphertext data
* @param outbuffer buffer to get the ciphertext data
*/
*/
...
@@ -551,6 +569,7 @@ public class Blowfish {
...
@@ -551,6 +569,7 @@ public class Blowfish {
/**
/**
* encrypts a long buffer to itself
* encrypts a long buffer to itself
*
* @param buffer buffer to encrypt
* @param buffer buffer to encrypt
*/
*/
public
void
encrypt
(
long
[]
buffer
)
{
public
void
encrypt
(
long
[]
buffer
)
{
...
@@ -564,15 +583,16 @@ public class Blowfish {
...
@@ -564,15 +583,16 @@ public class Blowfish {
/**
/**
* decrypts a byte buffer (should be aligned to an 8 byte border)
* decrypts a byte buffer (should be aligned to an 8 byte border)
* to another byte buffer (of the same size or bigger)
* to another byte buffer (of the same size or bigger)
*
* @param inbuffer buffer with ciphertext data
* @param inbuffer buffer with ciphertext data
* @param outbuffer buffer to get the plaintext data
* @param outbuffer buffer to get the plaintext data
*/
*/
public
void
decrypt
(
byte
[]
inbuffer
,
public
void
decrypt
(
byte
[]
inbuffer
,
byte
[]
outbuffer
)
byte
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// decrypt a temporary 64bit block
// decrypt a temporary 64bit block
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
...
@@ -583,13 +603,14 @@ public class Blowfish {
...
@@ -583,13 +603,14 @@ public class Blowfish {
/**
/**
* decrypts a byte buffer (should be aligned to an 8 byte border) to itself
* decrypts a byte buffer (should be aligned to an 8 byte border) to itself
*
* @param buffer buffer to decrypt
* @param buffer buffer to decrypt
*/
*/
public
void
decrypt
(
byte
[]
buffer
)
public
void
decrypt
(
byte
[]
buffer
)
{
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// decrypt over a temporary 64bit block
// decrypt over a temporary 64bit block
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
...
@@ -601,15 +622,16 @@ public class Blowfish {
...
@@ -601,15 +622,16 @@ public class Blowfish {
/**
/**
* decrypts an integer buffer (should be aligned to an
* decrypts an integer buffer (should be aligned to an
* two integer border) to another int buffer (of the same size or bigger)
* two integer border) to another int buffer (of the same size or bigger)
*
* @param inbuffer buffer with ciphertext data
* @param inbuffer buffer with ciphertext data
* @param outbuffer buffer to get the plaintext data
* @param outbuffer buffer to get the plaintext data
*/
*/
public
void
decrypt
(
int
[]
inbuffer
,
public
void
decrypt
(
int
[]
inbuffer
,
int
[]
outbuffer
)
int
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// decrypt a temporary 64bit block
// decrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
...
@@ -621,13 +643,14 @@ public class Blowfish {
...
@@ -621,13 +643,14 @@ public class Blowfish {
/**
/**
* decrypts an int buffer (should be aligned to an
* decrypts an int buffer (should be aligned to an
* two integer border)
* two integer border)
*
* @param buffer buffer to decrypt
* @param buffer buffer to decrypt
*/
*/
public
void
decrypt
(
int
[]
buffer
)
public
void
decrypt
(
int
[]
buffer
)
{
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// decrypt a temporary 64bit block
// decrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
buffer
,
nI
);
lTemp
=
intArrayToLong
(
buffer
,
nI
);
...
@@ -638,11 +661,12 @@ public class Blowfish {
...
@@ -638,11 +661,12 @@ public class Blowfish {
/**
/**
* decrypts a long buffer to another long buffer (of the same size or bigger)
* decrypts a long buffer to another long buffer (of the same size or bigger)
*
* @param inbuffer buffer with ciphertext data
* @param inbuffer buffer with ciphertext data
* @param outbuffer buffer to get the plaintext data
* @param outbuffer buffer to get the plaintext data
*/
*/
public
void
decrypt
(
long
[]
inbuffer
,
public
void
decrypt
(
long
[]
inbuffer
,
long
[]
outbuffer
)
long
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
++)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
++)
...
@@ -653,6 +677,7 @@ public class Blowfish {
...
@@ -653,6 +677,7 @@ public class Blowfish {
/**
/**
* decrypts a long buffer to itself
* decrypts a long buffer to itself
*
* @param buffer buffer to decrypt
* @param buffer buffer to decrypt
*/
*/
public
void
decrypt
(
long
[]
buffer
)
{
public
void
decrypt
(
long
[]
buffer
)
{
...
@@ -666,201 +691,206 @@ public class Blowfish {
...
@@ -666,201 +691,206 @@ public class Blowfish {
// the boxes init. data,
// the boxes init. data,
// FIXME: it might be better to create them at runtime to make the class
// FIXME: it might be better to create them at runtime to make the class
//
file smaller, e.g. by calculating the hexdigits of pi (default)
// file smaller, e.g. by calculating the hexdigits of pi (default)
//
or just a fixed random sequence (out of the standard)
// or just a fixed random sequence (out of the standard)
final
static
int
pbox_init
[]
=
{
final
static
int
pbox_init
[]
=
{
0x243f6a88
,
0x85a308d3
,
0x13198a2e
,
0x03707344
,
0xa4093822
,
0x299f31d0
,
0x243f6a88
,
0x85a308d3
,
0x13198a2e
,
0x03707344
,
0xa4093822
,
0x299f31d0
,
0x082efa98
,
0xec4e6c89
,
0x452821e6
,
0x38d01377
,
0xbe5466cf
,
0x34e90c6c
,
0x082efa98
,
0xec4e6c89
,
0x452821e6
,
0x38d01377
,
0xbe5466cf
,
0x34e90c6c
,
0xc0ac29b7
,
0xc97c50dd
,
0x3f84d5b5
,
0xb5470917
,
0x9216d5d9
,
0x8979fb1b
};
0xc0ac29b7
,
0xc97c50dd
,
0x3f84d5b5
,
0xb5470917
,
0x9216d5d9
,
0x8979fb1b
};
final
static
int
sbox_init_1
[]
=
{
final
static
int
sbox_init_1
[]
=
{
0xd1310ba6
,
0x98dfb5ac
,
0x2ffd72db
,
0xd01adfb7
,
0xb8e1afed
,
0x6a267e96
,
0xd1310ba6
,
0x98dfb5ac
,
0x2ffd72db
,
0xd01adfb7
,
0xb8e1afed
,
0x6a267e96
,
0xba7c9045
,
0xf12c7f99
,
0x24a19947
,
0xb3916cf7
,
0x0801f2e2
,
0x858efc16
,
0xba7c9045
,
0xf12c7f99
,
0x24a19947
,
0xb3916cf7
,
0x0801f2e2
,
0x858efc16
,
0x636920d8
,
0x71574e69
,
0xa458fea3
,
0xf4933d7e
,
0x0d95748f
,
0x728eb658
,
0x636920d8
,
0x71574e69
,
0xa458fea3
,
0xf4933d7e
,
0x0d95748f
,
0x728eb658
,
0x718bcd58
,
0x82154aee
,
0x7b54a41d
,
0xc25a59b5
,
0x9c30d539
,
0x2af26013
,
0x718bcd58
,
0x82154aee
,
0x7b54a41d
,
0xc25a59b5
,
0x9c30d539
,
0x2af26013
,
0xc5d1b023
,
0x286085f0
,
0xca417918
,
0xb8db38ef
,
0x8e79dcb0
,
0x603a180e
,
0xc5d1b023
,
0x286085f0
,
0xca417918
,
0xb8db38ef
,
0x8e79dcb0
,
0x603a180e
,
0x6c9e0e8b
,
0xb01e8a3e
,
0xd71577c1
,
0xbd314b27
,
0x78af2fda
,
0x55605c60
,
0x6c9e0e8b
,
0xb01e8a3e
,
0xd71577c1
,
0xbd314b27
,
0x78af2fda
,
0x55605c60
,
0xe65525f3
,
0xaa55ab94
,
0x57489862
,
0x63e81440
,
0x55ca396a
,
0x2aab10b6
,
0xe65525f3
,
0xaa55ab94
,
0x57489862
,
0x63e81440
,
0x55ca396a
,
0x2aab10b6
,
0xb4cc5c34
,
0x1141e8ce
,
0xa15486af
,
0x7c72e993
,
0xb3ee1411
,
0x636fbc2a
,
0xb4cc5c34
,
0x1141e8ce
,
0xa15486af
,
0x7c72e993
,
0xb3ee1411
,
0x636fbc2a
,
0x2ba9c55d
,
0x741831f6
,
0xce5c3e16
,
0x9b87931e
,
0xafd6ba33
,
0x6c24cf5c
,
0x2ba9c55d
,
0x741831f6
,
0xce5c3e16
,
0x9b87931e
,
0xafd6ba33
,
0x6c24cf5c
,
0x7a325381
,
0x28958677
,
0x3b8f4898
,
0x6b4bb9af
,
0xc4bfe81b
,
0x66282193
,
0x7a325381
,
0x28958677
,
0x3b8f4898
,
0x6b4bb9af
,
0xc4bfe81b
,
0x66282193
,
0x61d809cc
,
0xfb21a991
,
0x487cac60
,
0x5dec8032
,
0xef845d5d
,
0xe98575b1
,
0x61d809cc
,
0xfb21a991
,
0x487cac60
,
0x5dec8032
,
0xef845d5d
,
0xe98575b1
,
0xdc262302
,
0xeb651b88
,
0x23893e81
,
0xd396acc5
,
0x0f6d6ff3
,
0x83f44239
,
0xdc262302
,
0xeb651b88
,
0x23893e81
,
0xd396acc5
,
0x0f6d6ff3
,
0x83f44239
,
0x2e0b4482
,
0xa4842004
,
0x69c8f04a
,
0x9e1f9b5e
,
0x21c66842
,
0xf6e96c9a
,
0x2e0b4482
,
0xa4842004
,
0x69c8f04a
,
0x9e1f9b5e
,
0x21c66842
,
0xf6e96c9a
,
0x670c9c61
,
0xabd388f0
,
0x6a51a0d2
,
0xd8542f68
,
0x960fa728
,
0xab5133a3
,
0x670c9c61
,
0xabd388f0
,
0x6a51a0d2
,
0xd8542f68
,
0x960fa728
,
0xab5133a3
,
0x6eef0b6c
,
0x137a3be4
,
0xba3bf050
,
0x7efb2a98
,
0xa1f1651d
,
0x39af0176
,
0x6eef0b6c
,
0x137a3be4
,
0xba3bf050
,
0x7efb2a98
,
0xa1f1651d
,
0x39af0176
,
0x66ca593e
,
0x82430e88
,
0x8cee8619
,
0x456f9fb4
,
0x7d84a5c3
,
0x3b8b5ebe
,
0x66ca593e
,
0x82430e88
,
0x8cee8619
,
0x456f9fb4
,
0x7d84a5c3
,
0x3b8b5ebe
,
0xe06f75d8
,
0x85c12073
,
0x401a449f
,
0x56c16aa6
,
0x4ed3aa62
,
0x363f7706
,
0xe06f75d8
,
0x85c12073
,
0x401a449f
,
0x56c16aa6
,
0x4ed3aa62
,
0x363f7706
,
0x1bfedf72
,
0x429b023d
,
0x37d0d724
,
0xd00a1248
,
0xdb0fead3
,
0x49f1c09b
,
0x1bfedf72
,
0x429b023d
,
0x37d0d724
,
0xd00a1248
,
0xdb0fead3
,
0x49f1c09b
,
0x075372c9
,
0x80991b7b
,
0x25d479d8
,
0xf6e8def7
,
0xe3fe501a
,
0xb6794c3b
,
0x075372c9
,
0x80991b7b
,
0x25d479d8
,
0xf6e8def7
,
0xe3fe501a
,
0xb6794c3b
,
0x976ce0bd
,
0x04c006ba
,
0xc1a94fb6
,
0x409f60c4
,
0x5e5c9ec2
,
0x196a2463
,
0x976ce0bd
,
0x04c006ba
,
0xc1a94fb6
,
0x409f60c4
,
0x5e5c9ec2
,
0x196a2463
,
0x68fb6faf
,
0x3e6c53b5
,
0x1339b2eb
,
0x3b52ec6f
,
0x6dfc511f
,
0x9b30952c
,
0x68fb6faf
,
0x3e6c53b5
,
0x1339b2eb
,
0x3b52ec6f
,
0x6dfc511f
,
0x9b30952c
,
0xcc814544
,
0xaf5ebd09
,
0xbee3d004
,
0xde334afd
,
0x660f2807
,
0x192e4bb3
,
0xcc814544
,
0xaf5ebd09
,
0xbee3d004
,
0xde334afd
,
0x660f2807
,
0x192e4bb3
,
0xc0cba857
,
0x45c8740f
,
0xd20b5f39
,
0xb9d3fbdb
,
0x5579c0bd
,
0x1a60320a
,
0xc0cba857
,
0x45c8740f
,
0xd20b5f39
,
0xb9d3fbdb
,
0x5579c0bd
,
0x1a60320a
,
0xd6a100c6
,
0x402c7279
,
0x679f25fe
,
0xfb1fa3cc
,
0x8ea5e9f8
,
0xdb3222f8
,
0xd6a100c6
,
0x402c7279
,
0x679f25fe
,
0xfb1fa3cc
,
0x8ea5e9f8
,
0xdb3222f8
,
0x3c7516df
,
0xfd616b15
,
0x2f501ec8
,
0xad0552ab
,
0x323db5fa
,
0xfd238760
,
0x3c7516df
,
0xfd616b15
,
0x2f501ec8
,
0xad0552ab
,
0x323db5fa
,
0xfd238760
,
0x53317b48
,
0x3e00df82
,
0x9e5c57bb
,
0xca6f8ca0
,
0x1a87562e
,
0xdf1769db
,
0x53317b48
,
0x3e00df82
,
0x9e5c57bb
,
0xca6f8ca0
,
0x1a87562e
,
0xdf1769db
,
0xd542a8f6
,
0x287effc3
,
0xac6732c6
,
0x8c4f5573
,
0x695b27b0
,
0xbbca58c8
,
0xd542a8f6
,
0x287effc3
,
0xac6732c6
,
0x8c4f5573
,
0x695b27b0
,
0xbbca58c8
,
0xe1ffa35d
,
0xb8f011a0
,
0x10fa3d98
,
0xfd2183b8
,
0x4afcb56c
,
0x2dd1d35b
,
0xe1ffa35d
,
0xb8f011a0
,
0x10fa3d98
,
0xfd2183b8
,
0x4afcb56c
,
0x2dd1d35b
,
0x9a53e479
,
0xb6f84565
,
0xd28e49bc
,
0x4bfb9790
,
0xe1ddf2da
,
0xa4cb7e33
,
0x9a53e479
,
0xb6f84565
,
0xd28e49bc
,
0x4bfb9790
,
0xe1ddf2da
,
0xa4cb7e33
,
0x62fb1341
,
0xcee4c6e8
,
0xef20cada
,
0x36774c01
,
0xd07e9efe
,
0x2bf11fb4
,
0x62fb1341
,
0xcee4c6e8
,
0xef20cada
,
0x36774c01
,
0xd07e9efe
,
0x2bf11fb4
,
0x95dbda4d
,
0xae909198
,
0xeaad8e71
,
0x6b93d5a0
,
0xd08ed1d0
,
0xafc725e0
,
0x95dbda4d
,
0xae909198
,
0xeaad8e71
,
0x6b93d5a0
,
0xd08ed1d0
,
0xafc725e0
,
0x8e3c5b2f
,
0x8e7594b7
,
0x8ff6e2fb
,
0xf2122b64
,
0x8888b812
,
0x900df01c
,
0x8e3c5b2f
,
0x8e7594b7
,
0x8ff6e2fb
,
0xf2122b64
,
0x8888b812
,
0x900df01c
,
0x4fad5ea0
,
0x688fc31c
,
0xd1cff191
,
0xb3a8c1ad
,
0x2f2f2218
,
0xbe0e1777
,
0x4fad5ea0
,
0x688fc31c
,
0xd1cff191
,
0xb3a8c1ad
,
0x2f2f2218
,
0xbe0e1777
,
0xea752dfe
,
0x8b021fa1
,
0xe5a0cc0f
,
0xb56f74e8
,
0x18acf3d6
,
0xce89e299
,
0xea752dfe
,
0x8b021fa1
,
0xe5a0cc0f
,
0xb56f74e8
,
0x18acf3d6
,
0xce89e299
,
0xb4a84fe0
,
0xfd13e0b7
,
0x7cc43b81
,
0xd2ada8d9
,
0x165fa266
,
0x80957705
,
0xb4a84fe0
,
0xfd13e0b7
,
0x7cc43b81
,
0xd2ada8d9
,
0x165fa266
,
0x80957705
,
0x93cc7314
,
0x211a1477
,
0xe6ad2065
,
0x77b5fa86
,
0xc75442f5
,
0xfb9d35cf
,
0x93cc7314
,
0x211a1477
,
0xe6ad2065
,
0x77b5fa86
,
0xc75442f5
,
0xfb9d35cf
,
0xebcdaf0c
,
0x7b3e89a0
,
0xd6411bd3
,
0xae1e7e49
,
0x00250e2d
,
0x2071b35e
,
0xebcdaf0c
,
0x7b3e89a0
,
0xd6411bd3
,
0xae1e7e49
,
0x00250e2d
,
0x2071b35e
,
0x226800bb
,
0x57b8e0af
,
0x2464369b
,
0xf009b91e
,
0x5563911d
,
0x59dfa6aa
,
0x226800bb
,
0x57b8e0af
,
0x2464369b
,
0xf009b91e
,
0x5563911d
,
0x59dfa6aa
,
0x78c14389
,
0xd95a537f
,
0x207d5ba2
,
0x02e5b9c5
,
0x83260376
,
0x6295cfa9
,
0x78c14389
,
0xd95a537f
,
0x207d5ba2
,
0x02e5b9c5
,
0x83260376
,
0x6295cfa9
,
0x11c81968
,
0x4e734a41
,
0xb3472dca
,
0x7b14a94a
,
0x1b510052
,
0x9a532915
,
0x11c81968
,
0x4e734a41
,
0xb3472dca
,
0x7b14a94a
,
0x1b510052
,
0x9a532915
,
0xd60f573f
,
0xbc9bc6e4
,
0x2b60a476
,
0x81e67400
,
0x08ba6fb5
,
0x571be91f
,
0xd60f573f
,
0xbc9bc6e4
,
0x2b60a476
,
0x81e67400
,
0x08ba6fb5
,
0x571be91f
,
0xf296ec6b
,
0x2a0dd915
,
0xb6636521
,
0xe7b9f9b6
,
0xff34052e
,
0xc5855664
,
0xf296ec6b
,
0x2a0dd915
,
0xb6636521
,
0xe7b9f9b6
,
0xff34052e
,
0xc5855664
,
0x53b02d5d
,
0xa99f8fa1
,
0x08ba4799
,
0x6e85076a
};
0x53b02d5d
,
0xa99f8fa1
,
0x08ba4799
,
0x6e85076a
};
final
static
int
sbox_init_2
[]
=
{
final
static
int
sbox_init_2
[]
=
{
0x4b7a70e9
,
0xb5b32944
,
0x4b7a70e9
,
0xb5b32944
,
0xdb75092e
,
0xc4192623
,
0xad6ea6b0
,
0x49a7df7d
,
0x9cee60b8
,
0x8fedb266
,
0xdb75092e
,
0xc4192623
,
0xad6ea6b0
,
0x49a7df7d
,
0x9cee60b8
,
0x8fedb266
,
0xecaa8c71
,
0x699a17ff
,
0x5664526c
,
0xc2b19ee1
,
0x193602a5
,
0x75094c29
,
0xecaa8c71
,
0x699a17ff
,
0x5664526c
,
0xc2b19ee1
,
0x193602a5
,
0x75094c29
,
0xa0591340
,
0xe4183a3e
,
0x3f54989a
,
0x5b429d65
,
0x6b8fe4d6
,
0x99f73fd6
,
0xa0591340
,
0xe4183a3e
,
0x3f54989a
,
0x5b429d65
,
0x6b8fe4d6
,
0x99f73fd6
,
0xa1d29c07
,
0xefe830f5
,
0x4d2d38e6
,
0xf0255dc1
,
0x4cdd2086
,
0x8470eb26
,
0xa1d29c07
,
0xefe830f5
,
0x4d2d38e6
,
0xf0255dc1
,
0x4cdd2086
,
0x8470eb26
,
0x6382e9c6
,
0x021ecc5e
,
0x09686b3f
,
0x3ebaefc9
,
0x3c971814
,
0x6b6a70a1
,
0x6382e9c6
,
0x021ecc5e
,
0x09686b3f
,
0x3ebaefc9
,
0x3c971814
,
0x6b6a70a1
,
0x687f3584
,
0x52a0e286
,
0xb79c5305
,
0xaa500737
,
0x3e07841c
,
0x7fdeae5c
,
0x687f3584
,
0x52a0e286
,
0xb79c5305
,
0xaa500737
,
0x3e07841c
,
0x7fdeae5c
,
0x8e7d44ec
,
0x5716f2b8
,
0xb03ada37
,
0xf0500c0d
,
0xf01c1f04
,
0x0200b3ff
,
0x8e7d44ec
,
0x5716f2b8
,
0xb03ada37
,
0xf0500c0d
,
0xf01c1f04
,
0x0200b3ff
,
0xae0cf51a
,
0x3cb574b2
,
0x25837a58
,
0xdc0921bd
,
0xd19113f9
,
0x7ca92ff6
,
0xae0cf51a
,
0x3cb574b2
,
0x25837a58
,
0xdc0921bd
,
0xd19113f9
,
0x7ca92ff6
,
0x94324773
,
0x22f54701
,
0x3ae5e581
,
0x37c2dadc
,
0xc8b57634
,
0x9af3dda7
,
0x94324773
,
0x22f54701
,
0x3ae5e581
,
0x37c2dadc
,
0xc8b57634
,
0x9af3dda7
,
0xa9446146
,
0x0fd0030e
,
0xecc8c73e
,
0xa4751e41
,
0xe238cd99
,
0x3bea0e2f
,
0xa9446146
,
0x0fd0030e
,
0xecc8c73e
,
0xa4751e41
,
0xe238cd99
,
0x3bea0e2f
,
0x3280bba1
,
0x183eb331
,
0x4e548b38
,
0x4f6db908
,
0x6f420d03
,
0xf60a04bf
,
0x3280bba1
,
0x183eb331
,
0x4e548b38
,
0x4f6db908
,
0x6f420d03
,
0xf60a04bf
,
0x2cb81290
,
0x24977c79
,
0x5679b072
,
0xbcaf89af
,
0xde9a771f
,
0xd9930810
,
0x2cb81290
,
0x24977c79
,
0x5679b072
,
0xbcaf89af
,
0xde9a771f
,
0xd9930810
,
0xb38bae12
,
0xdccf3f2e
,
0x5512721f
,
0x2e6b7124
,
0x501adde6
,
0x9f84cd87
,
0xb38bae12
,
0xdccf3f2e
,
0x5512721f
,
0x2e6b7124
,
0x501adde6
,
0x9f84cd87
,
0x7a584718
,
0x7408da17
,
0xbc9f9abc
,
0xe94b7d8c
,
0xec7aec3a
,
0xdb851dfa
,
0x7a584718
,
0x7408da17
,
0xbc9f9abc
,
0xe94b7d8c
,
0xec7aec3a
,
0xdb851dfa
,
0x63094366
,
0xc464c3d2
,
0xef1c1847
,
0x3215d908
,
0xdd433b37
,
0x24c2ba16
,
0x63094366
,
0xc464c3d2
,
0xef1c1847
,
0x3215d908
,
0xdd433b37
,
0x24c2ba16
,
0x12a14d43
,
0x2a65c451
,
0x50940002
,
0x133ae4dd
,
0x71dff89e
,
0x10314e55
,
0x12a14d43
,
0x2a65c451
,
0x50940002
,
0x133ae4dd
,
0x71dff89e
,
0x10314e55
,
0x81ac77d6
,
0x5f11199b
,
0x043556f1
,
0xd7a3c76b
,
0x3c11183b
,
0x5924a509
,
0x81ac77d6
,
0x5f11199b
,
0x043556f1
,
0xd7a3c76b
,
0x3c11183b
,
0x5924a509
,
0xf28fe6ed
,
0x97f1fbfa
,
0x9ebabf2c
,
0x1e153c6e
,
0x86e34570
,
0xeae96fb1
,
0xf28fe6ed
,
0x97f1fbfa
,
0x9ebabf2c
,
0x1e153c6e
,
0x86e34570
,
0xeae96fb1
,
0x860e5e0a
,
0x5a3e2ab3
,
0x771fe71c
,
0x4e3d06fa
,
0x2965dcb9
,
0x99e71d0f
,
0x860e5e0a
,
0x5a3e2ab3
,
0x771fe71c
,
0x4e3d06fa
,
0x2965dcb9
,
0x99e71d0f
,
0x803e89d6
,
0x5266c825
,
0x2e4cc978
,
0x9c10b36a
,
0xc6150eba
,
0x94e2ea78
,
0x803e89d6
,
0x5266c825
,
0x2e4cc978
,
0x9c10b36a
,
0xc6150eba
,
0x94e2ea78
,
0xa5fc3c53
,
0x1e0a2df4
,
0xf2f74ea7
,
0x361d2b3d
,
0x1939260f
,
0x19c27960
,
0xa5fc3c53
,
0x1e0a2df4
,
0xf2f74ea7
,
0x361d2b3d
,
0x1939260f
,
0x19c27960
,
0x5223a708
,
0xf71312b6
,
0xebadfe6e
,
0xeac31f66
,
0xe3bc4595
,
0xa67bc883
,
0x5223a708
,
0xf71312b6
,
0xebadfe6e
,
0xeac31f66
,
0xe3bc4595
,
0xa67bc883
,
0xb17f37d1
,
0x018cff28
,
0xc332ddef
,
0xbe6c5aa5
,
0x65582185
,
0x68ab9802
,
0xb17f37d1
,
0x018cff28
,
0xc332ddef
,
0xbe6c5aa5
,
0x65582185
,
0x68ab9802
,
0xeecea50f
,
0xdb2f953b
,
0x2aef7dad
,
0x5b6e2f84
,
0x1521b628
,
0x29076170
,
0xeecea50f
,
0xdb2f953b
,
0x2aef7dad
,
0x5b6e2f84
,
0x1521b628
,
0x29076170
,
0xecdd4775
,
0x619f1510
,
0x13cca830
,
0xeb61bd96
,
0x0334fe1e
,
0xaa0363cf
,
0xecdd4775
,
0x619f1510
,
0x13cca830
,
0xeb61bd96
,
0x0334fe1e
,
0xaa0363cf
,
0xb5735c90
,
0x4c70a239
,
0xd59e9e0b
,
0xcbaade14
,
0xeecc86bc
,
0x60622ca7
,
0xb5735c90
,
0x4c70a239
,
0xd59e9e0b
,
0xcbaade14
,
0xeecc86bc
,
0x60622ca7
,
0x9cab5cab
,
0xb2f3846e
,
0x648b1eaf
,
0x19bdf0ca
,
0xa02369b9
,
0x655abb50
,
0x9cab5cab
,
0xb2f3846e
,
0x648b1eaf
,
0x19bdf0ca
,
0xa02369b9
,
0x655abb50
,
0x40685a32
,
0x3c2ab4b3
,
0x319ee9d5
,
0xc021b8f7
,
0x9b540b19
,
0x875fa099
,
0x40685a32
,
0x3c2ab4b3
,
0x319ee9d5
,
0xc021b8f7
,
0x9b540b19
,
0x875fa099
,
0x95f7997e
,
0x623d7da8
,
0xf837889a
,
0x97e32d77
,
0x11ed935f
,
0x16681281
,
0x95f7997e
,
0x623d7da8
,
0xf837889a
,
0x97e32d77
,
0x11ed935f
,
0x16681281
,
0x0e358829
,
0xc7e61fd6
,
0x96dedfa1
,
0x7858ba99
,
0x57f584a5
,
0x1b227263
,
0x0e358829
,
0xc7e61fd6
,
0x96dedfa1
,
0x7858ba99
,
0x57f584a5
,
0x1b227263
,
0x9b83c3ff
,
0x1ac24696
,
0xcdb30aeb
,
0x532e3054
,
0x8fd948e4
,
0x6dbc3128
,
0x9b83c3ff
,
0x1ac24696
,
0xcdb30aeb
,
0x532e3054
,
0x8fd948e4
,
0x6dbc3128
,
0x58ebf2ef
,
0x34c6ffea
,
0xfe28ed61
,
0xee7c3c73
,
0x5d4a14d9
,
0xe864b7e3
,
0x58ebf2ef
,
0x34c6ffea
,
0xfe28ed61
,
0xee7c3c73
,
0x5d4a14d9
,
0xe864b7e3
,
0x42105d14
,
0x203e13e0
,
0x45eee2b6
,
0xa3aaabea
,
0xdb6c4f15
,
0xfacb4fd0
,
0x42105d14
,
0x203e13e0
,
0x45eee2b6
,
0xa3aaabea
,
0xdb6c4f15
,
0xfacb4fd0
,
0xc742f442
,
0xef6abbb5
,
0x654f3b1d
,
0x41cd2105
,
0xd81e799e
,
0x86854dc7
,
0xc742f442
,
0xef6abbb5
,
0x654f3b1d
,
0x41cd2105
,
0xd81e799e
,
0x86854dc7
,
0xe44b476a
,
0x3d816250
,
0xcf62a1f2
,
0x5b8d2646
,
0xfc8883a0
,
0xc1c7b6a3
,
0xe44b476a
,
0x3d816250
,
0xcf62a1f2
,
0x5b8d2646
,
0xfc8883a0
,
0xc1c7b6a3
,
0x7f1524c3
,
0x69cb7492
,
0x47848a0b
,
0x5692b285
,
0x095bbf00
,
0xad19489d
,
0x7f1524c3
,
0x69cb7492
,
0x47848a0b
,
0x5692b285
,
0x095bbf00
,
0xad19489d
,
0x1462b174
,
0x23820e00
,
0x58428d2a
,
0x0c55f5ea
,
0x1dadf43e
,
0x233f7061
,
0x1462b174
,
0x23820e00
,
0x58428d2a
,
0x0c55f5ea
,
0x1dadf43e
,
0x233f7061
,
0x3372f092
,
0x8d937e41
,
0xd65fecf1
,
0x6c223bdb
,
0x7cde3759
,
0xcbee7460
,
0x3372f092
,
0x8d937e41
,
0xd65fecf1
,
0x6c223bdb
,
0x7cde3759
,
0xcbee7460
,
0x4085f2a7
,
0xce77326e
,
0xa6078084
,
0x19f8509e
,
0xe8efd855
,
0x61d99735
,
0x4085f2a7
,
0xce77326e
,
0xa6078084
,
0x19f8509e
,
0xe8efd855
,
0x61d99735
,
0xa969a7aa
,
0xc50c06c2
,
0x5a04abfc
,
0x800bcadc
,
0x9e447a2e
,
0xc3453484
,
0xa969a7aa
,
0xc50c06c2
,
0x5a04abfc
,
0x800bcadc
,
0x9e447a2e
,
0xc3453484
,
0xfdd56705
,
0x0e1e9ec9
,
0xdb73dbd3
,
0x105588cd
,
0x675fda79
,
0xe3674340
,
0xfdd56705
,
0x0e1e9ec9
,
0xdb73dbd3
,
0x105588cd
,
0x675fda79
,
0xe3674340
,
0xc5c43465
,
0x713e38d8
,
0x3d28f89e
,
0xf16dff20
,
0x153e21e7
,
0x8fb03d4a
,
0xc5c43465
,
0x713e38d8
,
0x3d28f89e
,
0xf16dff20
,
0x153e21e7
,
0x8fb03d4a
,
0xe6e39f2b
,
0xdb83adf7
};
0xe6e39f2b
,
0xdb83adf7
};
final
static
int
sbox_init_3
[]
=
{
final
static
int
sbox_init_3
[]
=
{
0xe93d5a68
,
0x948140f7
,
0xf64c261c
,
0x94692934
,
0xe93d5a68
,
0x948140f7
,
0xf64c261c
,
0x94692934
,
0x411520f7
,
0x7602d4f7
,
0xbcf46b2e
,
0xd4a20068
,
0xd4082471
,
0x3320f46a
,
0x411520f7
,
0x7602d4f7
,
0xbcf46b2e
,
0xd4a20068
,
0xd4082471
,
0x3320f46a
,
0x43b7d4b7
,
0x500061af
,
0x1e39f62e
,
0x97244546
,
0x14214f74
,
0xbf8b8840
,
0x43b7d4b7
,
0x500061af
,
0x1e39f62e
,
0x97244546
,
0x14214f74
,
0xbf8b8840
,
0x4d95fc1d
,
0x96b591af
,
0x70f4ddd3
,
0x66a02f45
,
0xbfbc09ec
,
0x03bd9785
,
0x4d95fc1d
,
0x96b591af
,
0x70f4ddd3
,
0x66a02f45
,
0xbfbc09ec
,
0x03bd9785
,
0x7fac6dd0
,
0x31cb8504
,
0x96eb27b3
,
0x55fd3941
,
0xda2547e6
,
0xabca0a9a
,
0x7fac6dd0
,
0x31cb8504
,
0x96eb27b3
,
0x55fd3941
,
0xda2547e6
,
0xabca0a9a
,
0x28507825
,
0x530429f4
,
0x0a2c86da
,
0xe9b66dfb
,
0x68dc1462
,
0xd7486900
,
0x28507825
,
0x530429f4
,
0x0a2c86da
,
0xe9b66dfb
,
0x68dc1462
,
0xd7486900
,
0x680ec0a4
,
0x27a18dee
,
0x4f3ffea2
,
0xe887ad8c
,
0xb58ce006
,
0x7af4d6b6
,
0x680ec0a4
,
0x27a18dee
,
0x4f3ffea2
,
0xe887ad8c
,
0xb58ce006
,
0x7af4d6b6
,
0xaace1e7c
,
0xd3375fec
,
0xce78a399
,
0x406b2a42
,
0x20fe9e35
,
0xd9f385b9
,
0xaace1e7c
,
0xd3375fec
,
0xce78a399
,
0x406b2a42
,
0x20fe9e35
,
0xd9f385b9
,
0xee39d7ab
,
0x3b124e8b
,
0x1dc9faf7
,
0x4b6d1856
,
0x26a36631
,
0xeae397b2
,
0xee39d7ab
,
0x3b124e8b
,
0x1dc9faf7
,
0x4b6d1856
,
0x26a36631
,
0xeae397b2
,
0x3a6efa74
,
0xdd5b4332
,
0x6841e7f7
,
0xca7820fb
,
0xfb0af54e
,
0xd8feb397
,
0x3a6efa74
,
0xdd5b4332
,
0x6841e7f7
,
0xca7820fb
,
0xfb0af54e
,
0xd8feb397
,
0x454056ac
,
0xba489527
,
0x55533a3a
,
0x20838d87
,
0xfe6ba9b7
,
0xd096954b
,
0x454056ac
,
0xba489527
,
0x55533a3a
,
0x20838d87
,
0xfe6ba9b7
,
0xd096954b
,
0x55a867bc
,
0xa1159a58
,
0xcca92963
,
0x99e1db33
,
0xa62a4a56
,
0x3f3125f9
,
0x55a867bc
,
0xa1159a58
,
0xcca92963
,
0x99e1db33
,
0xa62a4a56
,
0x3f3125f9
,
0x5ef47e1c
,
0x9029317c
,
0xfdf8e802
,
0x04272f70
,
0x80bb155c
,
0x05282ce3
,
0x5ef47e1c
,
0x9029317c
,
0xfdf8e802
,
0x04272f70
,
0x80bb155c
,
0x05282ce3
,
0x95c11548
,
0xe4c66d22
,
0x48c1133f
,
0xc70f86dc
,
0x07f9c9ee
,
0x41041f0f
,
0x95c11548
,
0xe4c66d22
,
0x48c1133f
,
0xc70f86dc
,
0x07f9c9ee
,
0x41041f0f
,
0x404779a4
,
0x5d886e17
,
0x325f51eb
,
0xd59bc0d1
,
0xf2bcc18f
,
0x41113564
,
0x404779a4
,
0x5d886e17
,
0x325f51eb
,
0xd59bc0d1
,
0xf2bcc18f
,
0x41113564
,
0x257b7834
,
0x602a9c60
,
0xdff8e8a3
,
0x1f636c1b
,
0x0e12b4c2
,
0x02e1329e
,
0x257b7834
,
0x602a9c60
,
0xdff8e8a3
,
0x1f636c1b
,
0x0e12b4c2
,
0x02e1329e
,
0xaf664fd1
,
0xcad18115
,
0x6b2395e0
,
0x333e92e1
,
0x3b240b62
,
0xeebeb922
,
0xaf664fd1
,
0xcad18115
,
0x6b2395e0
,
0x333e92e1
,
0x3b240b62
,
0xeebeb922
,
0x85b2a20e
,
0xe6ba0d99
,
0xde720c8c
,
0x2da2f728
,
0xd0127845
,
0x95b794fd
,
0x85b2a20e
,
0xe6ba0d99
,
0xde720c8c
,
0x2da2f728
,
0xd0127845
,
0x95b794fd
,
0x647d0862
,
0xe7ccf5f0
,
0x5449a36f
,
0x877d48fa
,
0xc39dfd27
,
0xf33e8d1e
,
0x647d0862
,
0xe7ccf5f0
,
0x5449a36f
,
0x877d48fa
,
0xc39dfd27
,
0xf33e8d1e
,
0x0a476341
,
0x992eff74
,
0x3a6f6eab
,
0xf4f8fd37
,
0xa812dc60
,
0xa1ebddf8
,
0x0a476341
,
0x992eff74
,
0x3a6f6eab
,
0xf4f8fd37
,
0xa812dc60
,
0xa1ebddf8
,
0x991be14c
,
0xdb6e6b0d
,
0xc67b5510
,
0x6d672c37
,
0x2765d43b
,
0xdcd0e804
,
0x991be14c
,
0xdb6e6b0d
,
0xc67b5510
,
0x6d672c37
,
0x2765d43b
,
0xdcd0e804
,
0xf1290dc7
,
0xcc00ffa3
,
0xb5390f92
,
0x690fed0b
,
0x667b9ffb
,
0xcedb7d9c
,
0xf1290dc7
,
0xcc00ffa3
,
0xb5390f92
,
0x690fed0b
,
0x667b9ffb
,
0xcedb7d9c
,
0xa091cf0b
,
0xd9155ea3
,
0xbb132f88
,
0x515bad24
,
0x7b9479bf
,
0x763bd6eb
,
0xa091cf0b
,
0xd9155ea3
,
0xbb132f88
,
0x515bad24
,
0x7b9479bf
,
0x763bd6eb
,
0x37392eb3
,
0xcc115979
,
0x8026e297
,
0xf42e312d
,
0x6842ada7
,
0xc66a2b3b
,
0x37392eb3
,
0xcc115979
,
0x8026e297
,
0xf42e312d
,
0x6842ada7
,
0xc66a2b3b
,
0x12754ccc
,
0x782ef11c
,
0x6a124237
,
0xb79251e7
,
0x06a1bbe6
,
0x4bfb6350
,
0x12754ccc
,
0x782ef11c
,
0x6a124237
,
0xb79251e7
,
0x06a1bbe6
,
0x4bfb6350
,
0x1a6b1018
,
0x11caedfa
,
0x3d25bdd8
,
0xe2e1c3c9
,
0x44421659
,
0x0a121386
,
0x1a6b1018
,
0x11caedfa
,
0x3d25bdd8
,
0xe2e1c3c9
,
0x44421659
,
0x0a121386
,
0xd90cec6e
,
0xd5abea2a
,
0x64af674e
,
0xda86a85f
,
0xbebfe988
,
0x64e4c3fe
,
0xd90cec6e
,
0xd5abea2a
,
0x64af674e
,
0xda86a85f
,
0xbebfe988
,
0x64e4c3fe
,
0x9dbc8057
,
0xf0f7c086
,
0x60787bf8
,
0x6003604d
,
0xd1fd8346
,
0xf6381fb0
,
0x9dbc8057
,
0xf0f7c086
,
0x60787bf8
,
0x6003604d
,
0xd1fd8346
,
0xf6381fb0
,
0x7745ae04
,
0xd736fccc
,
0x83426b33
,
0xf01eab71
,
0xb0804187
,
0x3c005e5f
,
0x7745ae04
,
0xd736fccc
,
0x83426b33
,
0xf01eab71
,
0xb0804187
,
0x3c005e5f
,
0x77a057be
,
0xbde8ae24
,
0x55464299
,
0xbf582e61
,
0x4e58f48f
,
0xf2ddfda2
,
0x77a057be
,
0xbde8ae24
,
0x55464299
,
0xbf582e61
,
0x4e58f48f
,
0xf2ddfda2
,
0xf474ef38
,
0x8789bdc2
,
0x5366f9c3
,
0xc8b38e74
,
0xb475f255
,
0x46fcd9b9
,
0xf474ef38
,
0x8789bdc2
,
0x5366f9c3
,
0xc8b38e74
,
0xb475f255
,
0x46fcd9b9
,
0x7aeb2661
,
0x8b1ddf84
,
0x846a0e79
,
0x915f95e2
,
0x466e598e
,
0x20b45770
,
0x7aeb2661
,
0x8b1ddf84
,
0x846a0e79
,
0x915f95e2
,
0x466e598e
,
0x20b45770
,
0x8cd55591
,
0xc902de4c
,
0xb90bace1
,
0xbb8205d0
,
0x11a86248
,
0x7574a99e
,
0x8cd55591
,
0xc902de4c
,
0xb90bace1
,
0xbb8205d0
,
0x11a86248
,
0x7574a99e
,
0xb77f19b6
,
0xe0a9dc09
,
0x662d09a1
,
0xc4324633
,
0xe85a1f02
,
0x09f0be8c
,
0xb77f19b6
,
0xe0a9dc09
,
0x662d09a1
,
0xc4324633
,
0xe85a1f02
,
0x09f0be8c
,
0x4a99a025
,
0x1d6efe10
,
0x1ab93d1d
,
0x0ba5a4df
,
0xa186f20f
,
0x2868f169
,
0x4a99a025
,
0x1d6efe10
,
0x1ab93d1d
,
0x0ba5a4df
,
0xa186f20f
,
0x2868f169
,
0xdcb7da83
,
0x573906fe
,
0xa1e2ce9b
,
0x4fcd7f52
,
0x50115e01
,
0xa70683fa
,
0xdcb7da83
,
0x573906fe
,
0xa1e2ce9b
,
0x4fcd7f52
,
0x50115e01
,
0xa70683fa
,
0xa002b5c4
,
0x0de6d027
,
0x9af88c27
,
0x773f8641
,
0xc3604c06
,
0x61a806b5
,
0xa002b5c4
,
0x0de6d027
,
0x9af88c27
,
0x773f8641
,
0xc3604c06
,
0x61a806b5
,
0xf0177a28
,
0xc0f586e0
,
0x006058aa
,
0x30dc7d62
,
0x11e69ed7
,
0x2338ea63
,
0xf0177a28
,
0xc0f586e0
,
0x006058aa
,
0x30dc7d62
,
0x11e69ed7
,
0x2338ea63
,
0x53c2dd94
,
0xc2c21634
,
0xbbcbee56
,
0x90bcb6de
,
0xebfc7da1
,
0xce591d76
,
0x53c2dd94
,
0xc2c21634
,
0xbbcbee56
,
0x90bcb6de
,
0xebfc7da1
,
0xce591d76
,
0x6f05e409
,
0x4b7c0188
,
0x39720a3d
,
0x7c927c24
,
0x86e3725f
,
0x724d9db9
,
0x6f05e409
,
0x4b7c0188
,
0x39720a3d
,
0x7c927c24
,
0x86e3725f
,
0x724d9db9
,
0x1ac15bb4
,
0xd39eb8fc
,
0xed545578
,
0x08fca5b5
,
0xd83d7cd3
,
0x4dad0fc4
,
0x1ac15bb4
,
0xd39eb8fc
,
0xed545578
,
0x08fca5b5
,
0xd83d7cd3
,
0x4dad0fc4
,
0x1e50ef5e
,
0xb161e6f8
,
0xa28514d9
,
0x6c51133c
,
0x6fd5c7e7
,
0x56e14ec4
,
0x1e50ef5e
,
0xb161e6f8
,
0xa28514d9
,
0x6c51133c
,
0x6fd5c7e7
,
0x56e14ec4
,
0x362abfce
,
0xddc6c837
,
0xd79a3234
,
0x92638212
,
0x670efa8e
,
0x406000e0
};
0x362abfce
,
0xddc6c837
,
0xd79a3234
,
0x92638212
,
0x670efa8e
,
0x406000e0
};
final
static
int
sbox_init_4
[]
=
{
final
static
int
sbox_init_4
[]
=
{
0x3a39ce37
,
0xd3faf5cf
,
0xabc27737
,
0x5ac52d1b
,
0x5cb0679e
,
0x4fa33742
,
0x3a39ce37
,
0xd3faf5cf
,
0xabc27737
,
0x5ac52d1b
,
0x5cb0679e
,
0x4fa33742
,
0xd3822740
,
0x99bc9bbe
,
0xd5118e9d
,
0xbf0f7315
,
0xd62d1c7e
,
0xc700c47b
,
0xd3822740
,
0x99bc9bbe
,
0xd5118e9d
,
0xbf0f7315
,
0xd62d1c7e
,
0xc700c47b
,
0xb78c1b6b
,
0x21a19045
,
0xb26eb1be
,
0x6a366eb4
,
0x5748ab2f
,
0xbc946e79
,
0xb78c1b6b
,
0x21a19045
,
0xb26eb1be
,
0x6a366eb4
,
0x5748ab2f
,
0xbc946e79
,
0xc6a376d2
,
0x6549c2c8
,
0x530ff8ee
,
0x468dde7d
,
0xd5730a1d
,
0x4cd04dc6
,
0xc6a376d2
,
0x6549c2c8
,
0x530ff8ee
,
0x468dde7d
,
0xd5730a1d
,
0x4cd04dc6
,
0x2939bbdb
,
0xa9ba4650
,
0xac9526e8
,
0xbe5ee304
,
0xa1fad5f0
,
0x6a2d519a
,
0x2939bbdb
,
0xa9ba4650
,
0xac9526e8
,
0xbe5ee304
,
0xa1fad5f0
,
0x6a2d519a
,
0x63ef8ce2
,
0x9a86ee22
,
0xc089c2b8
,
0x43242ef6
,
0xa51e03aa
,
0x9cf2d0a4
,
0x63ef8ce2
,
0x9a86ee22
,
0xc089c2b8
,
0x43242ef6
,
0xa51e03aa
,
0x9cf2d0a4
,
0x83c061ba
,
0x9be96a4d
,
0x8fe51550
,
0xba645bd6
,
0x2826a2f9
,
0xa73a3ae1
,
0x83c061ba
,
0x9be96a4d
,
0x8fe51550
,
0xba645bd6
,
0x2826a2f9
,
0xa73a3ae1
,
0x4ba99586
,
0xef5562e9
,
0xc72fefd3
,
0xf752f7da
,
0x3f046f69
,
0x77fa0a59
,
0x4ba99586
,
0xef5562e9
,
0xc72fefd3
,
0xf752f7da
,
0x3f046f69
,
0x77fa0a59
,
0x80e4a915
,
0x87b08601
,
0x9b09e6ad
,
0x3b3ee593
,
0xe990fd5a
,
0x9e34d797
,
0x80e4a915
,
0x87b08601
,
0x9b09e6ad
,
0x3b3ee593
,
0xe990fd5a
,
0x9e34d797
,
0x2cf0b7d9
,
0x022b8b51
,
0x96d5ac3a
,
0x017da67d
,
0xd1cf3ed6
,
0x7c7d2d28
,
0x2cf0b7d9
,
0x022b8b51
,
0x96d5ac3a
,
0x017da67d
,
0xd1cf3ed6
,
0x7c7d2d28
,
0x1f9f25cf
,
0xadf2b89b
,
0x5ad6b472
,
0x5a88f54c
,
0xe029ac71
,
0xe019a5e6
,
0x1f9f25cf
,
0xadf2b89b
,
0x5ad6b472
,
0x5a88f54c
,
0xe029ac71
,
0xe019a5e6
,
0x47b0acfd
,
0xed93fa9b
,
0xe8d3c48d
,
0x283b57cc
,
0xf8d56629
,
0x79132e28
,
0x47b0acfd
,
0xed93fa9b
,
0xe8d3c48d
,
0x283b57cc
,
0xf8d56629
,
0x79132e28
,
0x785f0191
,
0xed756055
,
0xf7960e44
,
0xe3d35e8c
,
0x15056dd4
,
0x88f46dba
,
0x785f0191
,
0xed756055
,
0xf7960e44
,
0xe3d35e8c
,
0x15056dd4
,
0x88f46dba
,
0x03a16125
,
0x0564f0bd
,
0xc3eb9e15
,
0x3c9057a2
,
0x97271aec
,
0xa93a072a
,
0x03a16125
,
0x0564f0bd
,
0xc3eb9e15
,
0x3c9057a2
,
0x97271aec
,
0xa93a072a
,
0x1b3f6d9b
,
0x1e6321f5
,
0xf59c66fb
,
0x26dcf319
,
0x7533d928
,
0xb155fdf5
,
0x1b3f6d9b
,
0x1e6321f5
,
0xf59c66fb
,
0x26dcf319
,
0x7533d928
,
0xb155fdf5
,
0x03563482
,
0x8aba3cbb
,
0x28517711
,
0xc20ad9f8
,
0xabcc5167
,
0xccad925f
,
0x03563482
,
0x8aba3cbb
,
0x28517711
,
0xc20ad9f8
,
0xabcc5167
,
0xccad925f
,
0x4de81751
,
0x3830dc8e
,
0x379d5862
,
0x9320f991
,
0xea7a90c2
,
0xfb3e7bce
,
0x4de81751
,
0x3830dc8e
,
0x379d5862
,
0x9320f991
,
0xea7a90c2
,
0xfb3e7bce
,
0x5121ce64
,
0x774fbe32
,
0xa8b6e37e
,
0xc3293d46
,
0x48de5369
,
0x6413e680
,
0x5121ce64
,
0x774fbe32
,
0xa8b6e37e
,
0xc3293d46
,
0x48de5369
,
0x6413e680
,
0xa2ae0810
,
0xdd6db224
,
0x69852dfd
,
0x09072166
,
0xb39a460a
,
0x6445c0dd
,
0xa2ae0810
,
0xdd6db224
,
0x69852dfd
,
0x09072166
,
0xb39a460a
,
0x6445c0dd
,
0x586cdecf
,
0x1c20c8ae
,
0x5bbef7dd
,
0x1b588d40
,
0xccd2017f
,
0x6bb4e3bb
,
0x586cdecf
,
0x1c20c8ae
,
0x5bbef7dd
,
0x1b588d40
,
0xccd2017f
,
0x6bb4e3bb
,
0xdda26a7e
,
0x3a59ff45
,
0x3e350a44
,
0xbcb4cdd5
,
0x72eacea8
,
0xfa6484bb
,
0xdda26a7e
,
0x3a59ff45
,
0x3e350a44
,
0xbcb4cdd5
,
0x72eacea8
,
0xfa6484bb
,
0x8d6612ae
,
0xbf3c6f47
,
0xd29be463
,
0x542f5d9e
,
0xaec2771b
,
0xf64e6370
,
0x8d6612ae
,
0xbf3c6f47
,
0xd29be463
,
0x542f5d9e
,
0xaec2771b
,
0xf64e6370
,
0x740e0d8d
,
0xe75b1357
,
0xf8721671
,
0xaf537d5d
,
0x4040cb08
,
0x4eb4e2cc
,
0x740e0d8d
,
0xe75b1357
,
0xf8721671
,
0xaf537d5d
,
0x4040cb08
,
0x4eb4e2cc
,
0x34d2466a
,
0x0115af84
,
0xe1b00428
,
0x95983a1d
,
0x06b89fb4
,
0xce6ea048
,
0x34d2466a
,
0x0115af84
,
0xe1b00428
,
0x95983a1d
,
0x06b89fb4
,
0xce6ea048
,
0x6f3f3b82
,
0x3520ab82
,
0x011a1d4b
,
0x277227f8
,
0x611560b1
,
0xe7933fdc
,
0x6f3f3b82
,
0x3520ab82
,
0x011a1d4b
,
0x277227f8
,
0x611560b1
,
0xe7933fdc
,
0xbb3a792b
,
0x344525bd
,
0xa08839e1
,
0x51ce794b
,
0x2f32c9b7
,
0xa01fbac9
,
0xbb3a792b
,
0x344525bd
,
0xa08839e1
,
0x51ce794b
,
0x2f32c9b7
,
0xa01fbac9
,
0xe01cc87e
,
0xbcc7d1f6
,
0xcf0111c3
,
0xa1e8aac7
,
0x1a908749
,
0xd44fbd9a
,
0xe01cc87e
,
0xbcc7d1f6
,
0xcf0111c3
,
0xa1e8aac7
,
0x1a908749
,
0xd44fbd9a
,
0xd0dadecb
,
0xd50ada38
,
0x0339c32a
,
0xc6913667
,
0x8df9317c
,
0xe0b12b4f
,
0xd0dadecb
,
0xd50ada38
,
0x0339c32a
,
0xc6913667
,
0x8df9317c
,
0xe0b12b4f
,
0xf79e59b7
,
0x43f5bb3a
,
0xf2d519ff
,
0x27d9459c
,
0xbf97222c
,
0x15e6fc2a
,
0xf79e59b7
,
0x43f5bb3a
,
0xf2d519ff
,
0x27d9459c
,
0xbf97222c
,
0x15e6fc2a
,
0x0f91fc71
,
0x9b941525
,
0xfae59361
,
0xceb69ceb
,
0xc2a86459
,
0x12baa8d1
,
0x0f91fc71
,
0x9b941525
,
0xfae59361
,
0xceb69ceb
,
0xc2a86459
,
0x12baa8d1
,
0xb6c1075e
,
0xe3056a0c
,
0x10d25065
,
0xcb03a442
,
0xe0ec6e0e
,
0x1698db3b
,
0xb6c1075e
,
0xe3056a0c
,
0x10d25065
,
0xcb03a442
,
0xe0ec6e0e
,
0x1698db3b
,
0x4c98a0be
,
0x3278e964
,
0x9f1f9532
,
0xe0d392df
,
0xd3a0342b
,
0x8971f21e
,
0x4c98a0be
,
0x3278e964
,
0x9f1f9532
,
0xe0d392df
,
0xd3a0342b
,
0x8971f21e
,
0x1b0a7441
,
0x4ba3348c
,
0xc5be7120
,
0xc37632d8
,
0xdf359f8d
,
0x9b992f2e
,
0x1b0a7441
,
0x4ba3348c
,
0xc5be7120
,
0xc37632d8
,
0xdf359f8d
,
0x9b992f2e
,
0xe60b6f47
,
0x0fe3f11d
,
0xe54cda54
,
0x1edad891
,
0xce6279cf
,
0xcd3e7e6f
,
0xe60b6f47
,
0x0fe3f11d
,
0xe54cda54
,
0x1edad891
,
0xce6279cf
,
0xcd3e7e6f
,
0x1618b166
,
0xfd2c1d05
,
0x848fd2c5
,
0xf6fb2299
,
0xf523f357
,
0xa6327623
,
0x1618b166
,
0xfd2c1d05
,
0x848fd2c5
,
0xf6fb2299
,
0xf523f357
,
0xa6327623
,
0x93a83531
,
0x56cccd02
,
0xacf08162
,
0x5a75ebb5
,
0x6e163697
,
0x88d273cc
,
0x93a83531
,
0x56cccd02
,
0xacf08162
,
0x5a75ebb5
,
0x6e163697
,
0x88d273cc
,
0xde966292
,
0x81b949d0
,
0x4c50901b
,
0x71c65614
,
0xe6c6c7bd
,
0x327a140a
,
0xde966292
,
0x81b949d0
,
0x4c50901b
,
0x71c65614
,
0xe6c6c7bd
,
0x327a140a
,
0x45e1d006
,
0xc3f27b9a
,
0xc9aa53fd
,
0x62a80f00
,
0xbb25bfe2
,
0x35bdd2f6
,
0x45e1d006
,
0xc3f27b9a
,
0xc9aa53fd
,
0x62a80f00
,
0xbb25bfe2
,
0x35bdd2f6
,
0x71126905
,
0xb2040222
,
0xb6cbcf7c
,
0xcd769c2b
,
0x53113ec0
,
0x1640e3d3
,
0x71126905
,
0xb2040222
,
0xb6cbcf7c
,
0xcd769c2b
,
0x53113ec0
,
0x1640e3d3
,
0x38abbd60
,
0x2547adf0
,
0xba38209c
,
0xf746ce76
,
0x77afa1c5
,
0x20756060
,
0x38abbd60
,
0x2547adf0
,
0xba38209c
,
0xf746ce76
,
0x77afa1c5
,
0x20756060
,
0x85cbfe4e
,
0x8ae88dd8
,
0x7aaaf9b0
,
0x4cf9aa7e
,
0x1948c25c
,
0x02fb8a8c
,
0x85cbfe4e
,
0x8ae88dd8
,
0x7aaaf9b0
,
0x4cf9aa7e
,
0x1948c25c
,
0x02fb8a8c
,
0x01c36ae4
,
0xd6ebe1f9
,
0x90d4f869
,
0xa65cdea0
,
0x3f09252d
,
0xc208e69f
,
0x01c36ae4
,
0xd6ebe1f9
,
0x90d4f869
,
0xa65cdea0
,
0x3f09252d
,
0xc208e69f
,
0xb74e6132
,
0xce77e25b
,
0x578fdfe3
,
0x3ac372e6
};
0xb74e6132
,
0xce77e25b
,
0x578fdfe3
,
0x3ac372e6
};
}
}
...
@@ -872,6 +902,7 @@ public class Blowfish {
...
@@ -872,6 +902,7 @@ public class Blowfish {
/**
/**
* get the current CBC IV (for cipher resets)
* get the current CBC IV (for cipher resets)
*
* @return current CBC IV
* @return current CBC IV
*/
*/
public
long
getCBCIV
()
public
long
getCBCIV
()
...
@@ -881,6 +912,7 @@ public class Blowfish {
...
@@ -881,6 +912,7 @@ public class Blowfish {
/**
/**
* get the current CBC IV (for cipher resets)
* get the current CBC IV (for cipher resets)
*
* @param dest wher eto put current CBC IV in network byte ordered array
* @param dest wher eto put current CBC IV in network byte ordered array
*/
*/
public
void
getCBCIV
(
byte
[]
dest
)
public
void
getCBCIV
(
byte
[]
dest
)
...
@@ -890,6 +922,7 @@ public class Blowfish {
...
@@ -890,6 +922,7 @@ public class Blowfish {
/**
/**
* set the current CBC IV (for cipher resets)
* set the current CBC IV (for cipher resets)
*
* @param lNewCBCIV the new CBC IV
* @param lNewCBCIV the new CBC IV
*/
*/
public
void
setCBCIV
(
long
lNewCBCIV
)
public
void
setCBCIV
(
long
lNewCBCIV
)
...
@@ -899,7 +932,8 @@ public class Blowfish {
...
@@ -899,7 +932,8 @@ public class Blowfish {
/**
/**
* set the current CBC IV (for cipher resets)
* set the current CBC IV (for cipher resets)
* @param newCBCIV the new CBC IV in network byte ordered array
*
* @param newCBCIV the new CBC IV in network byte ordered array
*/
*/
public
void
setCBCIV
(
byte
[]
newCBCIV
)
public
void
setCBCIV
(
byte
[]
newCBCIV
)
{
{
...
@@ -909,6 +943,7 @@ public class Blowfish {
...
@@ -909,6 +943,7 @@ public class Blowfish {
/**
/**
* constructor, stores a zero CBC IV
* constructor, stores a zero CBC IV
*
* @param bfkey key material, up to MAXKEYLENGTH bytes
* @param bfkey key material, up to MAXKEYLENGTH bytes
*/
*/
public
BlowfishCBC
(
byte
[]
bfkey
)
public
BlowfishCBC
(
byte
[]
bfkey
)
...
@@ -922,11 +957,12 @@ public class Blowfish {
...
@@ -922,11 +957,12 @@ public class Blowfish {
/**
/**
* constructor
* constructor
*
* @param bfkey key material, up to MAXKEYLENGTH bytes
* @param bfkey key material, up to MAXKEYLENGTH bytes
* @param lInitCBCIV the CBC IV
* @param lInitCBCIV the CBC IV
*/
*/
public
BlowfishCBC
(
byte
[]
bfkey
,
public
BlowfishCBC
(
byte
[]
bfkey
,
long
lInitCBCIV
)
long
lInitCBCIV
)
{
{
super
(
bfkey
);
super
(
bfkey
);
...
@@ -937,11 +973,12 @@ public class Blowfish {
...
@@ -937,11 +973,12 @@ public class Blowfish {
/**
/**
* constructor
* constructor
*
* @param bfkey key material, up to MAXKEYLENGTH bytes
* @param bfkey key material, up to MAXKEYLENGTH bytes
* @param initCBCIV the CBC IV (array with min. BLOCKSIZE bytes)
* @param initCBCIV the CBC IV (array with min. BLOCKSIZE bytes)
*/
*/
public
BlowfishCBC
(
byte
[]
bfkey
,
public
BlowfishCBC
(
byte
[]
bfkey
,
byte
[]
initCBCIV
)
byte
[]
initCBCIV
)
{
{
super
(
bfkey
);
super
(
bfkey
);
...
@@ -999,15 +1036,16 @@ public class Blowfish {
...
@@ -999,15 +1036,16 @@ public class Blowfish {
/**
/**
* encrypts a byte buffer (should be aligned to an 8 byte border)
* encrypts a byte buffer (should be aligned to an 8 byte border)
* to another buffer (of the same size or bigger)
* to another buffer (of the same size or bigger)
*
* @param inbuffer buffer with plaintext data
* @param inbuffer buffer with plaintext data
* @param outbuffer buffer to get the ciphertext data
* @param outbuffer buffer to get the ciphertext data
*/
*/
public
void
encrypt
(
byte
[]
inbuffer
,
public
void
encrypt
(
byte
[]
inbuffer
,
byte
[]
outbuffer
)
byte
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
...
@@ -1020,6 +1058,7 @@ public class Blowfish {
...
@@ -1020,6 +1058,7 @@ public class Blowfish {
/**
/**
* encrypts a byte buffer (should be aligned to an 8 byte border) to itself
* encrypts a byte buffer (should be aligned to an 8 byte border) to itself
*
* @param buffer buffer to encrypt
* @param buffer buffer to encrypt
*/
*/
public
void
encrypt
(
byte
[]
buffer
)
public
void
encrypt
(
byte
[]
buffer
)
...
@@ -1027,7 +1066,7 @@ public class Blowfish {
...
@@ -1027,7 +1066,7 @@ public class Blowfish {
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
...
@@ -1038,20 +1077,20 @@ public class Blowfish {
...
@@ -1038,20 +1077,20 @@ public class Blowfish {
/**
/**
* encrypts an int buffer (should be aligned to an
* encrypts an int buffer (should be aligned to an
* two integer border) to another int buffer (of the same
* two integer border) to another int buffer (of the same
* size or bigger)
* size or bigger)
*
* @param inbuffer buffer with plaintext data
* @param inbuffer buffer with plaintext data
* @param outbuffer buffer to get the ciphertext data
* @param outbuffer buffer to get the ciphertext data
*/
*/
public
void
encrypt
(
int
[]
inbuffer
,
public
void
encrypt
(
int
[]
inbuffer
,
int
[]
outbuffer
)
int
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
...
@@ -1063,13 +1102,14 @@ public class Blowfish {
...
@@ -1063,13 +1102,14 @@ public class Blowfish {
/**
/**
* encrypts an integer buffer (should be aligned to an
* encrypts an integer buffer (should be aligned to an
*
* @param buffer buffer to encrypt
* @param buffer buffer to encrypt
*/
*/
public
void
encrypt
(
int
[]
buffer
)
public
void
encrypt
(
int
[]
buffer
)
{
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// encrypt a temporary 64bit block
// encrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
buffer
,
nI
);
lTemp
=
intArrayToLong
(
buffer
,
nI
);
...
@@ -1082,11 +1122,12 @@ public class Blowfish {
...
@@ -1082,11 +1122,12 @@ public class Blowfish {
/**
/**
* encrypts a long buffer to another long buffer (of the same size or bigger)
* encrypts a long buffer to another long buffer (of the same size or bigger)
*
* @param inbuffer buffer with plaintext data
* @param inbuffer buffer with plaintext data
* @param outbuffer buffer to get the ciphertext data
* @param outbuffer buffer to get the ciphertext data
*/
*/
public
void
encrypt
(
long
[]
inbuffer
,
public
void
encrypt
(
long
[]
inbuffer
,
long
[]
outbuffer
)
long
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
++)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
++)
...
@@ -1099,6 +1140,7 @@ public class Blowfish {
...
@@ -1099,6 +1140,7 @@ public class Blowfish {
/**
/**
* encrypts a long buffer to itself
* encrypts a long buffer to itself
*
* @param buffer buffer to encrypt
* @param buffer buffer to encrypt
*/
*/
public
void
encrypt
(
long
[]
buffer
)
public
void
encrypt
(
long
[]
buffer
)
...
@@ -1115,15 +1157,16 @@ public class Blowfish {
...
@@ -1115,15 +1157,16 @@ public class Blowfish {
/**
/**
* decrypts a byte buffer (should be aligned to an 8 byte border)
* decrypts a byte buffer (should be aligned to an 8 byte border)
* to another buffer (of the same size or bigger)
* to another buffer (of the same size or bigger)
*
* @param inbuffer buffer with ciphertext data
* @param inbuffer buffer with ciphertext data
* @param outbuffer buffer to get the plaintext data
* @param outbuffer buffer to get the plaintext data
*/
*/
public
void
decrypt
(
byte
[]
inbuffer
,
public
void
decrypt
(
byte
[]
inbuffer
,
byte
[]
outbuffer
)
byte
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// decrypt a temporary 64bit block
// decrypt a temporary 64bit block
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
lTemp
=
byteArrayToLong
(
inbuffer
,
nI
);
...
@@ -1136,13 +1179,14 @@ public class Blowfish {
...
@@ -1136,13 +1179,14 @@ public class Blowfish {
/**
/**
* decrypts a byte buffer (should be aligned to an 8 byte border) to itself
* decrypts a byte buffer (should be aligned to an 8 byte border) to itself
*
* @param buffer buffer to decrypt
* @param buffer buffer to decrypt
*/
*/
public
void
decrypt
(
byte
[]
buffer
)
public
void
decrypt
(
byte
[]
buffer
)
{
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
8
)
{
{
// decrypt over a temporary 64bit block
// decrypt over a temporary 64bit block
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
lTemp
=
byteArrayToLong
(
buffer
,
nI
);
...
@@ -1153,20 +1197,20 @@ public class Blowfish {
...
@@ -1153,20 +1197,20 @@ public class Blowfish {
/**
/**
* decrypts an integer buffer (should be aligned to an
* decrypts an integer buffer (should be aligned to an
* two integer border) to another int buffer (of the same size or bigger)
* two integer border) to another int buffer (of the same size or bigger)
*
* @param inbuffer buffer with ciphertext data
* @param inbuffer buffer with ciphertext data
* @param outbuffer buffer to get the plaintext data
* @param outbuffer buffer to get the plaintext data
*/
*/
public
void
decrypt
(
int
[]
inbuffer
,
public
void
decrypt
(
int
[]
inbuffer
,
int
[]
outbuffer
)
int
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// decrypt a temporary 64bit block
// decrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
lTemp
=
intArrayToLong
(
inbuffer
,
nI
);
...
@@ -1179,13 +1223,14 @@ public class Blowfish {
...
@@ -1179,13 +1223,14 @@ public class Blowfish {
/**
/**
* decrypts an int buffer (should be aligned to a
* decrypts an int buffer (should be aligned to a
* two integer border)
* two integer border)
*
* @param buffer buffer to decrypt
* @param buffer buffer to decrypt
*/
*/
public
void
decrypt
(
int
[]
buffer
)
public
void
decrypt
(
int
[]
buffer
)
{
{
int
nLen
=
buffer
.
length
;
int
nLen
=
buffer
.
length
;
long
lTemp
;
long
lTemp
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
+=
2
)
{
{
// decrypt a temporary 64bit block
// decrypt a temporary 64bit block
lTemp
=
intArrayToLong
(
buffer
,
nI
);
lTemp
=
intArrayToLong
(
buffer
,
nI
);
...
@@ -1198,11 +1243,12 @@ public class Blowfish {
...
@@ -1198,11 +1243,12 @@ public class Blowfish {
/**
/**
* decrypts a long buffer to another long buffer (of the same size or bigger)
* decrypts a long buffer to another long buffer (of the same size or bigger)
*
* @param inbuffer buffer with ciphertext data
* @param inbuffer buffer with ciphertext data
* @param outbuffer buffer to get the plaintext data
* @param outbuffer buffer to get the plaintext data
*/
*/
public
void
decrypt
(
long
[]
inbuffer
,
public
void
decrypt
(
long
[]
inbuffer
,
long
[]
outbuffer
)
long
[]
outbuffer
)
{
{
int
nLen
=
inbuffer
.
length
;
int
nLen
=
inbuffer
.
length
;
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
++)
for
(
int
nI
=
0
;
nI
<
nLen
;
nI
++)
...
@@ -1215,6 +1261,7 @@ public class Blowfish {
...
@@ -1215,6 +1261,7 @@ public class Blowfish {
/**
/**
* decrypts a long buffer to itself
* decrypts a long buffer to itself
*
* @param buffer buffer to decrypt
* @param buffer buffer to decrypt
*/
*/
public
void
decrypt
(
long
[]
buffer
)
public
void
decrypt
(
long
[]
buffer
)
...
@@ -1230,33 +1277,35 @@ public class Blowfish {
...
@@ -1230,33 +1277,35 @@ public class Blowfish {
/**
/**
* gets bytes from an array into a long
* gets bytes from an array into a long
*
* @param buffer where to get the bytes
* @param buffer where to get the bytes
* @param nStartIndex index from where to read the data
* @param nStartIndex index from where to read the data
* @return the 64bit integer
* @return the 64bit integer
*/
*/
private
static
long
byteArrayToLong
(
byte
[]
buffer
,
private
static
long
byteArrayToLong
(
byte
[]
buffer
,
int
nStartIndex
)
int
nStartIndex
)
{
{
return
(((
long
)
buffer
[
nStartIndex
])
<<
56
)
|
return
(((
long
)
buffer
[
nStartIndex
])
<<
56
)
|
(((
long
)
buffer
[
nStartIndex
+
1
]
&
0x0ff
L
)
<<
48
)
|
(((
long
)
buffer
[
nStartIndex
+
1
]
&
0x0ff
L
)
<<
48
)
|
(((
long
)
buffer
[
nStartIndex
+
2
]
&
0x0ff
L
)
<<
40
)
|
(((
long
)
buffer
[
nStartIndex
+
2
]
&
0x0ff
L
)
<<
40
)
|
(((
long
)
buffer
[
nStartIndex
+
3
]
&
0x0ff
L
)
<<
32
)
|
(((
long
)
buffer
[
nStartIndex
+
3
]
&
0x0ff
L
)
<<
32
)
|
(((
long
)
buffer
[
nStartIndex
+
4
]
&
0x0ff
L
)
<<
24
)
|
(((
long
)
buffer
[
nStartIndex
+
4
]
&
0x0ff
L
)
<<
24
)
|
(((
long
)
buffer
[
nStartIndex
+
5
]
&
0x0ff
L
)
<<
16
)
|
(((
long
)
buffer
[
nStartIndex
+
5
]
&
0x0ff
L
)
<<
16
)
|
(((
long
)
buffer
[
nStartIndex
+
6
]
&
0x0ff
L
)
<<
8
)
|
(((
long
)
buffer
[
nStartIndex
+
6
]
&
0x0ff
L
)
<<
8
)
|
((
long
)
buffer
[
nStartIndex
+
7
]
&
0x0ff
);
((
long
)
buffer
[
nStartIndex
+
7
]
&
0x0ff
);
}
}
/**
/**
* converts a long o bytes which are put into a given array
* converts a long o bytes which are put into a given array
*
* @param lValue the 64bit integer to convert
* @param lValue the 64bit integer to convert
* @param buffer the target buffer
* @param buffer the target buffer
* @param nStartIndex where to place the bytes in the buffer
* @param nStartIndex where to place the bytes in the buffer
*/
*/
private
static
void
longToByteArray
(
long
lValue
,
private
static
void
longToByteArray
(
long
lValue
,
byte
[]
buffer
,
byte
[]
buffer
,
int
nStartIndex
)
int
nStartIndex
)
{
{
buffer
[
nStartIndex
]
=
(
byte
)
(
lValue
>>>
56
);
buffer
[
nStartIndex
]
=
(
byte
)
(
lValue
>>>
56
);
buffer
[
nStartIndex
+
1
]
=
(
byte
)
((
lValue
>>>
48
)
&
0x0ff
);
buffer
[
nStartIndex
+
1
]
=
(
byte
)
((
lValue
>>>
48
)
&
0x0ff
);
...
@@ -1271,12 +1320,13 @@ public class Blowfish {
...
@@ -1271,12 +1320,13 @@ public class Blowfish {
/**
/**
* converts values from an integer array to a long
* converts values from an integer array to a long
*
* @param buffer where to get the bytes
* @param buffer where to get the bytes
* @param nStartIndex index from where to read the data
* @param nStartIndex index from where to read the data
* @return the 64bit integer
* @return the 64bit integer
*/
*/
private
static
long
intArrayToLong
(
int
[]
buffer
,
private
static
long
intArrayToLong
(
int
[]
buffer
,
int
nStartIndex
)
int
nStartIndex
)
{
{
return
(((
long
)
buffer
[
nStartIndex
])
<<
32
)
|
return
(((
long
)
buffer
[
nStartIndex
])
<<
32
)
|
(((
long
)
buffer
[
nStartIndex
+
1
])
&
0x0ffffffff
L
);
(((
long
)
buffer
[
nStartIndex
+
1
])
&
0x0ffffffff
L
);
...
@@ -1285,66 +1335,72 @@ public class Blowfish {
...
@@ -1285,66 +1335,72 @@ public class Blowfish {
/**
/**
* converts a long to integers which are put into a given array
* converts a long to integers which are put into a given array
*
* @param lValue the 64bit integer to convert
* @param lValue the 64bit integer to convert
* @param buffer the target buffer
* @param buffer the target buffer
* @param nStartIndex where to place the bytes in the buffer
* @param nStartIndex where to place the bytes in the buffer
*/
*/
private
static
void
longToIntArray
(
long
lValue
,
private
static
void
longToIntArray
(
long
lValue
,
int
[]
buffer
,
int
[]
buffer
,
int
nStartIndex
)
int
nStartIndex
)
{
{
buffer
[
nStartIndex
]
=
(
int
)
(
lValue
>>>
32
);
buffer
[
nStartIndex
]
=
(
int
)
(
lValue
>>>
32
);
buffer
[
nStartIndex
+
1
]
=
(
int
)
lValue
;
buffer
[
nStartIndex
+
1
]
=
(
int
)
lValue
;
}
}
/**
/**
* makes a long from two integers (treated unsigned)
* makes a long from two integers (treated unsigned)
*
* @param nLo lower 32bits
* @param nLo lower 32bits
* @param nHi higher 32bits
* @param nHi higher 32bits
* @return the built long
* @return the built long
*/
*/
private
static
long
makeLong
(
int
nLo
,
private
static
long
makeLong
(
int
nLo
,
int
nHi
)
int
nHi
)
{
{
return
(((
long
)
nHi
<<
32
)
|
return
(((
long
)
nHi
<<
32
)
|
((
long
)
nLo
&
0x00000000ffffffff
L
));
((
long
)
nLo
&
0x00000000ffffffff
L
));
}
}
/**
/**
* gets the lower 32 bits of a long
* gets the lower 32 bits of a long
*
* @param lVal the long integer
* @param lVal the long integer
* @return lower 32 bits
* @return lower 32 bits
*/
*/
private
static
int
longLo32
(
long
lVal
)
private
static
int
longLo32
(
long
lVal
)
{
{
return
(
int
)
lVal
;
return
(
int
)
lVal
;
}
}
/**
/**
* gets the higher 32 bits of a long
* gets the higher 32 bits of a long
*
* @param lVal the long integer
* @param lVal the long integer
* @return higher 32 bits
* @return higher 32 bits
*/
*/
private
static
int
longHi32
(
long
lVal
)
private
static
int
longHi32
(
long
lVal
)
{
{
return
(
int
)((
lVal
>>>
32
));
return
(
int
)
((
lVal
>>>
32
));
}
}
// our table for binhex conversion
// our table for binhex conversion
final
static
char
[]
HEXTAB
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
final
static
char
[]
HEXTAB
=
{
'8'
,
'9'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
};
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
};
/**
/**
* converts a byte array to a binhex string
* converts a byte array to a binhex string
*
* @param data the byte array
* @param data the byte array
* @param nStartPos start index where to get the bytes
* @param nStartPos start index where to get the bytes
* @param nNumOfBytes number of bytes to convert
* @param nNumOfBytes number of bytes to convert
* @return the binhex string
* @return the binhex string
*/
*/
private
static
String
bytesToBinHex
(
byte
[]
data
,
private
static
String
bytesToBinHex
(
byte
[]
data
,
int
nStartPos
,
int
nStartPos
,
int
nNumOfBytes
)
int
nNumOfBytes
)
{
{
StringBuffer
sbuf
=
new
StringBuffer
();
StringBuffer
sbuf
=
new
StringBuffer
();
sbuf
.
setLength
(
nNumOfBytes
<<
1
);
sbuf
.
setLength
(
nNumOfBytes
<<
1
);
...
@@ -1360,19 +1416,20 @@ public class Blowfish {
...
@@ -1360,19 +1416,20 @@ public class Blowfish {
/**
/**
* converts a binhex string back into a byte array (invalid codes will be skipped)
* converts a binhex string back into a byte array (invalid codes will be skipped)
*
* @param sBinHex binhex string
* @param sBinHex binhex string
* @param data the target array
* @param data the target array
* @param nSrcPos from which character in the string the conversion should begin,
* @param nSrcPos from which character in the string the conversion should begin,
*
remember that (nSrcPos modulo 2) should equals 0 normally
* remember that (nSrcPos modulo 2) should equals 0 normally
* @param nDstPos to store the bytes from which position in the array
* @param nDstPos to store the bytes from which position in the array
* @param nNumOfBytes number of bytes to extract
* @param nNumOfBytes number of bytes to extract
* @return number of extracted bytes
* @return number of extracted bytes
*/
*/
private
static
int
binHexToBytes
(
String
sBinHex
,
private
static
int
binHexToBytes
(
String
sBinHex
,
byte
[]
data
,
byte
[]
data
,
int
nSrcPos
,
int
nSrcPos
,
int
nDstPos
,
int
nDstPos
,
int
nNumOfBytes
)
int
nNumOfBytes
)
{
{
// check for correct ranges
// check for correct ranges
int
nStrLen
=
sBinHex
.
length
();
int
nStrLen
=
sBinHex
.
length
();
...
@@ -1402,13 +1459,13 @@ public class Blowfish {
...
@@ -1402,13 +1459,13 @@ public class Blowfish {
if
((
cActChar
>=
'a'
)
&&
(
cActChar
<=
'f'
))
if
((
cActChar
>=
'a'
)
&&
(
cActChar
<=
'f'
))
{
{
bActByte
|=
(
byte
)(
cActChar
-
'a'
)
+
10
;
bActByte
|=
(
byte
)
(
cActChar
-
'a'
)
+
10
;
}
}
else
else
{
{
if
((
cActChar
>=
'0'
)
&&
(
cActChar
<=
'9'
))
if
((
cActChar
>=
'0'
)
&&
(
cActChar
<=
'9'
))
{
{
bActByte
|=
(
byte
)(
cActChar
-
'0'
);
bActByte
|=
(
byte
)
(
cActChar
-
'0'
);
}
}
else
else
{
{
...
@@ -1428,14 +1485,15 @@ public class Blowfish {
...
@@ -1428,14 +1485,15 @@ public class Blowfish {
/**
/**
* converts a byte array into an UNICODE string
* converts a byte array into an UNICODE string
*
* @param data the byte array
* @param data the byte array
* @param nStartPos where to begin the conversion
* @param nStartPos where to begin the conversion
* @param nNumOfBytes number of bytes to handle
* @param nNumOfBytes number of bytes to handle
* @return the string
* @return the string
*/
*/
private
static
String
byteArrayToUNCString
(
byte
[]
data
,
private
static
String
byteArrayToUNCString
(
byte
[]
data
,
int
nStartPos
,
int
nStartPos
,
int
nNumOfBytes
)
int
nNumOfBytes
)
{
{
// we need two bytes for every character
// we need two bytes for every character
nNumOfBytes
&=
~
1
;
nNumOfBytes
&=
~
1
;
...
@@ -1456,7 +1514,7 @@ public class Blowfish {
...
@@ -1456,7 +1514,7 @@ public class Blowfish {
while
(
nNumOfBytes
>
0
)
while
(
nNumOfBytes
>
0
)
{
{
sbuf
.
setCharAt
(
nSBufPos
++,
sbuf
.
setCharAt
(
nSBufPos
++,
(
char
)
(((
int
)
data
[
nStartPos
]
<<
8
)
|
((
int
)
data
[
nStartPos
+
1
]
&
0x0ff
)));
(
char
)
(((
int
)
data
[
nStartPos
]
<<
8
)
|
((
int
)
data
[
nStartPos
+
1
]
&
0x0ff
)));
nStartPos
+=
2
;
nStartPos
+=
2
;
nNumOfBytes
-=
2
;
nNumOfBytes
-=
2
;
}
}
...
...
src/main/java/com/originspark/drp/util/FileUtil.java
View file @
f13bce6f
...
@@ -7,7 +7,7 @@ public class FileUtil {
...
@@ -7,7 +7,7 @@ public class FileUtil {
public
static
String
RESOURCES_PATH
=
"/resources"
;
public
static
String
RESOURCES_PATH
=
"/resources"
;
public
static
String
UPLOAD_PATH
=
"/resources/upload"
;
public
static
String
UPLOAD_PATH
=
"/resources/upload"
;
public
static
String
DOCUMENT_TEMPLATES_PATH
=
"/resources/document_templates"
;
public
static
String
DOCUMENT_TEMPLATES_PATH
=
"/resources/document_templates"
;
public
static
String
getResourcesPath
(
HttpServletRequest
request
)
{
public
static
String
getResourcesPath
(
HttpServletRequest
request
)
{
String
path
=
request
.
getSession
().
getServletContext
().
getRealPath
(
RESOURCES_PATH
);
String
path
=
request
.
getSession
().
getServletContext
().
getRealPath
(
RESOURCES_PATH
);
return
path
;
return
path
;
...
...
src/main/java/com/originspark/drp/util/SessionUtil.java
View file @
f13bce6f
package
com
.
originspark
.
drp
.
util
;
package
com
.
originspark
.
drp
.
util
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
com.originspark.drp.models.User
;
import
com.originspark.drp.models.User
;
public
class
SessionUtil
{
public
class
SessionUtil
{
//返回当前登陆的用户信息
//
返回当前登陆的用户信息
public
static
User
getCurrentUser
(
HttpServletRequest
request
)
{
public
static
User
getCurrentUser
(
HttpServletRequest
request
)
{
User
user
=
(
User
)
request
.
getSession
().
getAttribute
(
"user"
);
User
user
=
(
User
)
request
.
getSession
().
getAttribute
(
"user"
);
return
user
;
return
user
;
}
}
public
static
String
getCurrentUserName
(
HttpServletRequest
request
){
public
static
String
getCurrentUserName
(
HttpServletRequest
request
)
{
return
getCurrentUser
(
request
).
getName
();
return
getCurrentUser
(
request
).
getName
();
}
}
}
}
src/main/java/com/originspark/drp/util/StringUtil.java
View file @
f13bce6f
...
@@ -6,35 +6,35 @@ import java.text.SimpleDateFormat;
...
@@ -6,35 +6,35 @@ import java.text.SimpleDateFormat;
import
java.util.Date
;
import
java.util.Date
;
public
class
StringUtil
{
public
class
StringUtil
{
static
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
static
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
public
static
Date
String2Date
(
String
str
)
throws
ParseException
{
public
static
Date
String2Date
(
String
str
)
throws
ParseException
{
return
sdf
.
parse
(
str
);
return
sdf
.
parse
(
str
);
}
}
public
static
BigDecimal
String2BigDecimal
(
String
str
){
public
static
BigDecimal
String2BigDecimal
(
String
str
)
{
return
BigDecimal
.
valueOf
(
Double
.
parseDouble
(
str
));
return
BigDecimal
.
valueOf
(
Double
.
parseDouble
(
str
));
}
}
/**
/**
* 通过年月获取上一个月的年月
* 通过年月获取上一个月的年月
*
*
* @param thisMonth="2014-02"/"2014-01"
* @param thisMonth="2014-02"/"2014-01"
* @return "2014-01"/"2013-12"
* @return "2014-01"/"2013-12"
*/
*/
public
static
String
getPreMonth
(
String
thisMonth
){
public
static
String
getPreMonth
(
String
thisMonth
)
{
String
yearMonth
[]
=
thisMonth
.
split
(
"-"
);
String
yearMonth
[]
=
thisMonth
.
split
(
"-"
);
int
month
=
Integer
.
parseInt
(
yearMonth
[
1
]);
int
month
=
Integer
.
parseInt
(
yearMonth
[
1
]);
if
(
month
>
1
)
{
if
(
month
>
1
)
{
return
yearMonth
[
0
]
+
"-"
+
String
.
format
(
"%02d"
,
month
-
1
);
return
yearMonth
[
0
]
+
"-"
+
String
.
format
(
"%02d"
,
month
-
1
);
}
}
int
year
=
Integer
.
parseInt
(
yearMonth
[
0
]);
int
year
=
Integer
.
parseInt
(
yearMonth
[
0
]);
return
(
year
-
1
)+
"-12"
;
return
(
year
-
1
)
+
"-12"
;
}
}
}
}
src/main/java/com/originspark/drp/util/poi/exporter/MonthendInventoryGenerator.java
View file @
f13bce6f
...
@@ -17,20 +17,20 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
...
@@ -17,20 +17,20 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
import
com.originspark.drp.web.models.projects.inventories.Ware
;
import
com.originspark.drp.web.models.projects.inventories.Ware
;
public
class
MonthendInventoryGenerator
{
public
class
MonthendInventoryGenerator
{
/**
/**
* 生成月末盘点表的excel
* 生成月末盘点表的excel
*
*
* @param fileName 文件名:项目名称_系统名称_2014-02_月末盘点
* @param fileName 文件名:项目名称_系统名称_2014-02_月末盘点
* @param inventories
* @param inventories
* @param resourcePath 代指目录/WebContent/resources
* @param resourcePath 代指目录/WebContent/resources
* @return
* @return
*/
*/
public
static
File
generate
(
String
fileName
,
List
<
Ware
>
inventories
,
String
resourcePath
)
{
public
static
File
generate
(
String
fileName
,
List
<
Ware
>
inventories
,
String
resourcePath
)
{
try
{
try
{
// Open excel template
// Open excel template
InputStream
inp
=
new
FileInputStream
(
FileUtils
.
getFile
(
resourcePath
+
"/document_templates/monthEndInventory.xls"
));
InputStream
inp
=
new
FileInputStream
(
FileUtils
.
getFile
(
resourcePath
+
"/document_templates/monthEndInventory.xls"
));
Workbook
wb
=
WorkbookFactory
.
create
(
inp
);
Workbook
wb
=
WorkbookFactory
.
create
(
inp
);
Sheet
mainSheet
=
wb
.
getSheetAt
(
0
);
Sheet
mainSheet
=
wb
.
getSheetAt
(
0
);
...
@@ -44,10 +44,10 @@ public class MonthendInventoryGenerator {
...
@@ -44,10 +44,10 @@ public class MonthendInventoryGenerator {
row
.
createCell
(
1
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getWareBrand
());
row
.
createCell
(
1
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getWareBrand
());
row
.
createCell
(
2
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getWareModel
());
row
.
createCell
(
2
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getWareModel
());
row
.
createCell
(
3
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getWareUnit
());
row
.
createCell
(
3
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getWareUnit
());
row
.
createCell
(
4
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getLastMonthLeft
()
+
""
);
row
.
createCell
(
4
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getLastMonthLeft
()
+
""
);
row
.
createCell
(
5
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getMonthIn
()
+
""
);
row
.
createCell
(
5
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getMonthIn
()
+
""
);
row
.
createCell
(
6
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getMonthOut
()
+
""
);
row
.
createCell
(
6
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getMonthOut
()
+
""
);
row
.
createCell
(
7
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getMonthLeft
()
+
""
);
row
.
createCell
(
7
,
Cell
.
CELL_TYPE_STRING
).
setCellValue
(
inventory
.
getMonthLeft
()
+
""
);
currentRow
.
increment
();
currentRow
.
increment
();
}
}
...
...
src/main/java/com/originspark/drp/web/models/projects/ProjectUI.java
deleted
100644 → 0
View file @
4365dd18
package
com
.
originspark
.
drp
.
web
.
models
.
projects
;
import
java.util.Date
;
public
class
ProjectUI
{
private
Long
id
;
private
String
name
;
private
String
code
;
private
String
city
;
private
Date
startDate
;
private
Date
endDate
;
private
Long
parentId
;
private
boolean
leaf
;
private
Long
projectManager
;
private
Long
wareKeeper
;
private
Long
materialKeeper
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getCity
()
{
return
city
;
}
public
void
setCity
(
String
city
)
{
this
.
city
=
city
;
}
public
Date
getStartDate
()
{
return
startDate
;
}
public
void
setStartDate
(
Date
startDate
)
{
this
.
startDate
=
startDate
;
}
public
Date
getEndDate
()
{
return
endDate
;
}
public
void
setEndDate
(
Date
endDate
)
{
this
.
endDate
=
endDate
;
}
public
Long
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
Long
parentId
)
{
this
.
parentId
=
parentId
;
}
public
boolean
isLeaf
()
{
return
leaf
;
}
public
void
setLeaf
(
boolean
leaf
)
{
this
.
leaf
=
leaf
;
}
public
Long
getProjectManager
()
{
return
projectManager
;
}
public
void
setProjectManager
(
Long
projectManager
)
{
this
.
projectManager
=
projectManager
;
}
public
Long
getWareKeeper
()
{
return
wareKeeper
;
}
public
void
setWareKeeper
(
Long
wareKeeper
)
{
this
.
wareKeeper
=
wareKeeper
;
}
public
Long
getMaterialKeeper
()
{
return
materialKeeper
;
}
public
void
setMaterialKeeper
(
Long
materialKeeper
)
{
this
.
materialKeeper
=
materialKeeper
;
}
}
src/main/resources/META-INF/persistence.xml
0 → 100644
View file @
f13bce6f
<?xml version="1.0"?>
<persistence
xmlns=
"http://java.sun.com/xml/ns/persistence"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version=
"1.0"
>
<persistence-unit
name=
"default"
transaction-type=
"RESOURCE_LOCAL"
>
<provider>
org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property
name=
"hibernate.dialect"
value=
"org.hibernate.dialect.MySQL5Dialect"
/>
<property
name=
"hibernate.max_fetch_depth"
value=
"3"
/>
<property
name=
"hibernate.hbm2ddl.auto"
value=
"update"
/>
<property
name=
"hibernate.jdbc.fetch_size"
value=
"18"
/>
<property
name=
"hibernate.jdbc.batch_size"
value=
"10"
/>
<property
name=
"hibernate.show_sql"
value=
"false"
/>
<property
name=
"hibernate.format_sql"
value=
"false"
/>
<property
name=
"hibernate.cache.region.factory_class"
value=
"org.hibernate.cache.ehcache.EhCacheRegionFactory"
/>
<property
name=
"hibernate.ejb.naming_strategy"
value=
"org.hibernate.cfg.ImprovedNamingStrategy"
/>
<property
name=
"net.sf.ehcache.configurationResourceName"
value=
"ehcache-hibernate-local.xml"
/>
</properties>
</persistence-unit>
</persistence>
src/main/resources/
applicationC
ontext.xml
→
src/main/resources/
c
ontext.xml
View file @
f13bce6f
...
@@ -19,23 +19,13 @@
...
@@ -19,23 +19,13 @@
<context:exclude-filter
type=
"annotation"
expression=
"org.springframework.stereotype.Controller"
/>
<context:exclude-filter
type=
"annotation"
expression=
"org.springframework.stereotype.Controller"
/>
</context:component-scan>
</context:component-scan>
<bean
id=
"propertyConfigurer"
class=
"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
>
<property
name=
"locations"
>
<list>
<value>
classpath:jdbc.properties
</value>
</list>
</property>
</bean>
<!-- 数据源配置, 使用DBCP数据库连接池 -->
<!-- 数据源配置, 使用DBCP数据库连接池 -->
<context:property-placeholder
location=
"classpath:jdbc.properties"
/>
<bean
id=
"dataSource"
class=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method=
"close"
>
<bean
id=
"dataSource"
class=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method=
"close"
>
<!-- Connection Info -->
<property
name=
"driverClassName"
value=
"${jdbc.driver}"
/>
<property
name=
"driverClassName"
value=
"${jdbc.driver}"
/>
<property
name=
"url"
value=
"${jdbc.url}"
/>
<property
name=
"url"
value=
"${jdbc.url}"
/>
<property
name=
"username"
value=
"${jdbc.username}"
/>
<property
name=
"username"
value=
"${jdbc.username}"
/>
<property
name=
"password"
value=
"${jdbc.password}"
/>
<property
name=
"password"
value=
"${jdbc.password}"
/>
<!-- Connection Pooling Info -->
<property
name=
"maxActive"
value=
"${dbcp.maxActive}"
/>
<property
name=
"maxActive"
value=
"${dbcp.maxActive}"
/>
<property
name=
"maxIdle"
value=
"${dbcp.maxIdle}"
/>
<property
name=
"maxIdle"
value=
"${dbcp.maxIdle}"
/>
<property
name=
"defaultAutoCommit"
value=
"false"
/>
<property
name=
"defaultAutoCommit"
value=
"false"
/>
...
@@ -49,15 +39,7 @@
...
@@ -49,15 +39,7 @@
<property
name=
"dataSource"
ref=
"dataSource"
/>
<property
name=
"dataSource"
ref=
"dataSource"
/>
<property
name=
"jpaVendorAdapter"
ref=
"hibernateJpaVendorAdapter"
/>
<property
name=
"jpaVendorAdapter"
ref=
"hibernateJpaVendorAdapter"
/>
<property
name=
"packagesToScan"
value=
"com.originspark.drp.models.**"
/>
<property
name=
"packagesToScan"
value=
"com.originspark.drp.models.**"
/>
<property
name=
"jpaProperties"
>
<property
name=
"persistenceXmlLocation"
value=
"classpath:META-INF/persistence.xml"
/>
<props>
<prop
key=
"hibernate.dialect"
>
${hibernate.dialect}
</prop>
<prop
key=
"hibernate.hbm2ddl.auto"
>
${hibernate.hbm2ddl.auto}
</prop>
<prop
key=
"hibernate.cache.region.factory_class"
>
org.hibernate.cache.ehcache.EhCacheRegionFactory
</prop>
<prop
key=
"net.sf.ehcache.configurationResourceName"
>
ehcache-hibernate-local.xml
</prop>
<prop
key=
"hibernate.ejb.naming_strategy"
>
org.hibernate.cfg.ImprovedNamingStrategy
</prop>
</props>
</property>
</bean>
</bean>
<bean
id=
"hibernateJpaVendorAdapter"
class=
"org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
/>
<bean
id=
"hibernateJpaVendorAdapter"
class=
"org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
/>
...
...
src/main/resources/ehcache-hibernate-local.xml
View file @
f13bce6f
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<ehcache>
<diskStore
path=
"java.io.tmpdir/hibernate/wms"
/>
<diskStore
path=
"java.io.tmpdir/hibernate/wms"
/>
<!-- DefaultCache setting. -->
<defaultCache
maxElementsInMemory=
"10000"
memoryStoreEvictionPolicy=
"LRU"
eternal=
"false"
<!-- DefaultCache setting. -->
timeToIdleSeconds=
"300"
timeToLiveSeconds=
"300"
overflowToDisk=
"false"
diskPersistent=
"false"
/>
<defaultCache
maxElementsInMemory=
"10000"
memoryStoreEvictionPolicy=
"LRU"
eternal=
"false"
timeToIdleSeconds=
"300"
timeToLiveSeconds=
"300"
overflowToDisk=
"false"
diskPersistent=
"false"
/>
</ehcache>
</ehcache>
src/main/resources/jdbc.properties
View file @
f13bce6f
#sql.type=h2
#jdbc h2
#jdbc.driver=org.h2.Driver
#jdbc.url=jdbc:h2:file:~/wms;AUTO_SERVER=TRUE
#jdbc.username=sa
#jdbc.password=
#hibernate.dialect=org.hibernate.dialect.H2Dialect
sql.type
=
mysql
jdbc.driver
=
com.mysql.jdbc.Driver
jdbc.driver
=
com.mysql.jdbc.Driver
jdbc.url
=
jdbc:mysql://localhost:3306/
drp?useUnicode=true&
characterEncoding=UTF-8
jdbc.url
=
jdbc:mysql://localhost:3306/
test?useUnicode=true&
characterEncoding=UTF-8
jdbc.username
=
root
jdbc.username
=
root
jdbc.password
=
jdbc.password
=
hibernate.dialect
=
org.hibernate.dialect.MySQL5InnoDBDialect
#hibernate settings
hibernate.hbm2ddl.auto
=
update
hibernate.show_sql
=
true
hibernate.format_sql
=
true
#dbcp settings
#dbcp settings
dbcp.initialSize
=
5
dbcp.initialSize
=
5
...
...
src/main/resources/sql/users.sql
View file @
f13bce6f
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2015-03-18 05:10:34
-- 服务器版本: 5.6.20
-- PHP Version: 5.5.15
SET
SQL_MODE
=
"NO_AUTO_VALUE_ON_ZERO"
;
SET
time_zone
=
"+00:00"
;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */
;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */
;
/*!40101 SET NAMES utf8 */
;
--
-- Database: `drp`
--
-- --------------------------------------------------------
--
-- 表的结构 `users`
--
CREATE
TABLE
IF
NOT
EXISTS
`users`
(
`id`
bigint
(
20
)
NOT
NULL
,
`created_by`
varchar
(
10
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`created_on`
datetime
NOT
NULL
,
`status`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`updated_by`
varchar
(
10
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`updated_on`
datetime
NOT
NULL
,
`address`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`code`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`email`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`gender`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`name`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`password`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`phone`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`type`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`username`
varchar
(
255
)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
COLLATE
=
utf8_unicode_ci
AUTO_INCREMENT
=
2
;
--
--
-- 转存表中的数据 `users`
-- 转存表中的数据 `users`
--
--
INSERT
INTO
`users`
(
`id`
,
`created_by`
,
`created_on`
,
`status`
,
`updated_by`
,
`updated_on`
,
`address`
,
`code`
,
`email`
,
`gender`
,
`name`
,
`password`
,
`phone`
,
`type`
,
`username`
)
VALUES
INSERT
INTO
`users`
(
`id`
,
`created_by`
,
`created_on`
,
`status`
,
`updated_by`
,
`updated_on`
,
`address`
,
`code`
,
`email`
,
`gender`
,
`name`
,
`password`
,
`phone`
,
`type`
,
`username`
)
VALUES
(
1
,
NULL
,
'2015-03-18 11:25:34'
,
'ACTIVE'
,
NULL
,
'2015-03-18 12:10:12'
,
''
,
'admin'
,
''
,
'MALE'
,
'admin'
,
'17a73b924892695ff91e16b35ce100b7c64928e43d5a170a'
,
'1324332345'
,
'MANAGER'
,
NULL
);
(
1
,
NULL
,
'2015-03-18 11:25:34'
,
'ACTIVE'
,
NULL
,
'2015-03-18 12:10:12'
,
''
,
'admin'
,
''
,
'MALE'
,
'admin'
,
'17a73b924892695ff91e16b35ce100b7c64928e43d5a170a'
,
'1324332345'
,
'MANAGER'
,
NULL
);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `users`
--
ALTER
TABLE
`users`
ADD
PRIMARY
KEY
(
`id`
);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `users`
--
ALTER
TABLE
`users`
MODIFY
`id`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
,
AUTO_INCREMENT
=
2
;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */
;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */
;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
;
src/main/webapp/WEB-INF/web.xml
View file @
f13bce6f
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns=
"http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version=
"2.5"
>
<web-app
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns=
"http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
<display-name>
smart-nav
</display-name>
version=
"2.5"
>
<context-param>
<display-name>
smart-nav
</display-name>
<param-name>
contextConfigLocation
</param-name>
<context-param>
<param-value>
classpath*:applicationContext.xml
</param-value>
<param-name>
contextConfigLocation
</param-name>
</context-param>
<param-value>
classpath*:context.xml
</param-value>
<listener>
</context-param>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
<listener>
</listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
<filter>
</listener>
<filter-name>
encodingFilter
</filter-name>
<filter>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<filter-name>
encodingFilter
</filter-name>
<init-param>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<param-name>
encoding
</param-name>
<init-param>
<param-value>
UTF-8
</param-value>
<param-name>
encoding
</param-name>
</init-param>
<param-value>
UTF-8
</param-value>
<init-param>
</init-param>
<param-name>
forceEncoding
</param-name>
<init-param>
<param-value>
true
</param-value>
<param-name>
forceEncoding
</param-name>
</init-param>
<param-value>
true
</param-value>
</filter>
</init-param>
<filter-mapping>
</filter>
<filter-name>
encodingFilter
</filter-name>
<filter-mapping>
<url-pattern>
/*
</url-pattern>
<filter-name>
encodingFilter
</filter-name>
</filter-mapping>
<url-pattern>
/*
</url-pattern>
<filter>
</filter-mapping>
<filter-name>
openEntityManagerInViewFilter
</filter-name>
<filter>
<filter-class>
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
</filter-class>
<filter-name>
openEntityManagerInViewFilter
</filter-name>
</filter>
<filter-class>
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
</filter-class>
<filter-mapping>
</filter>
<filter-name>
openEntityManagerInViewFilter
</filter-name>
<filter-mapping>
<url-pattern>
/*
</url-pattern>
<filter-name>
openEntityManagerInViewFilter
</filter-name>
</filter-mapping>
<url-pattern>
/*
</url-pattern>
<servlet>
</filter-mapping>
<servlet-name>
springServlet
</servlet-name>
<servlet>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<servlet-name>
springServlet
</servlet-name>
<init-param>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<param-name>
contextConfigLocation
</param-name>
<init-param>
<param-value>
/WEB-INF/spring-mvc.xml
</param-value>
<param-name>
contextConfigLocation
</param-name>
</init-param>
<param-value>
/WEB-INF/spring-mvc.xml
</param-value>
<load-on-startup>
1
</load-on-startup>
</init-param>
</servlet>
<load-on-startup>
1
</load-on-startup>
<servlet-mapping>
</servlet>
<servlet-name>
springServlet
</servlet-name>
<servlet-mapping>
<url-pattern>
/
</url-pattern>
<servlet-name>
springServlet
</servlet-name>
</servlet-mapping>
<url-pattern>
/
</url-pattern>
<session-config>
</servlet-mapping>
<session-timeout>
60
</session-timeout>
<session-config>
</session-config>
<session-timeout>
60
</session-timeout>
<filter>
</session-config>
<filter-name>
HiddenHttpMethodFilter
</filter-name>
<filter>
<filter-class>
org.springframework.web.filter.HiddenHttpMethodFilter
</filter-class>
<filter-name>
HiddenHttpMethodFilter
</filter-name>
</filter>
<filter-class>
org.springframework.web.filter.HiddenHttpMethodFilter
</filter-class>
<filter-mapping>
</filter>
<filter-name>
HiddenHttpMethodFilter
</filter-name>
<filter-mapping>
<servlet-name>
springServlet
</servlet-name>
<filter-name>
HiddenHttpMethodFilter
</filter-name>
</filter-mapping>
<servlet-name>
springServlet
</servlet-name>
<error-page>
</filter-mapping>
<error-code>
404
</error-code>
<error-page>
<location>
/common/error.jsp
</location>
<error-code>
404
</error-code>
</error-page>
<location>
/common/error.jsp
</location>
<error-page>
</error-page>
<error-code>
400
</error-code>
<error-page>
<location>
/common/error.jsp
</location>
<error-code>
400
</error-code>
</error-page>
<location>
/common/error.jsp
</location>
<error-page>
</error-page>
<error-code>
500
</error-code>
<error-page>
<location>
/common/500.jsp
</location>
<error-code>
500
</error-code>
</error-page>
<location>
/common/500.jsp
</location>
<!-- 由Tomcat的defaultServlet来处理静态文件 -->
</error-page>
<servlet-mapping>
<!-- 由Tomcat的defaultServlet来处理静态文件 -->
<servlet-name>
default
</servlet-name>
<servlet-mapping>
<url-pattern>
*.css
</url-pattern>
<servlet-name>
default
</servlet-name>
</servlet-mapping>
<url-pattern>
*.css
</url-pattern>
<servlet-mapping>
</servlet-mapping>
<servlet-name>
default
</servlet-name>
<servlet-mapping>
<url-pattern>
*.js
</url-pattern>
<servlet-name>
default
</servlet-name>
</servlet-mapping>
<url-pattern>
*.js
</url-pattern>
<servlet-mapping>
</servlet-mapping>
<servlet-name>
default
</servlet-name>
<servlet-mapping>
<url-pattern>
*.gif
</url-pattern>
<servlet-name>
default
</servlet-name>
</servlet-mapping>
<url-pattern>
*.gif
</url-pattern>
<servlet-mapping>
</servlet-mapping>
<servlet-name>
default
</servlet-name>
<servlet-mapping>
<url-pattern>
*.png
</url-pattern>
<servlet-name>
default
</servlet-name>
</servlet-mapping>
<url-pattern>
*.png
</url-pattern>
<servlet-mapping>
</servlet-mapping>
<servlet-name>
default
</servlet-name>
<servlet-mapping>
<url-pattern>
*.jpg
</url-pattern>
<servlet-name>
default
</servlet-name>
</servlet-mapping>
<url-pattern>
*.jpg
</url-pattern>
</servlet-mapping>
</web-app>
</web-app>
\ No newline at end of file
src/main/webapp/drp/app/controller/projects/ProjectController.js
deleted
100644 → 0
View file @
4365dd18
/**
* @author allenjin
*/
Ext
.
define
(
"
drp.app.controller.projects.ProjectController
"
,
{
extend
:
"
drp.app.controller.AbstractController
"
,
projectTreePanel
:
null
,
me
:
null
,
init
:
function
()
{
me
=
this
;
this
.
control
({
'
projectview
'
:
{
afterrender
:
function
(
panel
)
{
projectTreePanel
=
panel
.
down
(
'
treepanel
'
);
var
store
=
projectTreePanel
.
getStore
();
store
.
load
({
node
:
store
.
getRootNode
()
});
}
},
// 查询项目
'
projectview button[action=searchProject]
'
:
{
click
:
this
.
searchProject
},
// 增加项目
'
projectview button[action=addProject]
'
:
{
click
:
this
.
showCreateProjectForm
},
// 添加系统
'
projectview button[action=addSystem]
'
:
{
click
:
this
.
showCreateSystemForm
},
// 更新项目
'
projectview > treepanel
'
:
{
itemdblclick
:
this
.
showUpdateProjectOrSystemForm
,
itemclick
:
function
(
tree
,
record
,
item
,
index
,
e
,
eOpts
)
{
tree
.
toggleOnDblClick
=
false
;
}
},
// 删除项目
'
projectview button[action=deleteProject]
'
:
{
click
:
this
.
deleteProject
},
'
projectviewform button[action=submitProjectForm]
'
:
{
click
:
this
.
submitProjectForm
},
'
projectviewform button[action=closeProjectForm]
'
:
{
click
:
this
.
closeProjectForm
},
'
systemviewform button[action=submitSystemForm]
'
:
{
click
:
this
.
submitProjectForm
},
'
systemviewform button[action=closeSystemForm]
'
:
{
click
:
this
.
closeSystemForm
}
});
},
showCreateProjectForm
:
function
(
btn
)
{
var
projectForm
=
Ext
.
widget
(
"
projectviewform
"
);
AlertWin
.
alert
(
'
新增项目
'
,
null
,
projectForm
,
450
,
240
);
},
showCreateSystemForm
:
function
(
btn
){
var
record
=
projectTreePanel
.
getSelectionModel
().
getSelection
()[
0
];
if
(
!
record
||
record
.
data
.
leaf
)
{
Ext
.
MessageBox
.
show
({
title
:
"
提示
"
,
msg
:
"
请先选择项目!
"
,
icon
:
Ext
.
MessageBox
.
INFO
,
buttons
:
Ext
.
Msg
.
OK
});
return
;
}
var
systemForm
=
Ext
.
widget
(
"
systemviewform
"
);
//设置项目名称
var
project
=
record
;
systemForm
.
down
(
'
#projectId
'
).
setValue
(
project
.
data
.
id
);
systemForm
.
down
(
'
#projectName
'
).
setValue
(
project
.
data
.
name
);
AlertWin
.
alert
(
'
添加系统
'
,
null
,
systemForm
,
450
,
180
);
},
showUpdateProjectOrSystemForm
:
function
(
grid
,
record
,
item
,
index
,
e
,
eopts
)
{
if
(
!
record
)
{
me
.
showPromptsOnUpdate
(
"
数据
"
);
return
;
}
else
{
//如果是系统
if
(
record
.
isLeaf
()){
var
systemForm
=
Ext
.
widget
(
"
systemviewform
"
);
if
(
!
record
)
{
me
.
showPromptsOnUpdate
(
"
系统
"
);
return
;
}
else
{
systemForm
.
down
(
'
form
'
).
loadRecord
(
record
);
//设置项目名称
var
project
=
record
.
parentNode
;
systemForm
.
down
(
'
#projectId
'
).
setValue
(
project
.
data
.
id
);
systemForm
.
down
(
'
#projectName
'
).
setValue
(
project
.
data
.
name
);
AlertWin
.
alert
(
'
修改系统
'
,
null
,
systemForm
,
450
,
180
);
}
//如果是项目
}
else
{
var
projectForm
=
Ext
.
widget
(
"
projectviewform
"
);
if
(
!
record
)
{
me
.
showPromptsOnUpdate
(
"
项目
"
);
return
;
}
else
{
//在弹出更新项目的form前,需要设置下面三部分内容
projectForm
.
down
(
'
form
'
).
loadRecord
(
record
);
//1.设置项目经理
var
projectManagerRecord
=
Ext
.
create
(
"
drp.app.model.users.ProjectManagerModel
"
,
{
id
:
record
.
data
.
projectManager
.
id
,
name
:
record
.
data
.
projectManager
.
name
});
projectForm
.
down
(
'
#projectManager_cb
'
).
setValue
(
projectManagerRecord
);
//2.设置库管员
var
WareKeeperRecord
=
Ext
.
create
(
"
drp.app.model.users.WareKeeperModel
"
,
{
id
:
record
.
data
.
wareKeeper
.
id
,
name
:
record
.
data
.
wareKeeper
.
name
});
projectForm
.
down
(
'
#wareKeeper_cb
'
).
setValue
(
WareKeeperRecord
);
//3.设置材料员
var
MaterialKeeperRecord
=
Ext
.
create
(
"
drp.app.model.users.MaterialKeeperModel
"
,
{
id
:
record
.
data
.
materialKeeper
.
id
,
name
:
record
.
data
.
materialKeeper
.
name
});
projectForm
.
down
(
'
#materialKeeper_cb
'
).
setValue
(
MaterialKeeperRecord
);
AlertWin
.
alert
(
'
修改项目
'
,
null
,
projectForm
,
450
,
240
);
}
}
}
},
deleteProject
:
function
(
btn
)
{
var
record
=
projectTreePanel
.
getSelectionModel
().
getSelection
()[
0
];
if
(
!
record
)
{
me
.
showPromptsOnDelete
(
name
);
return
;
}
else
{
Ext
.
MessageBox
.
confirm
(
"
标题
"
,
"
你要删除这个项目吗?
"
,
function
(
btn
)
{
if
(
btn
==
'
yes
'
)
{
me
.
destroyTreeNode
(
record
,
{
success
:
function
(
records
,
operation
)
{
projectTreePanel
.
getSelectionModel
().
deselectAll
();
projectTreePanel
.
getStore
().
load
();
Ext
.
Msg
.
alert
(
"
成功!
"
,
operation
.
request
.
scope
.
reader
.
jsonData
[
"
message
"
]);
},
failure
:
function
(
records
,
operation
)
{
Ext
.
Msg
.
alert
(
"
失败!
"
,
operation
.
request
.
scope
.
reader
.
jsonData
[
"
message
"
]);
}
});
}
});
}
},
submitProjectForm
:
function
(
btn
)
{
var
modelName
=
"
drp.app.model.projects.ProjectModel
"
;
var
form
=
btn
.
up
(
'
form
'
).
getForm
();
if
(
form
.
isValid
())
{
var
formBean
=
form
.
getValues
();
var
model
=
Ext
.
create
(
modelName
,
formBean
);
model
.
set
(
"
projectManager
"
,
formBean
[
'
projectManager.id
'
]);
model
.
set
(
"
wareKeeper
"
,
formBean
[
'
wareKeeper.id
'
]);
model
.
set
(
"
materialKeeper
"
,
formBean
[
'
materialKeeper.id
'
]);
me
.
saveModel
(
model
,
projectTreePanel
);
}
},
closeProjectForm
:
function
(
btn
)
{
me
.
closeForm
();
},
closeSystemForm
:
function
(
btn
)
{
me
.
closeForm
();
},
searchProject
:
function
(
btn
)
{
var
store
=
projectTreePanel
.
getStore
();
store
.
filters
.
clear
();
store
.
filter
([
{
property
:
"
name
"
,
value
:
Ext
.
getCmp
(
"
projectName_filter
"
).
getValue
()
},
{
property
:
"
code
"
,
value
:
Ext
.
getCmp
(
"
projectCode_filter
"
).
getValue
()
},
{
property
:
"
city
"
,
value
:
Ext
.
getCmp
(
"
projectCity_filter
"
).
getValue
()
},
{
property
:
"
startDate
"
,
value
:
Ext
.
getCmp
(
"
projectStartDate_filter
"
).
getValue
()
},
{
property
:
"
endDate
"
,
value
:
Ext
.
getCmp
(
"
projectEndDate_filter
"
).
getValue
()
}
]);
},
models
:
[
"
drp.app.model.projects.ProjectModel
"
,
"
drp.app.model.users.ProjectManagerModel
"
,
"
drp.app.model.users.WareKeeperModel
"
,
"
drp.app.model.users.MaterialKeeperModel
"
],
stores
:
[
"
drp.app.store.projects.ProjectStore
"
,
"
drp.app.store.users.ProjectManagerStore
"
,
"
drp.app.store.users.MaterialKeeperStore
"
,
"
drp.app.store.users.WareKeeperStore
"
],
views
:
[
"
drp.app.view.projects.ProjectView
"
,
"
drp.app.view.projects.ProjectViewForm
"
,
"
drp.app.view.projects.SystemViewForm
"
]
});
\ No newline at end of file
src/main/webapp/drp/app/model/projects/ProjectModel.js
deleted
100644 → 0
View file @
4365dd18
/**
* @author allenjin
*/
Ext
.
define
(
"
drp.app.model.projects.ProjectModel
"
,
{
extend
:
"
drp.app.model.AbstractModel
"
,
fields
:
[{
name
:
"
name
"
// 项目名称
},
{
name
:
"
code
"
// 项目编号
},
{
name
:
"
city
"
//项目所在城市
},
{
name
:
"
startDate
"
// 开工时间
},
{
name
:
"
endDate
"
// 竣工时间
},
{
name
:
"
projectName
"
,
persist
:
false
},
{
name
:
'
projectManager
'
,
type
:
'
auto
'
},
{
name
:
'
wareKeeper
'
,
type
:
'
auto
'
},
{
name
:
'
materialKeeper
'
,
type
:
'
auto
'
}],
proxy
:
{
type
:
'
rest
'
,
url
:
'
project
'
,
reader
:
{
type
:
"
json
"
,
root
:
"
data
"
,
successProperty
:
'
success
'
},
writer
:
{
type
:
"
json
"
},
listeners
:
{
exception
:
function
(
proxy
,
response
,
operation
)
{
Ext
.
MessageBox
.
show
({
title
:
'
错误
'
,
msg
:
"
数据加载错误,请尝试刷新页面
"
,
icon
:
Ext
.
MessageBox
.
ERROR
,
buttons
:
Ext
.
Msg
.
OK
});
}
}
}
});
\ No newline at end of file
src/main/webapp/drp/app/store/projects/ProjectDataStore.js
deleted
100644 → 0
View file @
4365dd18
Ext
.
define
(
"
drp.app.store.projects.ProjectDataStore
"
,
{
extend
:
'
drp.app.store.AbstractStore
'
,
model
:
'
drp.app.model.projects.ProjectModel
'
});
\ No newline at end of file
src/main/webapp/drp/app/store/projects/ProjectStore.js
deleted
100644 → 0
View file @
4365dd18
/**
* @author reed mi
*/
Ext
.
define
(
"
drp.app.store.projects.ProjectStore
"
,
{
extend
:
'
Ext.data.TreeStore
'
,
model
:
'
drp.app.model.projects.ProjectModel
'
,
defaultRootId
:
''
,
root
:
{
data
:
[]}
});
\ No newline at end of file
src/main/webapp/drp/app/view/projects/ProjectView.js
deleted
100644 → 0
View file @
4365dd18
/**
* @author allenjin
*/
Ext
.
define
(
'
drp.app.view.projects.ProjectView
'
,
{
extend
:
'
Ext.panel.Panel
'
,
alias
:
'
widget.projectview
'
,
margins
:
'
0 0 0 0
'
,
border
:
0
,
title
:
'
<center height=40>项目列表</center>
'
,
autoScroll
:
true
,
closable
:
true
,
layout
:
{
type
:
'
border
'
},
initComponent
:
function
()
{
var
me
=
this
;
// var selModel = Ext.create('Ext.selection.CheckboxModel', {
// listeners : {
// selectionchange : function(sm, selections) {
// me.down('#deleteProject_btn').setDisabled(selections.length == 0);
// }
// }
// });
Ext
.
applyIf
(
me
,
{
items
:
[
// {
// xtype : 'panel',
// region : 'north',
// title : '查询',
// collapsible : true,
// items : [ {
// xtype : 'form',
// items : [{
// xtype : 'fieldcontainer',
// layout : 'column',
// items : [ {
// xtype : 'textfield',
// margin : '5 0 0 10',
// id: 'projectName_filter',
// fieldLabel : '项目名称'
// }, {
// xtype : 'textfield',
// margin : '5 0 0 15',
// id: 'projectCode_filter',
// fieldLabel : '项目编码'
// } ]
// }, {
// xtype : 'fieldcontainer',
// layout : 'column',
// items : [ {
// xtype : 'datefield',
// margin : '5 0 0 10',
// id: 'projectStartDate_filter',
// fieldLabel : '开工时间'
// }, {
// xtype : 'datefield',
// margin : '5 0 0 15',
// id: 'projectEndDate_filter',
// fieldLabel : '竣工时间'
// }, {
// xtype : 'textfield',
// margin : '5 0 0 10',
// id: 'projectCity_filter',
// fieldLabel : '城市'
// }, {
// xtype : 'button',
// margin : '5 0 0 20',
// action : 'searchProject',
// icon : 'resources/images/icons/search.png',
// text : '查询'
// } ]
// } ]
// } ]
// },
{
xtype
:
'
treepanel
'
,
region
:
'
center
'
,
rootVisible
:
false
,
autoScroll
:
true
,
columnLines
:
true
,
rowLines
:
true
,
// selModel : selModel,
viewConfig
:
{
// 防止在刷新节点后默认回到最top
preserveScrollOnRefresh
:
false
},
store
:
"
drp.app.store.projects.ProjectStore
"
,
columns
:
[{
xtype
:
'
treecolumn
'
,
width
:
200
,
dataIndex
:
'
name
'
,
text
:
'
项目名称
'
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
code
'
,
text
:
'
项目编号
'
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
projectManager
'
,
text
:
'
项目经理
'
,
renderer
:
function
(
value
,
metadata
,
record
)
{
if
(
record
.
isLeaf
())
{
return
""
;
}
else
{
return
value
==
null
?
""
:(
value
.
name
);
}
}
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
wareKeeper
'
,
text
:
'
库管员
'
,
renderer
:
function
(
value
,
metadata
,
record
)
{
if
(
record
.
isLeaf
())
{
return
""
;
}
else
{
return
value
==
null
?
""
:(
value
.
name
);
}
}
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
materialKeeper
'
,
text
:
'
材料员
'
,
renderer
:
function
(
value
,
metadata
,
record
)
{
if
(
record
.
isLeaf
())
{
return
""
;
}
else
{
return
value
==
null
?
""
:(
value
.
name
);
}
}
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
city
'
,
text
:
'
城市
'
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
startDate
'
,
text
:
'
开工时间
'
},
{
xtype
:
'
gridcolumn
'
,
width
:
100
,
dataIndex
:
'
endDate
'
,
text
:
'
竣工时间
'
},
{
xtype
:
'
gridcolumn
'
,
width
:
140
,
dataIndex
:
'
createOn
'
,
text
:
'
创建时间
'
},
{
xtype
:
'
gridcolumn
'
,
width
:
140
,
dataIndex
:
'
updateOn
'
,
text
:
'
更新时间
'
}],
listeners
:
{
'
selectionchange
'
:
function
(
model
,
selected
){
me
.
down
(
'
#deleteProject_btn
'
).
setDisabled
(
selected
.
length
==
0
);
}
},
dockedItems
:
[{
xtype
:
'
toolbar
'
,
dock
:
'
top
'
,
items
:
[{
xtype
:
'
button
'
,
icon
:
'
resources/images/icons/add.png
'
,
action
:
'
addProject
'
,
text
:
'
新增项目
'
},
'
-
'
,
{
xtype
:
'
button
'
,
icon
:
'
resources/images/icons/add.png
'
,
action
:
'
addSystem
'
,
text
:
'
新增系统
'
},
'
-
'
,
{
xtype
:
'
button
'
,
icon
:
'
resources/images/icons/delete.png
'
,
action
:
'
deleteProject
'
,
itemId
:
"
deleteProject_btn
"
,
disabled
:
true
,
text
:
'
删除
'
}]
}]
}]
});
me
.
callParent
(
arguments
);
}
});
\ No newline at end of file
src/main/webapp/drp/app/view/projects/ProjectViewForm.js
deleted
100644 → 0
View file @
4365dd18
/**
* @author allenjin
*/
Ext
.
define
(
"
drp.app.view.projects.ProjectViewForm
"
,
{
extend
:
'
Ext.panel.Panel
'
,
alias
:
'
widget.projectviewform
'
,
author
:
'
100%
'
,
autoScroll
:
true
,
items
:
[{
xtype
:
'
form
'
,
items
:
[{
xtype
:
'
textfield
'
,
hidden
:
true
,
name
:
'
id
'
},
{
xtype
:
'
textfield
'
,
anchor
:
'
95%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
name
'
,
allowBlank
:
false
,
fieldLabel
:
'
项目名称<font color="red">*</font>
'
},
{
xtype
:
'
textfield
'
,
anchor
:
'
95%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
code
'
,
allowBlank
:
false
,
fieldLabel
:
'
项目编号<font color="red">*</font>
'
},
{
xtype
:
'
combobox
'
,
anchor
:
'
90%
'
,
margin
:
'
5 0 0 5
'
,
allowBlank
:
false
,
editable
:
false
,
itemId
:
'
projectManager_cb
'
,
name
:
'
projectManager.id
'
,
displayField
:
"
name
"
,
valueField
:
"
id
"
,
fieldLabel
:
'
项目经理<font color="red">*</font>
'
,
store
:
Ext
.
create
(
"
Ext.data.Store
"
,{
model
:
'
drp.app.model.users.ProjectManagerModel
'
,
autoLoad
:
false
}),
listeners
:
{
afterrender
:
function
(
cb
){
var
store
=
cb
.
getStore
();
store
.
filters
.
clear
();
store
.
filter
([
{
property
:
"
status
"
,
value
:
"
ACTIVE
"
}]);
}
}
},
{
xtype
:
'
combobox
'
,
anchor
:
'
90%
'
,
margin
:
'
5 0 0 5
'
,
allowBlank
:
false
,
editable
:
false
,
itemId
:
'
wareKeeper_cb
'
,
name
:
'
wareKeeper.id
'
,
displayField
:
"
name
"
,
valueField
:
"
id
"
,
fieldLabel
:
'
库管员<font color="red">*</font>
'
,
store
:
Ext
.
create
(
"
Ext.data.Store
"
,{
model
:
'
drp.app.model.users.WareKeeperModel
'
,
autoLoad
:
false
}),
listeners
:
{
afterrender
:
function
(
cb
){
var
store
=
cb
.
getStore
();
store
.
filters
.
clear
();
store
.
filter
([
{
property
:
"
status
"
,
value
:
"
ACTIVE
"
}]);
}
}
},
{
xtype
:
'
combobox
'
,
anchor
:
'
90%
'
,
margin
:
'
5 0 0 5
'
,
allowBlank
:
false
,
editable
:
false
,
itemId
:
'
materialKeeper_cb
'
,
name
:
'
materialKeeper.id
'
,
displayField
:
"
name
"
,
valueField
:
"
id
"
,
fieldLabel
:
'
材料员<font color="red">*</font>
'
,
store
:
Ext
.
create
(
"
Ext.data.Store
"
,{
model
:
'
drp.app.model.users.MaterialKeeperModel
'
,
autoLoad
:
false
}),
listeners
:
{
afterrender
:
function
(
cb
){
var
store
=
cb
.
getStore
();
store
.
filters
.
clear
();
store
.
filter
([
{
property
:
"
status
"
,
value
:
"
ACTIVE
"
}]);
}
}
},
{
xtype
:
'
textfield
'
,
anchor
:
'
70%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
city
'
,
fieldLabel
:
'
城市
'
},
{
xtype
:
'
datefield
'
,
anchor
:
'
70%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
startDate
'
,
format
:
'
Y-m-d
'
,
editable
:
false
,
fieldLabel
:
'
开工时间
'
},{
xtype
:
'
datefield
'
,
anchor
:
'
70%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
endDate
'
,
format
:
'
Y-m-d
'
,
editable
:
false
,
fieldLabel
:
'
竣工时间
'
},
{
xtype
:
'
fieldcontainer
'
,
height
:
30
,
anchor
:
'
95%
'
,
margin
:
'
5 0 10 5
'
,
style
:
'
text-align:center
'
,
items
:
[{
xtype
:
'
button
'
,
margin
:
'
5 0 0 5
'
,
action
:
'
submitProjectForm
'
,
width
:
80
,
formBind
:
true
,
text
:
'
确认
'
},
{
xtype
:
'
button
'
,
margin
:
'
5 0 0 5
'
,
action
:
'
closeProjectForm
'
,
width
:
80
,
text
:
'
取消
'
}]
}]
}]
});
src/main/webapp/drp/app/view/projects/SystemViewForm.js
deleted
100644 → 0
View file @
4365dd18
/**
* @author reed mi
*/
Ext
.
define
(
"
drp.app.view.projects.SystemViewForm
"
,
{
extend
:
'
Ext.panel.Panel
'
,
alias
:
'
widget.systemviewform
'
,
author
:
'
100%
'
,
autoScroll
:
true
,
items
:
[{
xtype
:
'
form
'
,
items
:
[{
xtype
:
'
textfield
'
,
hidden
:
true
,
name
:
'
id
'
},
{
xtype
:
'
textfield
'
,
hidden
:
true
,
itemId
:
'
projectId
'
,
name
:
'
parentId
'
},
{
xtype
:
'
displayfield
'
,
margin
:
'
5 0 0 5
'
,
anchor
:
'
100%
'
,
itemId
:
'
projectName
'
,
fieldLabel
:
'
项目名称<font color="red">*</font>
'
},
{
xtype
:
'
textfield
'
,
anchor
:
'
95%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
name
'
,
allowBlank
:
false
,
fieldLabel
:
'
系统名称<font color="red">*</font>
'
},
{
xtype
:
'
textfield
'
,
anchor
:
'
95%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
code
'
,
allowBlank
:
false
,
fieldLabel
:
'
系统编号<font color="red">*</font>
'
},
{
xtype
:
'
textfield
'
,
anchor
:
'
70%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
city
'
,
fieldLabel
:
'
城市
'
},
{
xtype
:
'
datefield
'
,
anchor
:
'
70%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
startDate
'
,
format
:
'
Y-m-d
'
,
editable
:
false
,
fieldLabel
:
'
开工时间
'
},{
xtype
:
'
datefield
'
,
anchor
:
'
70%
'
,
margin
:
'
5 0 0 5
'
,
name
:
'
endDate
'
,
format
:
'
Y-m-d
'
,
editable
:
false
,
fieldLabel
:
'
竣工时间
'
},
{
xtype
:
'
fieldcontainer
'
,
height
:
30
,
anchor
:
'
95%
'
,
margin
:
'
5 0 10 5
'
,
style
:
'
text-align:center
'
,
items
:
[{
xtype
:
'
button
'
,
margin
:
'
5 0 0 5
'
,
action
:
'
submitSystemForm
'
,
width
:
80
,
formBind
:
true
,
text
:
'
确认
'
},
{
xtype
:
'
button
'
,
margin
:
'
5 0 0 5
'
,
action
:
'
closeSystemForm
'
,
width
:
80
,
text
:
'
取消
'
}]
}]
}]
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment