Mysqlを使用してTomcat認証をいじっています。これを容易にするために、データベースに格納されている Tomcat ユーザー データをモデル化しようとしています。そこで、TomcatUser クラスを作成しました。
ユーザー名とパスワードを文字列として保存して、テスト中の作業を簡単にしました。セキュリティは後で実装されます。また、ユーザーの Tomcat ロールは ArrayList に格納されるため、ユーザーのロールを簡単に検索して管理できます。また、さまざまなシナリオ用のコンストラクターがいくつかあります。
これらの 1 つは、文字列 VARARG を使用して、ユーザーが持つことができる Tomcat ロールの数を設定することです。VARARG のパラメーターが配列に格納されていることは知っています。この場合は文字列配列です。Collections.addAll() メソッドを使用して、VARARG 配列の内容をオブジェクトの ArrayList に追加します。
テスト クラスでは、オブジェクトの から Iterator をインスタンス化することで NullPointerException を取得しています。これは、おそらく私の愚かなミスによるものです。しかし、私は新しいです。以下は、モデル クラスとテストの両方のコードです。私が間違っていることを教えてもらえますか?また、一般的なヒントやアドバイスをいただければ幸いです。
モデル。
/*
* Class modeling user data for Tomcat.
*/
package tomcat;
import java.util.ArrayList;
import java.util.Collections;
public class TomcatUser
{
String tomcatUserName; //Field to store Tomcat user's name.
String tomcatUserPassword; //Field to store Tomcat user's password.
/*
* Field to store the Tomcat user's roles as an ArrayList. This allows for easy element checking.
*/
ArrayList<String> tomcatUserRoles;
/*
* Constructor intended for creating a roleless user. Not much use, but who knows.
*/
public TomcatUser(String tomcatUserName, String tomcatUserPassword)
{
super();
this.setTomcatUserName(tomcatUserName);
this.setTomcatUserPassword(tomcatUserPassword);
}
/*
* Constructors for instantiating for general use.
* Three constructors are provided to provide options for instantiation.
*/
public TomcatUser(String tomcatUserName, ArrayList<String> tomcatUserRoles)
{
super();
this.setTomcatUserName(tomcatUserName);
this.setTomcatUserRoles(tomcatUserRoles);
}
public TomcatUser(String tomcatUserName, String... tomcatUserRoles)
{
super();
this.setTomcatUserName(tomcatUserName);
}
/*
*
*/
/*
* Constructors intended for adding a new user to the database.
* Three constructors are provided to provide options for instantiation.
*/
public TomcatUser(String tomcatUserName, String tomcatUserPassword, ArrayList<String> tomcatUserRoles)
{
this(tomcatUserName, tomcatUserPassword);
this.setTomcatUserRoles(tomcatUserRoles);
}
/*
*
*/
/*
* Standard setters and getters.
*/
/**
* @return the tomcatUserName
*/
public String getTomcatUserName() {
return tomcatUserName;
}
/**
* @param tomcatUserName the tomcatUserName to set
*/
public void setTomcatUserName(String tomcatUserName) {
this.tomcatUserName = tomcatUserName;
}
/**
* @return the tomcatUserPassword
*/
public String getTomcatUserPassword() {
return tomcatUserPassword;
}
/**
* @param tomcatUserPassword the tomcatUserPassword to set
*/
public void setTomcatUserPassword(String tomcatUserPassword) {
this.tomcatUserPassword = tomcatUserPassword;
}
/**
* @return the tomcatUserRoles
*/
public ArrayList<String> getTomcatUserRoles() {
return tomcatUserRoles;
}
/**
* @param tomcatUserRoles the tomcatUserRoles to set
*/
public void setTomcatUserRoles(ArrayList<String> tomcatUserRoles) {
this.tomcatUserRoles = tomcatUserRoles;
}
/*
*
*/
/*
* Setter to handle input options from matching constructors, and to provide options for setting tomcatUserRoles field.
*/
public void setTomcatUserRoles(String[] newTomcatUserRoles)
{
Collections.addAll(this.tomcatUserRoles, newTomcatUserRoles);
}
/*
*
*/
/*
* Method to add a role to the object.
*/
public void addTomcatUserRole (String newTomcatUserRole)
{
this.tomcatUserRoles.add(newTomcatUserRole);
}
public Boolean hasTomcatRole (String checkTomcatRole)
{
return this.tomcatUserRoles.contains(checkTomcatRole);
}
}
そしてテストクラス。
package tomcat;
import java.util.ArrayList;
import java.util.Iterator;
public class TomcatUserTest
{
static ArrayList<String> testTomcatRoles = new ArrayList<String>();
/**
* @param args
*/
public static void main(String[] args)
{
for (Integer iterator = 1; iterator <4 ; iterator++)
{
testTomcatRoles.add("testTomcatRole" + iterator.toString());
}
TomcatUser testTomcatUser01 = new TomcatUser("testUser01", "testPassword01");
System.out.print("testTomcatUser01 contents: ");
System.out.print(testTomcatUser01.getTomcatUserName() + " " + testTomcatUser01.getTomcatUserPassword());
System.out.println();
TomcatUser testTomcatUser02 = new TomcatUser("testUser02", testTomcatRoles);
System.out.print("testTomcatUser02 contents: ");
System.out.print(testTomcatUser02.getTomcatUserName() + " ");
Iterator<String> testTomcatUser02Iterator = testTomcatUser02.getTomcatUserRoles().iterator();
while (testTomcatUser02Iterator.hasNext())
{
System.out.print(testTomcatUser02Iterator.next());
if (testTomcatUser02Iterator.hasNext())
{
System.out.print(" ");
}
}
System.out.println();
TomcatUser testTomcatUser03 = new TomcatUser("testTomcatUser03", "testPassword03", testTomcatRoles);
System.out.print("testTomcatUser03 contents: ");
System.out.print(testTomcatUser03.getTomcatUserName() + " " + testTomcatUser03.getTomcatUserPassword() + " ");
Iterator<String> testTomcatUser03Iterator = testTomcatUser03.getTomcatUserRoles().iterator();
while (testTomcatUser03Iterator.hasNext())
{
System.out.print(testTomcatUser03Iterator.next());
if (testTomcatUser03Iterator.hasNext())
{
System.out.print(" ");
}
}
System.out.println();
TomcatUser testTomcatUser04 = new TomcatUser("testTomcatUser04", "testRole1", "testRole2", "testRole3");
System.out.print("testTomcatUser04 contents: ");
System.out.print(testTomcatUser04.getTomcatUserName() + " ");
Iterator<String> testTomcatUser04Iterator = testTomcatUser04.getTomcatUserRoles().iterator();
while (testTomcatUser04Iterator.hasNext())
{
System.out.print(testTomcatUser04Iterator.next());
if (testTomcatUser04Iterator.hasNext())
{
System.out.print(" ");
}
}
}
}