Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
2dff6362
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 1 年多
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2dff6362
编写于
3月 25, 2016
作者:
Z
zhang.xin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完成注册,登陆功能
上级
b9cb01c4
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
931 addition
and
307 deletion
+931
-307
skywalking-webui/pom.xml
skywalking-webui/pom.xml
+116
-111
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/common/BaseController.java
...va/com/ai/cloud/skywalking/web/common/BaseController.java
+14
-3
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/AnalysisResultController.java
...d/skywalking/web/controller/AnalysisResultController.java
+0
-7
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/CallChainViewController.java
...ud/skywalking/web/controller/CallChainViewController.java
+0
-17
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/PortalController.java
.../ai/cloud/skywalking/web/controller/PortalController.java
+3
-3
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/UserController.java
...om/ai/cloud/skywalking/web/controller/UserController.java
+0
-7
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/UserMaintainController.java
...oud/skywalking/web/controller/UserMaintainController.java
+104
-0
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/impl/UserMaintainDao.java
...com/ai/cloud/skywalking/web/dao/impl/UserMaintainDao.java
+80
-0
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/inter/IUserMaintainDao.java
...m/ai/cloud/skywalking/web/dao/inter/IUserMaintainDao.java
+13
-0
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/util/DBConnectUtil.java
.../java/com/ai/cloud/skywalking/web/util/DBConnectUtil.java
+49
-0
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/vo/LoginUserInfo.java
...in/java/com/ai/cloud/skywalking/web/vo/LoginUserInfo.java
+1
-1
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/vo/SignInUserInfo.java
...n/java/com/ai/cloud/skywalking/web/vo/SignInUserInfo.java
+7
-0
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/vo/UserInfo.java
...rc/main/java/com/ai/cloud/skywalking/web/vo/UserInfo.java
+70
-0
skywalking-webui/src/main/resources/spring/springmvc-servlet.xml
...ing-webui/src/main/resources/spring/springmvc-servlet.xml
+5
-2
skywalking-webui/src/main/webapp/node_modules/skywalking/img/logo.png
...ebui/src/main/webapp/node_modules/skywalking/img/logo.png
+0
-0
skywalking-webui/src/main/webapp/node_modules/skywalking/js/jquery-md5.js
.../src/main/webapp/node_modules/skywalking/js/jquery-md5.js
+250
-0
skywalking-webui/src/main/webapp/pages/analysis/summary.ftl
skywalking-webui/src/main/webapp/pages/analysis/summary.ftl
+0
-29
skywalking-webui/src/main/webapp/pages/common/commons.ftl
skywalking-webui/src/main/webapp/pages/common/commons.ftl
+5
-0
skywalking-webui/src/main/webapp/pages/commons/commons.ftl
skywalking-webui/src/main/webapp/pages/commons/commons.ftl
+0
-40
skywalking-webui/src/main/webapp/pages/index.ftl
skywalking-webui/src/main/webapp/pages/index.ftl
+38
-24
skywalking-webui/src/main/webapp/pages/searchResult.ftl
skywalking-webui/src/main/webapp/pages/searchResult.ftl
+0
-28
skywalking-webui/src/main/webapp/pages/usr/login.ftl
skywalking-webui/src/main/webapp/pages/usr/login.ftl
+79
-35
skywalking-webui/src/main/webapp/pages/usr/register.ftl
skywalking-webui/src/main/webapp/pages/usr/register.ftl
+97
-0
未找到文件。
skywalking-webui/pom.xml
浏览文件 @
2dff6362
<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/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-webui
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<url>
http://maven.apache.org
</url>
<packaging>
war
</packaging>
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-webui
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<url>
http://maven.apache.org
</url>
<packaging>
war
</packaging>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.spring.version>
4.1.6.RELEASE
</project.spring.version>
</properties>
<build>
<finalName>
skywalking
</finalName>
<plugins>
<plugin>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.7
</source>
<target>
1.7
</target>
<encoding>
${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<version>
2.4.3
</version>
<configuration>
<encoding>
${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.spring.version>
4.1.6.RELEASE
</project.spring.version>
</properties>
<build>
<finalName>
skywalking
</finalName>
<plugins>
<plugin>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.7
</source>
<target>
1.7
</target>
<encoding>
${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<version>
2.4.3
</version>
<configuration>
<encoding>
${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-protocol
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<version>
${project.spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-jdbc
</artifactId>
<version>
${project.spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context-support
</artifactId>
<version>
${project.spring.version}
</version>
</dependency>
<dependencies>
<dependency>
<groupId>
com.ai.cloud
</groupId>
<artifactId>
skywalking-protocol
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker-gae
</artifactId>
<version>
2.3.23
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.23
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<version>
${project.spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-jdbc
</artifactId>
<version>
${project.spring.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context-support
</artifactId>
<version>
${project.spring.version}
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.7
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker-gae
</artifactId>
<version>
2.3.23
</version>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.23
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.7
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-core
</artifactId>
<version>
2.2
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-1.2-api
</artifactId>
<version>
2.2
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-slf4j-impl
</artifactId>
<version>
2.2
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-core
</artifactId>
<version>
2.2
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-1.2-api
</artifactId>
<version>
2.2
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-slf4j-impl
</artifactId>
<version>
2.2
</version>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
javax.servlet-api
</artifactId>
<version>
3.1.0
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.36
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-dbcp2
</artifactId>
<version>
2.0
</version>
</dependency>
<dependency>
<groupId>
org.apache.hbase
</groupId>
<artifactId>
hbase-client
</artifactId>
<version>
1.1.2
</version>
</dependency>
<dependency>
<groupId>
org.aspectj
</groupId>
<artifactId>
aspectjweaver
</artifactId>
<version>
1.8.7
</version>
</dependency>
<dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
javax.servlet-api
</artifactId>
<version>
3.1.0
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.36
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-dbcp2
</artifactId>
<version>
2.0
</version>
</dependency>
<dependency>
<groupId>
org.apache.hbase
</groupId>
<artifactId>
hbase-client
</artifactId>
<version>
1.1.2
</version>
</dependency>
<dependency>
<groupId>
org.aspectj
</groupId>
<artifactId>
aspectjweaver
</artifactId>
<version>
1.8.7
</version>
</dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
<version>
2.2.2
</version>
</dependency>
</dependencies>
<dependency>
<groupId>
com.zaxxer
</groupId>
<artifactId>
HikariCP
</artifactId>
<version>
2.4.3
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/common/BaseController.java
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.common
;
/**
* Created by xin on 16-3-19.
*/
import
org.springframework.ui.ModelMap
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
public
class
BaseController
{
@ModelAttribute
public
void
initPath
(
HttpServletRequest
request
,
HttpServletResponse
response
,
ModelMap
model
)
{
String
base
=
request
.
getContextPath
();
String
fullPath
=
request
.
getScheme
()
+
"://"
+
request
.
getServerName
()
+
":"
+
request
.
getServerPort
()
+
base
;
model
.
addAttribute
(
"_base"
,
base
);
}
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/AnalysisResultController.java
已删除
100644 → 0
浏览文件 @
b9cb01c4
package
com.ai.cloud.skywalking.web.controller
;
/**
* Created by xin on 16-3-21.
*/
public
class
AnalysisResultController
{
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/CallChainViewController.java
已删除
100644 → 0
浏览文件 @
b9cb01c4
package
com.ai.cloud.skywalking.web.controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
* Created by xin on 16-3-19.
*/
@Controller
@RequestMapping
(
"/trace"
)
public
class
CallChainViewController
{
@RequestMapping
(
"/view"
)
public
String
view
(){
return
""
;
}
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/PortalController.java
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.controller
;
import
com.
sun.org.apache.xpath.internal.operations.String
;
import
com.
ai.cloud.skywalking.web.common.BaseController
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@Controller
public
class
PortalController
{
public
class
PortalController
extends
BaseController
{
@RequestMapping
(
"/index"
)
public
String
index
()
{
return
null
;
return
"index"
;
}
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/UserController.java
已删除
100644 → 0
浏览文件 @
b9cb01c4
package
com.ai.cloud.skywalking.web.controller
;
/**
* Created by xin on 16-3-21.
*/
public
class
UserController
{
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/controller/UserMaintainController.java
0 → 100644
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.controller
;
import
com.ai.cloud.skywalking.web.common.BaseController
;
import
com.ai.cloud.skywalking.web.dao.inter.IUserMaintainDao
;
import
com.ai.cloud.skywalking.web.vo.LoginUserInfo
;
import
com.ai.cloud.skywalking.web.vo.SignInUserInfo
;
import
com.ai.cloud.skywalking.web.vo.UserInfo
;
import
com.ai.cloud.util.Constants
;
import
com.ai.cloud.util.common.StringUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* Created by xin on 16-3-24.
*/
@RequestMapping
(
"/usr"
)
@Controller
public
class
UserMaintainController
extends
BaseController
{
private
Logger
logger
=
LogManager
.
getLogger
(
UserMaintainController
.
class
);
@Autowired
private
IUserMaintainDao
iUserMaintainDao
;
@RequestMapping
(
"/login"
)
public
String
loginPage
()
{
return
"usr/login"
;
}
@RequestMapping
(
value
=
"/doLogin"
,
produces
=
"application/json; charset=UTF-8"
)
@ResponseBody
public
String
doLogin
(
LoginUserInfo
loginInfo
)
{
JSONObject
result
=
new
JSONObject
();
try
{
if
(
validateUserInfo
(
loginInfo
,
result
))
{
return
result
.
toJSONString
();
}
LoginUserInfo
dbLoginInfo
=
iUserMaintainDao
.
queryUserInfoByName
(
loginInfo
.
getUserName
());
logger
.
info
(
"{}"
,
dbLoginInfo
.
getPassword
());
if
(
dbLoginInfo
==
null
||
!
loginInfo
.
getPassword
().
equals
(
dbLoginInfo
.
getPassword
()))
{
result
.
put
(
"code"
,
"400"
);
result
.
put
(
"message"
,
"Username or password is not correct"
);
return
result
.
toJSONString
();
}
result
.
put
(
"code"
,
"200"
);
result
.
put
(
"message"
,
"Login success"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Failed to login the user[{}] and password[{}]"
,
loginInfo
.
getUserName
(),
loginInfo
.
getPassword
(),
e
);
result
.
put
(
"code"
,
"500"
);
result
.
put
(
"message"
,
"fatal error. please try it again."
);
}
return
result
.
toJSONString
();
}
private
boolean
validateUserInfo
(
UserInfo
loginInfo
,
JSONObject
result
)
{
if
(
StringUtil
.
isBlank
(
loginInfo
.
getUserName
())
||
StringUtil
.
isBlank
(
loginInfo
.
getPassword
()))
{
result
.
put
(
"code"
,
"400"
);
result
.
put
(
"message"
,
"Username or password is null"
);
return
true
;
}
return
false
;
}
@RequestMapping
(
"/register"
)
public
String
registerPage
()
{
return
"usr/register"
;
}
@RequestMapping
(
value
=
"/doRegister"
,
produces
=
"application/json; charset=UTF-8"
)
@ResponseBody
public
String
doRegister
(
SignInUserInfo
signInUserInfo
)
{
JSONObject
result
=
new
JSONObject
();
try
{
if
(
validateUserInfo
(
signInUserInfo
,
result
))
{
return
result
.
toJSONString
();
}
signInUserInfo
.
setRoleType
(
Constants
.
ROLE_TYPE_USER
);
signInUserInfo
.
setSts
(
Constants
.
STR_VAL_A
);
iUserMaintainDao
.
addUser
(
signInUserInfo
);
if
(
StringUtil
.
isBlank
(
signInUserInfo
.
getUid
()))
{
result
.
put
(
"code"
,
"500"
);
result
.
put
(
"message"
,
"Failed to register user"
+
signInUserInfo
.
getUserName
());
return
result
.
toJSONString
();
}
result
.
put
(
"code"
,
"200"
);
result
.
put
(
"message"
,
"register success"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"Failed to register the user[{}]"
,
signInUserInfo
.
getUserName
(),
signInUserInfo
.
getPassword
(),
e
);
result
.
put
(
"code"
,
"500"
);
result
.
put
(
"message"
,
"fatal error. please try it again."
);
}
return
result
.
toJSONString
();
}
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/impl/UserMaintainDao.java
0 → 100644
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.dao.impl
;
import
com.ai.cloud.skywalking.web.dao.inter.IUserMaintainDao
;
import
com.ai.cloud.skywalking.web.util.DBConnectUtil
;
import
com.ai.cloud.skywalking.web.vo.LoginUserInfo
;
import
com.ai.cloud.skywalking.web.vo.SignInUserInfo
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.stereotype.Repository
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.Statement
;
@Repository
public
class
UserMaintainDao
implements
IUserMaintainDao
{
@Autowired
private
JdbcTemplate
jdbcTemplate
;
@Autowired
private
DBConnectUtil
dbConnectUtil
;
private
static
Logger
logger
=
LogManager
.
getLogger
(
UserMaintainDao
.
class
);
@Override
public
LoginUserInfo
queryUserInfoByName
(
String
userName
)
{
logger
.
debug
(
"query user name {} "
,
userName
);
LoginUserInfo
userInfo
=
null
;
String
sql
=
"select uid,user_name,password from user_info where user_name = ? "
;
try
{
PreparedStatement
ps
=
dbConnectUtil
.
getConnection
().
prepareStatement
(
sql
);
ps
.
setString
(
1
,
userName
);
ResultSet
rs
=
ps
.
executeQuery
();
if
(
rs
.
next
())
{
userInfo
=
new
LoginUserInfo
();
userInfo
.
setUid
(
rs
.
getString
(
"uid"
));
userInfo
.
setUserName
(
rs
.
getString
(
"user_name"
));
userInfo
.
setPassword
(
rs
.
getString
(
"password"
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"Failed to query the user[{}]"
,
userName
,
e
);
}
logger
.
info
(
"result : {}"
,
userInfo
);
return
userInfo
;
}
@Override
public
void
addUser
(
final
SignInUserInfo
userInfo
)
{
final
String
sql
=
"insert into user_info(user_name,password,role_type,"
+
"create_time,sts,modify_time) values (?,?,?,?,?,?)"
;
int
num
=
-
1
;
try
{
PreparedStatement
pstmt
=
dbConnectUtil
.
getConnection
().
prepareStatement
(
sql
,
Statement
.
RETURN_GENERATED_KEYS
);
int
i
=
0
;
pstmt
.
setString
(++
i
,
userInfo
.
getUserName
());
pstmt
.
setString
(++
i
,
userInfo
.
getPassword
());
pstmt
.
setString
(++
i
,
userInfo
.
getRoleType
());
pstmt
.
setTimestamp
(++
i
,
userInfo
.
getCreateTime
());
pstmt
.
setString
(++
i
,
userInfo
.
getSts
());
pstmt
.
setTimestamp
(++
i
,
userInfo
.
getModifyTime
());
pstmt
.
executeUpdate
();
ResultSet
results
=
pstmt
.
getGeneratedKeys
();
if
(
results
.
next
())
{
num
=
results
.
getInt
(
1
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"Failed to register the user[{}]"
,
userInfo
.
getUserName
(),
e
);
throw
new
RuntimeException
(
"Failed to register the user "
+
userInfo
.
getUserName
(),
e
);
}
logger
.
info
(
"用户注册成功:{}"
,
num
);
userInfo
.
setUid
(
String
.
valueOf
(
num
));
}
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/dao/inter/IUserMaintainDao.java
0 → 100644
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.dao.inter
;
import
com.ai.cloud.skywalking.web.vo.LoginUserInfo
;
import
com.ai.cloud.skywalking.web.vo.SignInUserInfo
;
/**
* Created by xin on 16-3-25.
*/
public
interface
IUserMaintainDao
{
LoginUserInfo
queryUserInfoByName
(
String
userName
);
void
addUser
(
SignInUserInfo
userInfo
);
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/util/DBConnectUtil.java
0 → 100644
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.util
;
import
com.zaxxer.hikari.HikariConfig
;
import
com.zaxxer.hikari.HikariDataSource
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Repository
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
@Repository
public
class
DBConnectUtil
{
@Value
(
"#{configProperties['jdbc.url']}"
)
private
String
dbURL
;
@Value
(
"#{configProperties['jdbc.username']}"
)
private
String
dbUser
;
@Value
(
"#{configProperties['jdbc.password']}"
)
private
String
password
;
@Value
(
"#{configProperties['jdbc.driverClassName']}"
)
private
String
dbDriverClass
;
private
static
Logger
logger
=
LogManager
.
getLogger
(
DBConnectUtil
.
class
);
private
static
HikariDataSource
hikariDataSource
;
public
Connection
getConnection
()
{
if
(
hikariDataSource
==
null
)
{
HikariConfig
config
=
new
HikariConfig
();
config
.
setJdbcUrl
(
dbURL
);
config
.
setUsername
(
dbUser
);
config
.
setPassword
(
password
);
config
.
setDriverClassName
(
dbDriverClass
);
config
.
addDataSourceProperty
(
"cachePrepStmts"
,
"true"
);
config
.
addDataSourceProperty
(
"prepStmtCacheSize"
,
"250"
);
config
.
addDataSourceProperty
(
"prepStmtCacheSqlLimit"
,
"2048"
);
hikariDataSource
=
new
HikariDataSource
(
config
);
}
try
{
return
hikariDataSource
.
getConnection
();
}
catch
(
SQLException
e
)
{
logger
.
error
(
"Failed to get connection"
,
e
);
throw
new
RuntimeException
(
"Cannot get connection."
);
}
}
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/vo/LoginUserInfo.java
浏览文件 @
2dff6362
...
...
@@ -3,5 +3,5 @@ package com.ai.cloud.skywalking.web.vo;
/**
* Created by xin on 16-3-21.
*/
public
class
LoginUserInfo
{
public
class
LoginUserInfo
extends
UserInfo
{
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/vo/SignInUserInfo.java
0 → 100644
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.vo
;
/**
* Created by xin on 16-3-25.
*/
public
class
SignInUserInfo
extends
UserInfo
{
}
skywalking-webui/src/main/java/com/ai/cloud/skywalking/web/vo/UserInfo.java
0 → 100644
浏览文件 @
2dff6362
package
com.ai.cloud.skywalking.web.vo
;
import
java.sql.Timestamp
;
/**
* Created by xin on 16-3-25.
*/
public
class
UserInfo
{
private
String
uid
;
private
String
userName
;
private
String
password
;
private
String
roleType
;
private
Timestamp
createTime
;
private
String
sts
;
private
Timestamp
modifyTime
;
public
void
setUid
(
String
uid
)
{
this
.
uid
=
uid
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getUserName
()
{
return
userName
;
}
public
String
getPassword
()
{
return
password
;
}
public
String
getUid
()
{
return
uid
;
}
public
String
getRoleType
()
{
return
roleType
;
}
public
String
getSts
()
{
return
sts
;
}
public
Timestamp
getCreateTime
()
{
if
(
createTime
==
null
){
return
new
Timestamp
(
System
.
currentTimeMillis
());
}
return
createTime
;
}
public
Timestamp
getModifyTime
()
{
if
(
modifyTime
==
null
){
return
new
Timestamp
(
System
.
currentTimeMillis
());
}
return
modifyTime
;
}
public
void
setRoleType
(
String
roleType
)
{
this
.
roleType
=
roleType
;
}
public
void
setSts
(
String
sts
)
{
this
.
sts
=
sts
;
}
}
skywalking-webui/src/main/resources/spring/springmvc-servlet.xml
浏览文件 @
2dff6362
...
...
@@ -44,8 +44,7 @@
</bean>
<bean
id=
"propertyConfigurer"
class=
"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
>
<bean
id=
"configProperties"
class=
"org.springframework.beans.factory.config.PropertiesFactoryBean"
>
<property
name=
"locations"
>
<list>
<value>
classpath:jdbc.properties
</value>
...
...
@@ -53,6 +52,10 @@
</property>
</bean>
<bean
id=
"propertyConfigurer"
class=
"org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"
>
<property
name=
"properties"
ref=
"configProperties"
/>
</bean>
<!-- 数据库、事务配置 -->
<import
resource=
"application-jdbc.xml"
/>
...
...
skywalking-webui/src/main/webapp/node_modules/skywalking/img/logo.png
0 → 100644
浏览文件 @
2dff6362
69.8 KB
skywalking-webui/src/main/webapp/node_modules/skywalking/js/jquery-md5.js
0 → 100644
浏览文件 @
2dff6362
/**
* jQuery MD5 hash algorithm function
*
* <code>
* Calculate the md5 hash of a String
* String $.md5 ( String str )
* </code>
*
* Calculates the MD5 hash of str using the » RSA Data Security, Inc. MD5
* Message-Digest Algorithm, and returns that hash. MD5 (Message-Digest
* algorithm 5) is a widely-used cryptographic hash function with a 128-bit hash
* value. MD5 has been employed in a wide variety of security applications, and
* is also commonly used to check the integrity of data. The generated hash is
* also non-reversable. Data cannot be retrieved from the message digest, the
* digest uniquely identifies the data. MD5 was developed by Professor Ronald L.
* Rivest in 1994. Its 128 bit (16 byte) message digest makes it a faster
* implementation than SHA-1. This script is used to process a variable length
* message into a fixed-length output of 128 bits using the MD5 algorithm. It is
* fully compatible with UTF-8 encoding. It is very useful when u want to
* transfer encrypted passwords over the internet. If you plan using UTF-8
* encoding in your project don't forget to set the page encoding to UTF-8
* (Content-Type meta tag). This function orginally get from the WebToolkit and
* rewrite for using as the jQuery plugin.
*
* Example Code <code>
* $.md5("I'm Persian.");
* </code> Result <code>
* "b8c901d0f02223f9761016cfff9d68df"
* </code>
*
* @alias Muhammad Hussein Fattahizadeh < muhammad [AT] semnanweb [DOT] com >
* @link http://www.semnanweb.com/jquery-plugin/md5.html
* @see http://www.webtoolkit.info/
* @license http://www.gnu.org/licenses/gpl.html [GNU General Public License]
* @param {jQuery}
* {md5:function(string))
* @return string
*/
(
function
(
$
)
{
var
rotateLeft
=
function
(
lValue
,
iShiftBits
)
{
return
(
lValue
<<
iShiftBits
)
|
(
lValue
>>>
(
32
-
iShiftBits
));
}
var
addUnsigned
=
function
(
lX
,
lY
)
{
var
lX4
,
lY4
,
lX8
,
lY8
,
lResult
;
lX8
=
(
lX
&
0x80000000
);
lY8
=
(
lY
&
0x80000000
);
lX4
=
(
lX
&
0x40000000
);
lY4
=
(
lY
&
0x40000000
);
lResult
=
(
lX
&
0x3FFFFFFF
)
+
(
lY
&
0x3FFFFFFF
);
if
(
lX4
&
lY4
)
return
(
lResult
^
0x80000000
^
lX8
^
lY8
);
if
(
lX4
|
lY4
)
{
if
(
lResult
&
0x40000000
)
return
(
lResult
^
0xC0000000
^
lX8
^
lY8
);
else
return
(
lResult
^
0x40000000
^
lX8
^
lY8
);
}
else
{
return
(
lResult
^
lX8
^
lY8
);
}
}
var
F
=
function
(
x
,
y
,
z
)
{
return
(
x
&
y
)
|
((
~
x
)
&
z
);
}
var
G
=
function
(
x
,
y
,
z
)
{
return
(
x
&
z
)
|
(
y
&
(
~
z
));
}
var
H
=
function
(
x
,
y
,
z
)
{
return
(
x
^
y
^
z
);
}
var
I
=
function
(
x
,
y
,
z
)
{
return
(
y
^
(
x
|
(
~
z
)));
}
var
FF
=
function
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
addUnsigned
(
a
,
addUnsigned
(
addUnsigned
(
F
(
b
,
c
,
d
),
x
),
ac
));
return
addUnsigned
(
rotateLeft
(
a
,
s
),
b
);
};
var
GG
=
function
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
addUnsigned
(
a
,
addUnsigned
(
addUnsigned
(
G
(
b
,
c
,
d
),
x
),
ac
));
return
addUnsigned
(
rotateLeft
(
a
,
s
),
b
);
};
var
HH
=
function
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
addUnsigned
(
a
,
addUnsigned
(
addUnsigned
(
H
(
b
,
c
,
d
),
x
),
ac
));
return
addUnsigned
(
rotateLeft
(
a
,
s
),
b
);
};
var
II
=
function
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
addUnsigned
(
a
,
addUnsigned
(
addUnsigned
(
I
(
b
,
c
,
d
),
x
),
ac
));
return
addUnsigned
(
rotateLeft
(
a
,
s
),
b
);
};
var
convertToWordArray
=
function
(
string
)
{
var
lWordCount
;
var
lMessageLength
=
string
.
length
;
var
lNumberOfWordsTempOne
=
lMessageLength
+
8
;
var
lNumberOfWordsTempTwo
=
(
lNumberOfWordsTempOne
-
(
lNumberOfWordsTempOne
%
64
))
/
64
;
var
lNumberOfWords
=
(
lNumberOfWordsTempTwo
+
1
)
*
16
;
var
lWordArray
=
Array
(
lNumberOfWords
-
1
);
var
lBytePosition
=
0
;
var
lByteCount
=
0
;
while
(
lByteCount
<
lMessageLength
)
{
lWordCount
=
(
lByteCount
-
(
lByteCount
%
4
))
/
4
;
lBytePosition
=
(
lByteCount
%
4
)
*
8
;
lWordArray
[
lWordCount
]
=
(
lWordArray
[
lWordCount
]
|
(
string
.
charCodeAt
(
lByteCount
)
<<
lBytePosition
));
lByteCount
++
;
}
lWordCount
=
(
lByteCount
-
(
lByteCount
%
4
))
/
4
;
lBytePosition
=
(
lByteCount
%
4
)
*
8
;
lWordArray
[
lWordCount
]
=
lWordArray
[
lWordCount
]
|
(
0x80
<<
lBytePosition
);
lWordArray
[
lNumberOfWords
-
2
]
=
lMessageLength
<<
3
;
lWordArray
[
lNumberOfWords
-
1
]
=
lMessageLength
>>>
29
;
return
lWordArray
;
};
var
wordToHex
=
function
(
lValue
)
{
var
WordToHexValue
=
""
,
WordToHexValueTemp
=
""
,
lByte
,
lCount
;
for
(
lCount
=
0
;
lCount
<=
3
;
lCount
++
)
{
lByte
=
(
lValue
>>>
(
lCount
*
8
))
&
255
;
WordToHexValueTemp
=
"
0
"
+
lByte
.
toString
(
16
);
WordToHexValue
=
WordToHexValue
+
WordToHexValueTemp
.
substr
(
WordToHexValueTemp
.
length
-
2
,
2
);
}
return
WordToHexValue
;
};
var
uTF8Encode
=
function
(
string
)
{
string
=
string
.
replace
(
/
\x
0d
\x
0a/g
,
"
\
x0a
"
);
var
output
=
""
;
for
(
var
n
=
0
;
n
<
string
.
length
;
n
++
)
{
var
c
=
string
.
charCodeAt
(
n
);
if
(
c
<
128
)
{
output
+=
String
.
fromCharCode
(
c
);
}
else
if
((
c
>
127
)
&&
(
c
<
2048
))
{
output
+=
String
.
fromCharCode
((
c
>>
6
)
|
192
);
output
+=
String
.
fromCharCode
((
c
&
63
)
|
128
);
}
else
{
output
+=
String
.
fromCharCode
((
c
>>
12
)
|
224
);
output
+=
String
.
fromCharCode
(((
c
>>
6
)
&
63
)
|
128
);
output
+=
String
.
fromCharCode
((
c
&
63
)
|
128
);
}
}
return
output
;
};
$
.
extend
({
md5
:
function
(
string
)
{
var
x
=
Array
();
var
k
,
AA
,
BB
,
CC
,
DD
,
a
,
b
,
c
,
d
;
var
S11
=
7
,
S12
=
12
,
S13
=
17
,
S14
=
22
;
var
S21
=
5
,
S22
=
9
,
S23
=
14
,
S24
=
20
;
var
S31
=
4
,
S32
=
11
,
S33
=
16
,
S34
=
23
;
var
S41
=
6
,
S42
=
10
,
S43
=
15
,
S44
=
21
;
string
=
uTF8Encode
(
string
);
x
=
convertToWordArray
(
string
);
a
=
0x67452301
;
b
=
0xEFCDAB89
;
c
=
0x98BADCFE
;
d
=
0x10325476
;
for
(
k
=
0
;
k
<
x
.
length
;
k
+=
16
)
{
AA
=
a
;
BB
=
b
;
CC
=
c
;
DD
=
d
;
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
0
],
S11
,
0xD76AA478
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
1
],
S12
,
0xE8C7B756
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
2
],
S13
,
0x242070DB
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
3
],
S14
,
0xC1BDCEEE
);
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
4
],
S11
,
0xF57C0FAF
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
5
],
S12
,
0x4787C62A
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
6
],
S13
,
0xA8304613
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
7
],
S14
,
0xFD469501
);
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
8
],
S11
,
0x698098D8
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
9
],
S12
,
0x8B44F7AF
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
10
],
S13
,
0xFFFF5BB1
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
11
],
S14
,
0x895CD7BE
);
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
12
],
S11
,
0x6B901122
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
13
],
S12
,
0xFD987193
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
14
],
S13
,
0xA679438E
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
15
],
S14
,
0x49B40821
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
1
],
S21
,
0xF61E2562
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
6
],
S22
,
0xC040B340
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
11
],
S23
,
0x265E5A51
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
0
],
S24
,
0xE9B6C7AA
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
5
],
S21
,
0xD62F105D
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
10
],
S22
,
0x2441453
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
15
],
S23
,
0xD8A1E681
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
4
],
S24
,
0xE7D3FBC8
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
9
],
S21
,
0x21E1CDE6
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
14
],
S22
,
0xC33707D6
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
3
],
S23
,
0xF4D50D87
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
8
],
S24
,
0x455A14ED
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
13
],
S21
,
0xA9E3E905
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
2
],
S22
,
0xFCEFA3F8
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
7
],
S23
,
0x676F02D9
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
12
],
S24
,
0x8D2A4C8A
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
5
],
S31
,
0xFFFA3942
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
8
],
S32
,
0x8771F681
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
11
],
S33
,
0x6D9D6122
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
14
],
S34
,
0xFDE5380C
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
1
],
S31
,
0xA4BEEA44
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
4
],
S32
,
0x4BDECFA9
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
7
],
S33
,
0xF6BB4B60
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
10
],
S34
,
0xBEBFBC70
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
13
],
S31
,
0x289B7EC6
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
0
],
S32
,
0xEAA127FA
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
3
],
S33
,
0xD4EF3085
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
6
],
S34
,
0x4881D05
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
9
],
S31
,
0xD9D4D039
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
12
],
S32
,
0xE6DB99E5
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
15
],
S33
,
0x1FA27CF8
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
2
],
S34
,
0xC4AC5665
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
0
],
S41
,
0xF4292244
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
7
],
S42
,
0x432AFF97
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
14
],
S43
,
0xAB9423A7
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
5
],
S44
,
0xFC93A039
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
12
],
S41
,
0x655B59C3
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
3
],
S42
,
0x8F0CCC92
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
10
],
S43
,
0xFFEFF47D
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
1
],
S44
,
0x85845DD1
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
8
],
S41
,
0x6FA87E4F
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
15
],
S42
,
0xFE2CE6E0
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
6
],
S43
,
0xA3014314
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
13
],
S44
,
0x4E0811A1
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
4
],
S41
,
0xF7537E82
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
11
],
S42
,
0xBD3AF235
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
2
],
S43
,
0x2AD7D2BB
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
9
],
S44
,
0xEB86D391
);
a
=
addUnsigned
(
a
,
AA
);
b
=
addUnsigned
(
b
,
BB
);
c
=
addUnsigned
(
c
,
CC
);
d
=
addUnsigned
(
d
,
DD
);
}
var
tempValue
=
wordToHex
(
a
)
+
wordToHex
(
b
)
+
wordToHex
(
c
)
+
wordToHex
(
d
);
return
tempValue
.
toLowerCase
();
}
});
})(
jQuery
);
\ No newline at end of file
skywalking-webui/src/main/webapp/pages/analysis/summary.ftl
已删除
100644 → 0
浏览文件 @
b9cb01c4
<
#import
"../
commons
/
commons.ftl
"
as
common
>
<!DOCTYPE html>
<html
lang=
"zh-CN"
>
<head>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=UTF-8"
>
<title>
Skywalking
</title>
<link
href=
"${_base}/node_modules/bootstrap/dist/css/bootstrap.min.css"
rel=
"stylesheet"
/>
<script
src=
"${_base}/node_modules/jquery/dist/jquery.min.js"
></script>
<script
src=
"${_base}/node_modules/bootstrap/dist/js/bootstrap.min.js"
></script>
</head>
<body>
<div
class=
"container"
>
<
@
common.navbar
/>
<div
class=
"row"
>
<div
class=
"col-lg-3"
>
<!-- placeholder -->
</div>
<div
class=
"col-lg-6"
>
<img
src=
"http://www.baidu.com/img/bd_logo1.png"
/>
</div>
</div>
<
@
common.searchBox
/>
</div>
<script>
</script>
</body>
\ No newline at end of file
skywalking-webui/src/main/webapp/pages/common/commons.ftl
0 → 100644
浏览文件 @
2dff6362
<#macro importResources>
<link href="${_base}/node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="${_base}/node_modules/jquery/dist/jquery.min.js"></script>
<script src="${_base}/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</#macro>
\ No newline at end of file
skywalking-webui/src/main/webapp/pages/commons/commons.ftl
已删除
100644 → 0
浏览文件 @
b9cb01c4
<#macro navbar>
<nav class="navbar navbar-fixed-top navbar-default">
<div>
<#if loginUserInfo??>
<p class="navbar-text pull-right">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
</div>
</p>
<#else >
<p class="navbar-text pull-right">
<a href="${_base}/usr/toLogin" class="btn btn-default">Sign in</a>
<button type="button" class="btn btn-success">Sign up</button>
</p>
</#if>
</div>
</nav>
</#macro>
<#macro searchBox>
<div class="row">
<div class="col-lg-3">
<!-- placeholder -->
</div>
<div class="col-lg-6">
<div class="input-group">
<input type="text" id="searchKey" name="searchKey" class="form-control" placeholder="Search for...">
<span class="input-group-btn">
<button id="searchBtn" name="searchBtn" class="btn btn-success" type="button">Search</button>
</span>
</div>
</div>
</div>
</#macro>
skywalking-webui/src/main/webapp/pages/index.ftl
浏览文件 @
2dff6362
<
#import
"./
common
s
/
commons.ftl
"
as
common
>
<
#import
"./
common
/
commons.ftl
"
as
common
>
<!DOCTYPE html>
<html
lang=
"zh-CN"
>
<head>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=UTF-8"
>
<title>
Skywalking
</title>
<link
href=
"${_base}/node_modules/bootstrap/dist/css/bootstrap.min.css"
rel=
"stylesheet"
/>
<script
src=
"${_base}/node_modules/jquery/dist/jquery.min.js"
></script>
<script
src=
"${_base}/node_modules/bootstrap/dist/js/bootstrap.min.js"
></script>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<
@
common.importResources
/>
</head>
<body>
<div
class=
"container"
>
<
@
common.navbar
/>
<div
class=
"navbar"
>
<div
class=
"container"
>
<div
class=
"navbar-header"
>
<button
data-target=
".navbar-collapse"
data-toggle=
"collapse"
type=
"button"
class=
"navbar-toggle collapsed"
>
<span
class=
"sr-only"
>
Toggle navigation
</span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
<span
class=
"icon-bar"
></span>
</button>
</div>
<div
role=
"navigation"
class=
"navbar-collapse collapse"
>
<ul
class=
"nav navbar-nav navbar-right hidden-sm"
>
<li>
<a
onclick=
"javascript:void(0);"
href=
"${_base}/usr/login"
>
<ins>
sign in
</ins>
</a>
</li>
<li>
<a
onclick=
"javascript:void(0);"
href=
"${_base}/usr/register"
>
<ins>
sign up
</ins>
</a>
</li>
</ul>
</div>
</div>
</div>
<div
class=
"container-fluid"
>
<div
class=
"row"
>
<div
class=
"col-
lg-3
"
>
<
!-- placeholder --
>
<div
class=
"col-
md-4 col-md-offset-4
"
>
<
img
src=
"${_base}/node_modules/skywalking/img/logo.png"
class=
"img-responsive center-block"
/
>
</div>
<div
class=
"col-lg-6"
>
<img
src=
"http://www.baidu.com/img/bd_logo1.png"
/>
<div
class=
"input-group col-md-6 col-md-offset-3"
>
<input
type=
"text"
class=
"form-control"
>
<a
class=
"input-group-addon btn btn-primary"
href=
"./searchResult.html"
>
搜索
</a>
</div>
</div>
<
@
common.searchBox
/>
</div>
<script>
$
(
document
).
ready
(
function
()
{
$
(
"
#searchBtn
"
).
click
(
function
()
{
var
searchKey
=
$
(
"
#searchKey
"
).
val
();
window
.
open
(
"
${_base}/searchResult?key =
"
+
searchKey
,
"
_self
"
);
});
});
</script>
</body>
\ No newline at end of file
</body>
</html>
skywalking-webui/src/main/webapp/pages/searchResult.ftl
已删除
100644 → 0
浏览文件 @
b9cb01c4
<
#import
"./
commons
/
commons.ftl
"
as
common
>
<!DOCTYPE html>
<html
lang=
"zh-CN"
>
<head>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=UTF-8"
>
<title>
Skywalking
</title>
<link
href=
"${_base}/node_modules/bootstrap/dist/css/bootstrap.min.css"
rel=
"stylesheet"
/>
<script
src=
"${_base}/node_modules/jquery/dist/jquery.min.js"
></script>
<script
src=
"${_base}/node_modules/bootstrap/dist/js/bootstrap.min.js"
></script>
</head>
<body>
<div
class=
"container"
>
<
@
common.navbar
/>
<div
class=
"row"
>
<div
class=
"col-lg-3"
>
<img
src=
"http://www.baidu.com/img/bd_logo1.png"
/>
</div>
<div
class=
"col-lg-6"
>
<div
class=
"input-group"
>
<input
type=
"text"
id=
"searchKey"
name=
"searchKey"
class=
"form-control"
placeholder=
"Search for..."
>
<span
class=
"input-group-btn"
>
<button
id=
"searchBtn"
name=
"searchBtn"
class=
"btn btn-success"
type=
"button"
>
Search
</button>
</span>
</div>
</div>
</div>
</div>
</body>
\ No newline at end of file
skywalking-webui/src/main/webapp/pages/usr/login.ftl
浏览文件 @
2dff6362
<
#import
"../
common
/
commons.ftl
"
as
common
>
<!DOCTYPE html>
<html
lang=
"zh-CN"
>
<head>
<meta
http-equiv=
"content-type"
content=
"text/html; charset=UTF-8"
>
<title>
Skywalking
</title>
<link
href=
"${_base}/node_modules/bootstrap/dist/css/bootstrap.min.css"
rel=
"stylesheet"
/>
<script
src=
"${_base}/node_modules/jquery/dist/jquery.min.js"
></script>
<script
src=
"${_base}/node_modules/bootstrap/dist/js/bootstrap.min.js"
></script>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<
@
common.importResources
/>
<script
src=
"${_base}/node_modules/skywalking/js/jquery-md5.js"
></script>
<style>
.login-panel
{
margin-top
:
25
%
;
margin-top
:
30
%
;
}
</style>
</head>
<body>
<div
class=
"container "
>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"col-md-4 col-md-offset-4"
>
<div
class=
"login-panel panel panel-default"
>
<div
class=
"panel-heading"
>
<h3
class=
"panel-title"
>
Please Sign In
</h3>
</div>
<div
class=
"panel-body"
>
<form
role=
"form"
>
<fieldset>
<div
class=
"form-group"
>
<input
type=
"email"
autofocus=
""
name=
"email"
placeholder=
"E-mail"
class=
"form-control"
>
</div>
<div
class=
"form-group"
>
<input
type=
"password"
value=
""
name=
"password"
placeholder=
"Password"
class=
"form-control"
>
</div>
<div
class=
"checkbox"
>
<label>
<input
type=
"checkbox"
value=
"Remember Me"
name=
"remember"
>
Remember Me
</label>
</div>
<!-- Change this to a button or input when using this as a form -->
<a
class=
"btn btn-lg btn-success btn-block"
href=
"index.html"
>
Login
</a>
</fieldset>
</form>
<div
class=
"container-fluid"
>
<div
clas=
"row"
>
<div
class=
"col-md-4 col-md-offset-4"
>
<img
src=
"${_base}/node_modules/skywalking/img/logo.png"
class=
"img-responsive center-block"
/>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-4 col-md-offset-4"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<h3
class=
"panel-title"
>
Please sign in
</h3>
</div>
<div
class=
"panel-body"
>
<div
class=
"alert alert-warning alert-dismissible"
role=
"alert"
id=
"alertMessageBox"
style=
"display:none"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"alert"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<strong>
Warning!
</strong>
<p
id=
"errorMessage"
></p>
</div>
<form
role=
"form"
>
<fieldset>
<div
class=
"form-group"
>
<input
type=
"text"
autofocus=
""
name=
"userName"
id=
"userName"
placeholder=
"User name"
class=
"form-control"
>
</div>
<div
class=
"form-group"
>
<input
type=
"password"
value=
""
name=
"password"
id=
"password"
placeholder=
"Password"
class=
"form-control"
>
</div>
<a
id=
"loginBtn"
class=
"btn btn-lg btn-success btn-block"
href=
"javascript:void(0);"
>
Login
</a>
</fieldset>
</form>
</div>
<div
class=
"panel-footer text-center"
>
<p>
New to Skywalking?
<a
href=
"${_base}/usr/register"
>
Create an account.
</a></p>
</div>
</div>
</div>
</div>
</body>
\ No newline at end of file
</div>
<script>
$
(
document
).
ready
(
function
()
{
$
(
"
#loginBtn
"
).
click
(
function
()
{
$
(
"
#alertMessageBox
"
).
hide
();
var
url
=
"
${_base}/usr/doLogin
"
$
.
ajax
({
type
:
'
POST
'
,
url
:
url
,
data
:
{
userName
:
function
()
{
return
$
(
"
#userName
"
).
val
();
},
password
:
function
()
{
return
$
.
md5
(
$
(
"
#password
"
).
val
());
}
},
dataType
:
'
json
'
,
success
:
function
(
data
)
{
if
(
data
.
code
!=
'
200
'
)
{
$
(
"
#errorMessage
"
).
text
(
data
.
message
);
$
(
"
#alertMessageBox
"
).
show
();
}
},
error
:
function
()
{
$
(
"
#errorMessage
"
).
text
(
"
Fatal Error, please try it again.
"
);
$
(
"
#alertMessageBox
"
).
show
();
}
});
});
});
</script>
</body>
</html>
skywalking-webui/src/main/webapp/pages/usr/register.ftl
0 → 100644
浏览文件 @
2dff6362
<
#import
"../
common
/
commons.ftl
"
as
common
>
<!DOCTYPE html>
<html
lang=
"zh-CN"
>
<head>
<meta
charset=
"utf-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<
@
common.importResources
/>
<script
src=
"${_base}/node_modules/skywalking/js/jquery-md5.js"
></script>
</head>
<body>
<div
class=
"container-fluid"
>
<div
clas=
"row"
>
<div
class=
"col-md-4 col-md-offset-4"
>
<img
src=
"${_base}/node_modules/skywalking/img/logo.png"
class=
"img-responsive center-block"
/>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-4 col-md-offset-4"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<h3
class=
"panel-title"
>
Welcome to join skywalking
</h3>
</div>
<div
class=
"panel-body"
>
<div
class=
"alert alert-warning alert-dismissible"
role=
"alert"
id=
"alertWarnMessageBox"
style=
"display:none"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"alert"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<strong>
Warning!
</strong>
<p
id=
"errorMessage"
></p>
</div>
<div
class=
"alert alert-success alert-dismissible"
role=
"alert"
id=
"alertSuccessMessageBox"
style=
"display:none"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"alert"
aria-label=
"Close"
><span
aria-hidden=
"true"
>
×
</span></button>
<strong>
Congratulate!
</strong>
<p>
You have successfully registered!
<a
href=
"${_base}/usr/login"
><ins>
Go to sign in
</ins></a></p>
</div>
<form
role=
"form"
>
<fieldset>
<div
class=
"form-group"
>
<input
type=
"text"
autofocus=
""
name=
"userName"
id=
"userName"
placeholder=
"User name"
class=
"form-control"
>
</div>
<div
class=
"form-group"
>
<input
type=
"password"
value=
""
name=
"password"
id=
"password"
placeholder=
"Password"
class=
"form-control"
>
</div>
<a
id=
"loginBtn"
class=
"btn btn-lg btn-success btn-block"
href=
"javascript:void(0);"
>
sign up
</a>
</fieldset>
</form>
</div>
<div
class=
"panel-footer text-center"
>
<p>
Have an account?
<a
href=
"${_base}/usr/login"
>
To sign in
</a></p>
</div>
</div>
</div>
</div>
</div>
<script>
$
(
document
).
ready
(
function
()
{
$
(
"
#loginBtn
"
).
click
(
function
()
{
$
(
"
#alertMessageBox
"
).
hide
();
var
url
=
"
${_base}/usr/doRegister
"
$
.
ajax
({
type
:
'
POST
'
,
url
:
url
,
data
:
{
userName
:
function
()
{
return
$
(
"
#userName
"
).
val
();
},
password
:
function
()
{
return
$
.
md5
(
$
(
"
#password
"
).
val
());
}
},
dataType
:
'
json
'
,
success
:
function
(
data
)
{
if
(
data
.
code
!=
'
200
'
)
{
$
(
"
#errorMessage
"
).
text
(
data
.
message
);
$
(
"
#alertWarnMessageBox
"
).
show
();
return
;
}
else
{
$
(
"
#alertSuccessMessageBox
"
).
show
();
}
},
error
:
function
()
{
$
(
"
#errorMessage
"
).
text
(
"
Fatal Error, please try it again.
"
);
$
(
"
#alertMessageBox
"
).
show
();
}
});
});
});
</script>
</body>
</html>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录