- 微修正
- 部屋処理の試験的な実装
改めて正式に変更点を記載します。
- 結構いじりました。
- アカウント情報は
users.dat
に保存されます。1行ごとにユーザ名,パスワードのハッシュ値
という形式で保存しています。 - 登録できるユーザ名は半角英数と下線のみ。既存アカウントとのユーザ名の重複は不可。これを、アカウント新規登録時にチェックする機能もつけました。
users.dat
には、とりあえず次のアカウントの情報を突っ込んであります。必要であれば、動かすときに使ってみてください。- ユーザ名: qb1、パスワード: test1
- ユーザ名: qb2、パスワード: test2
- ユーザ名: qb3、パスワード: test3
Users
クラスのauthenticate()
メソッドは、authenticate()
メソッドの内部でname
とpassword
を訊く形にして、引数は廃止してみました。差し支えがあれば元に戻します。- アカウントを削除する
deleteUser()
メソッドは、users.dat
を一度削除してから、削除されたアカウントを抜きにして他のユーザの認証情報を書き込み直す、という暴挙に出ることで実装を成し遂げました。 - パスワード入力時に、パスワードを非表示にする方法は、
System.console()
を使う方法であれば可能みたいです。本体に組み込むのは挫折しましたが、参考までにPassSample.java
も載せておきます。
- いきなりアカウント新規作成やログインを求めるのではなく、まず「どうしたいか」を尋ねる対話型のメニューを作りました。
- 終了メニューも作ってありますが、
GenericTerminal
側から終了を選ぶと、何も出力されずにコマンドラインが虚空になります(終了させたかった)。