import java.io.Console;
import com.ibm.as400.access.AS400;
/**
*
* AS400¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹¡Ê¥³¥ó¥½¡¼¥ë¡Ë
*/
public class AsPassChg {
AS400 as400 ;
String systemName;
String userId;
String oldPassword ;
String newPassword ;
/**
* ¥æ¡¼¥¶¡¼ID¤È¸½¹Ô¥Ñ¥¹¥ï¡¼¥É¤ò¥³¥ó¥½¡¼¥ë¤è¤êÆþÎϤ·¥æ¡¼¥¶¡¼¤¬Â¸ºß¤¹¤ë¤«³Îǧ¤¹¤ë
* @return ¥æ¡¼¥¶¡¼Ç§¾Ú¤¬À®¸ù¤·¤¿¾ì¹çtrue
*/
boolean connectChk() {
as400 = new AS400(systemName);
boolean rtn =false;
// ¥µ¥¤¥ó¥ª¥ó¾ðÊóÆþÎÏ
Console console = System.console();
userId = console.readLine("¥æ¡¼¥¶¡¼ID¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");
char[] password = console.readPassword("¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");
oldPassword = String.valueOf(password);
// ¥æ¡¼¥¶¡¼Ç§¾Ú
try {
if (as400.validateSignon(userId, oldPassword) ) {
System.out.println("¥µ¥¤¥ó¥ª¥óÀ®¸ù");
rtn = true ;
}
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("¥µ¥¤¥ó¥ª¥ó¼ºÇÔ");
}
return rtn;
}
/**
* Êѹ¹Íѥѥ¹¥ï¡¼¥É¤Î¼èÆÀ¡ÊºÆ³Îǧ¤ÎÆþÎÏ¥Á¥§¥Ã¥¯´Þ¤à¡Ë
* @return Êѹ¹Íѥѥ¹¥ï¡¼¥É¤¬ÆþÎϤ¢¤ê¤Î¾ì¹ç¡§true ½èÍýÃæÃÇ¡§false
*/
boolean newPasswordInput() {
boolean rtn = false;
Console console = System.console();
System.out.println("¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£Ãæ»ß¤¹¤ë¾ì¹ç¤Ï¤½¤Î¤Þ¤Þ[Enter]¥¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤");
System.out.println("");
for(;;) {
char[] password1 = console.readPassword("¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¡§");
String newPass1 = String.valueOf(password1);
if (newPass1.length() != 0) {
char[] password2 = console.readPassword("¥Ñ¥¹¥ï¡¼¥ÉºÆ³Îǧ¡§");
String newPass2 = String.valueOf(password2);
if(newPass1.equals(newPass2)) {
// ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÈºÆ³Îǧ¤¬°ìÃ×
newPassword = newPass1;
rtn = true;
break;
} else {
// ÆþÎϴְ㤨¤¿¾ì¹ç¤ÏºÆÆþÎÏ
System.out.println("ÆþÎϤµ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¤¬°ìÃפ·¤Þ¤»¤ó¡£ºÆÅÙÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£");
}
} else break;
}
return rtn ;
}
/**
* ¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹½èÍý¤ò¼Â¹Ô
* @return ¥Ñ¥¹¥ï¡¼¥É¤Î¹¹¿·À®¸ù¡§true¡¡¼ºÇÔ¡§false
*/
boolean execPasswordChg() {
boolean rtn = false;
as400.disconnectAllServices(); //°ìÅÙÁ´¤Æ¥Ç¥£¥¹¥³¥Í¤¹¤ë
as400 = new AS400(systemName,userId,oldPassword); // ºÆÅÙ¥µ¥¤¥ó¥ª¥ó
try {
as400.changePassword(oldPassword, newPassword) ; // ¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹
rtn = true;
} catch (Exception ex) {
ex.printStackTrace();
}
return rtn;
}
/**
* ¥³¥ó¥¹¥È¥é¥¯¥¿
* @param sysNam AS400¤ÎIP¥¢¥É¥ì¥¹
*/
public AsPassChg(String sysNam) {
systemName = sysNam;
System.out.println("¢£¢£AS/400¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹¥Ä¡¼¥ë¢£¢£");
System.out.println("¥µ¡¼¥Ð¡¼Ì¾¡§"+systemName);
}
/**
* ¥µ¡¼¥Ð¡¼Àܳ¡¦¥Ñ¥¹¥ï¡¼¥ÉÆþÎÏÀ©¸æ¡¦¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹½èÍý
* @param args AS400¤ÎIP¥¢¥É¥ì¥¹
*/
public static void main(String[] args) {
AsPassChg app = new AsPassChg(args[0]);
// ¥µ¡¼¥Ð¡¼Àܳ³Îǧ
if (app.connectChk()) {
System.out.println("¥µ¡¼¥Ð¡¼Àܳ¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£");
} else {
System.out.println("¥µ¡¼¥Ð¡¼Àܳ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£½ªÎ»¤·¤Þ¤¹¡£");
System.exit(-1);
}
// ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥ÉÆþÎÏ
if (! app.newPasswordInput() ) {
System.out.println("¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤òÃæ»ß¤·¤Þ¤·¤¿¡£");
System.exit(-1);
}
// ¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹
System.out.println("¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤ò³«»Ï¤·¤Þ¤¹");
if ( app.execPasswordChg() ) {
System.out.println("¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤¬´°Î»¤·¤Þ¤·¤¿¡£");
} else {
System.out.println("¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤¬¼ºÇÔ¤·¤Þ¤·¤¿¡£ºÇ½é¤«¤é¤ä¤ê¤Ê¤ª¤·¤Æ¤¯¤À¤µ¤¤¡£");
}
}
}
¤³¤Î¥Ú¡¼¥¸¤Ø¤Î¥³¥á¥ó¥È
WB3GGF Hey, thanks for the article post. Will read on...