■前言
今天调查代码时,发现有一行代码如下,
System.getProperty(“authPasswd”);//Key值是随便写的,不过确实是一个密码字段
在代码中,没有发现任何设值的地方。→ System.setProperty(“authPasswd”, "XXX");
于是上网查询了以下,System.getProperty(“XXX”);可以设值的地方。
■设定方法
方法一:
在运行java的Class的时候加上参数 -D
比如:java -DatuhPasswd=mypwd01 HelloWord
在HelloWord中的下面代码执行时,便会输出「mypwd01」
System.getProperty(“authPasswd”)
方法二:
启动服务器时指定,(比如Tomcat,当然,我们的服务器不是Tomcat)
["set JAVA_OPTS= -DauthPasswd=authPasswd"]Windows的设定方法
在catalian.bat里面(有效代码的第一行(@echo off)),写上上面颜色标记的内容
Linux环境下如下
[JAVA_OPTS=-DauthPasswd=authPasswd]
■ WebSphere中设定
サーバー
└サーバー・タイプ
└WebSphere Application server
进入页面中,选择你的Server(一般默认配置的话,都是server1)
アプリケーション・サーバー>server1>プロセス定義>Java仮想マシン>カスタム・プロパティー
↑
Javaおよびプロセス管理
ーーーーーーーーーー
翻译一下
application・server > server1 > process定义 > java虚拟机 >custom・property
■ 注意点
WebSphere有节点,和服务的区分
一个节点上,可以设置多个环境的服务。
上面的这种方法是在节点上设置变量。
如果想让这些变量生效,需要重新启动WebSphere的节点。
(单独启动某个服务是么有效果的。)
■ 节点和服务
我们可以在WebSphere上设置IT1,IT2,IT3等多个服务(多个程序发布后的环境)
而我们可以把,IT1,2设置在一个节点上。
把IT3,ITN 设置在另外一个节点上。
■ 扩展
・今后如果遇到一些对安全要求比较高的设计时,可以采用这种方式实现密码的取得
・同时,密码也不建议明文设置,一般采用加密后的方法保存(比如,AES)