web远程登录系统

Posted by yueLng on 2015-07-06

项目截图

项目首页

关于页面
信息与下载页面

web远程登录系统文档简要说明

web远程登录系统总体上分为两部分,web工程与web远程登录系统,本文档将会从系统的功能架构和技术架构对本系统进行说明,web工程主要是针对FPGA实验仿真平台的配套设置,用户通过web工程了解FPGA实验仿真平台的基本信息,主要的功能模块有信息首页、公告新闻、文件下载、实验平台等。web远程登录系统则是基于guacamole-一款基于HTML5的web远程登录的开源系统

web工程

web部分主要从功能和架构技术上进行说明
web导航栏分为主页、信息、下载、联系、更多,对应的主要功能模块为新闻公告、实验平台、上传下载、评论留言等基本信息管理功能。信息模块具体包含的信息内容为新闻、公告、通知三种,文件下载分为软件、文档、数据下载;实验平台则实现了后台上传word文档,前台实时查看实验内容的效果,同样实现了四个不同的实验室,在不同的实验室有着不同的实验室文档,点击即可在看查看word实验内容,其余的基本平台信息都是基于CMS信息管理系统进行定制。
在技术架构上采用了传统的javaweb技术栈
spring mvc +spring+ hibernate+ehcache
数据库采用mysql数据库

web远程登录系统

guacamole简介

guacamole是基于vnc技术的web远程登录框架,vnc技术是远程登录协议的一种,可以将服务端的原始图像传送到客户端。该协议支持Javaweb对其扩写。于是国外的guacamole就是基于这个做的开源框架。该框架分为三部分,vnc服务端、guacd、guacamole客户端;
  vnc服务端:是基于vnc协议产生画面内容的。
  guacad:在vnc服务端和guacamole之间充当中介,guacamole实现了自身的对vnc的包装协议
  guacamole客户端:Javaweb实现,页面端则是利用HTML5和JavaScript进行鼠标和键盘的捕捉,动作传到guacamole的后台进行相应的转换,传送到被控制的vnc服务端。

guacamole环境搭建

在virtual box的unbuntu 14.0虚拟机下,初始化Linux的基本设置,如vim。根据如下几步进行安装
Ubuntu上安装VNC server(window同样也支持VNC协议)

1
sudo apt-get install vnc4server

安装完后要给当前用户设置密码,这个密码就是连接VNC时要用到的: 接着输入:

1
vncserver :1 # :1 表示显示号,启启用的端口为5901

注意vncserver默认的端口是5900,如果采用VNC客户端的话,直接使用display-number即可,涉及到具体端口的,则使用端口display-number+5900,从0开始。

Guacamole-Web的部署

1
2
sudo apt-get install guacamole-tomcat
//会提示重启tomcat,确认即可

其就是安装好java,tomcat之后,发布guacamole的war包。同时在/etc/guacamole中可以看到两个配置文件:guacamole.properties和user-mapping.xml

guacamole.properties的配置如下:

1
2
3
4
5
6
// guacd服务绑定的ip和port,必须和guacd中配置相同
guacd-hostname: localhost
guacd-port: 4822
//这个不用管
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml

user-mapping.xml的配置如下:

1
2
3
4
5
6
7
8
<user-mapping>
<authorize username="USERNAME" password="PASSWORD"> //在浏览器中的登录账号密码
<protocol>vnc</protocol> //rdp类型
<param name="hostname">localhost</param> //VNC的ip,可以是任意的ip和hostname,此处以本机为例
<param name="port">5901</param> //这个和你的VNC端口类似,注意其对应于 :1
<param name="password">password</param>
</authorize>
</user-mapping>

最后直接在浏览器中打开http://localhost:8080/guacamole/

远程系统web部分的开发

采用spring mvc + spring + hibernate进行搭建,采用mysql数据库,ehcache作为缓存,json作为web前端与后端的传输数据格式,前台统一采用JavaScript进行数据解析。

开发中情况记录

  部署项目发生bean没有被实例化,最后查看日志是由于没有正确配置数据库连接配置
  Another unnamed CacheManager already exists in the same VM

Shiro的echcache与自身配置的echcache发生冲突,除去shiro框架。由于这个框架的配置基本是按照上文的义工系统来的,所以遗留的shiro的配置,可以移去。
  spring mvc json数据传输的基本写法,在response里写入
  spring mvc 文件上传下载的基本写法。commons-fileupload

参考资料


1. Ubuntu上搭建Guacamole————作者:Lnmpy - elvis’s blog
2.