http://www.maiziedu.com/wiki/linux/java/
客户端硬件信息收集:
1.编写脚本
参考文件:get_machine_code.sh
结合脚本程序,了解如下资源搜集的方法:
1)搜集主板ID编号;
2)搜集网卡MAC 地址;
3)硬件信息与自定义字符串加密;
脚本文件内容:
2.调试脚本
[root@WLJY01 lesson12]# sh get_machine_code.sh
41cec063968d5a4412f753778107c554 #机器码加密后的字符串
调试结果:
3.对脚本进行加密
[root@WLJY01 lesson12]# shc -v -r -T -f get_machine_code.sh
[root@WLJY01 lesson12]# mv get_machine_code.sh.x get_machine_code
[root@WLJY01 lesson12]# ./get_machine_code
41cec063968d5a4412f753778107c554
4.脚本注意的地方
字符串转换和删除的用法:
tr - translate or delete characters
echo "${baseboard_sn}${adapter0_physical_addr}"|tr '[a-z]' '[A-Z]'|tr -d ':'|tr -d '-'|tr '[0-9]' '[A-J]'
授权服务器为客户端授权:
1.了解授权服务器工作原理
这个环境使用的服务端为一台存储校验信息的数据库服务器,在启动服务前,会比较本地机器码与服务端存储的信息是否一致,一致则代表授权成功。
2.授权服务器端将客户端提供的机器码信息入库
这个过程相当于服务端对客户端的授权,参考客户端硬件信息收集脚本的结果。
#创建授权验证表
mysql> create table server_auth_info(id int AUTO_INCREMENT,server_name char(50), auth_code char(50) , primary key(id,server_name));
# 为主机名cloud_app1 的客户端IP地址进行授权
mysql> insert into server_auth_info(`server_name`,`auth_code`) values('cloud_app1','41cec063968d5a4412f753778107c554');
Query OK, 1 row affected (0.00 sec)
1.编写授权校验脚本
[root@WLJY01 lesson12]# cat check_middleware_auth.sh
注意观察如何与服务端做机器码对比
脚本文件内容:
2.调试授权校验脚本
[root@WLJY01 lesson12]# sh check_middleware_auth.sh
True
调试结果:
思考:
如果返回结果为true ,则代表什么?//true 有成功授权
如果返回结果为false,又代表什么?//false 没有过成功授权
3.加密授权检验脚本
[root@WLJY01 lesson12]# shc -v -r -T -f check_middleware_auth.sh
[root@WLJY01 lesson12]# mv check_middleware_auth.sh.x check_middleware_auth
注意:java 程序调用的是加密的授权检验脚本。
JAVA程序调用授权脚本验证是否成功授权
1.编写java 程序
/root/test/src/Authorize.java
核心地方是java 如何调用shell程序
Process process = null;
process =Runtime.getRuntime().exec(“/bin/sh/home/liutaostdio/myscript/lesson12/callcmd.sh”);
Java文件源代码:
2.编译java程序
[root@WLJY01 src]# cat compile_java.sh
其中最主要的是如下两行:
javac -d ../bin/ ./Authorize.java
编译:
3.执行class文件
/root/test/exec_class.sh
Class文件内容:
#!/bin/sh
for jarfile in / root / test / lib / * . jar
do
CLASSPATH = $CLASSPATH : $ jarfile
done
#echo $CLASSPATH
java -cp . : $ { CLASSPATH } com / lesson 12 / platform / callshell / Authorize
执行方法最主要的参考如下:
java -cp .:${CLASSPATH} com/lesson12/platform/callshell/Authorize
如果脚本返回值为true ,则代表获得授权成功,则启动本地服务。