0

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(" ");
            }
        }
    }

}
4

1 に答える 1

0

このコンストラクター:

public TomcatUser(String tomcatUserName, String... tomcatUserRoles)

フィールドを割り当てることはありませんtomcatUserRoles

于 2012-06-13T17:43:43.410 に答える