セキュリティについて
昨今いろんなメディアで取り上げられる情報漏洩。
会社のノートパソコンを自宅に持って帰って仕事してたら
ウィルスに感染して流出したとか、
車にノートパソコンを置いてて盗難されたとか、
職場で空き巣被害にあったとか。
理由・事象は色々あるかもしれないが
情報漏洩の可能性はふとしたところに潜んでいる事を
しっかり認識しないといけない。
で、オススメするのが下記2つの予防策。
--------------------------------------------
・BIOSパスワードの設定
・BIOSによるHDDパスワードの設定
--------------------------------------------
「BIOSパスワードの設定」はノートパソコンの電源ON時に
パスワードを要求するように設定するもの。
Windowsでもオートログイン設定にせず
ユーザ・パスワードの入力を必須にしておけば
2重のログインチェックが出来る。
「BIOSによるHDDパスワードの設定」は
ノートパソコンに内臓されているHDDを取り出して
他のデスクトップ等に直接繋いでも
中身が見れないように出来るというスグレモノ。
それでも世の中に存在しているツールを使えば
見れるようになってしまうが手間がかかる分
情報流出の可能性は下げる事が出来る。
まだ対応する事が可能なのであれば
--------------------------------------------
・HDDそのものに暗号化を施す
--------------------------------------------
ここまで対応すると
万一、ノートパソコンからHDDを取り出されて
デスクトップ等に直接繋がれても、
中身は暗号化されているので、
情報流出の可能性はかなり下げる事が出来る。
色んなサードパーティからソフトが発売されているが
基本的にはOS起動前にログイン認証をおこない
認証OKになった場合のみHDDの暗号化・復号化
を行うという感じだ。
どんな方法も100%ではないが
少しでも「○○かもしれない」という認識を持つ事で
予防できるんじゃないだろうか。
EJB 環境 その後、(2)
前回のつづき。
-----
package jp.afrofair.ejb.dao;
import java.util.Date;
import java.util.List;
import javax.ejb.Remote;
import jp.afrofair.ejb.entity.M_holiday;
import jp.afrofair.ejb.entity.M_holidayPk;
@Remote
public interface M_holidayDao
{
/**
* 作成処理です。
*/
M_holiday create(
M_holidayPk pk,
Long year,
Long month,
Long day,
String holidayName
);
/**
* 作成処理です。
*/
M_holiday create(M_holiday eo);
/**
* 主キー検索です。
*/
M_holiday findById(M_holidayPk pk);
/**
* 更新処理です。
*/
void update(M_holiday eo);
/**
* 削除処理です。
*/
void delete(M_holiday eo);
/**
* 休日マスタ一覧取得処理です。
*/
List<M_holiday> list();
}
-----
package jp.afrofair.ejb.dao;
import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import jp.afrofair.ejb.entity.M_holiday;
import jp.afrofair.ejb.entity.M_holidayPk;
import static javax.ejb.TransactionAttributeType.*;
@Stateless
@TransactionAttribute(REQUIRED)
public class M_holidayDaoBean implements M_holidayDao
{
/**
* エンティティマネージャです。
*/
private EntityManager entityMgr;
/**
* エンティティマネージャを設定します。
* @param entityMgr エンティティマネージャ
*/
@PersistenceContext(unitName="ejb3sample")
public void setEntityManager(EntityManager entityMgr)
{
this.entityMgr = entityMgr;
}
/**
* 作成処理です。
*/
public M_holiday create(
M_holidayPk pk,
Long year,
Long month,
Long day,
String holidayName
) {
M_holiday eo = new M_holiday(
pk,
year,
month,
day,
holidayName
);
entityMgr.persist(eo);
return eo;
}
/**
* 作成処理です。
*/
public M_holiday create(M_holiday eo)
{
entityMgr.persist(eo);
return eo;
}
/**
* 主キー検索です。
*/
public M_holiday findById(M_holidayPk pk)
{
return entityMgr.find(M_holiday.class, pk);
}
/**
* 更新処理です。
*/
public void update(M_holiday eo)
{
entityMgr.merge(eo);
}
/**
* 削除処理です。
*/
public void delete(M_holiday eo)
{
M_holiday mergedEo = entityMgr.merge(eo);
entityMgr.remove(mergedEo);
}
/**
* 休日マスタ一覧取得処理です。
*/
@SuppressWarnings("unchecked")
public List<M_holiday> list()
{
Query query = entityMgr.createQuery("SELECT p FROM M_holiday p");
return query.getResultList();
}
}
-----
EJB 環境 その後、
とりあえず「SELECT」「INSERT」「UPDATE」「DELETE」とかとか
実現出来たのでメモ。
【M_holidayPk】
(1)Primaryキー用のクラスを作成。その際「@Embeddable」
(2)「@Column(name="group_id")」のようにテーブルカラムを指定。
【M_holiday】
(1)エンティティオブジェクトクラスを作成。
その際「@Entity」「@Table(name="m_holiday")」
(2)Primaryキーには「@Column」ではなく「@EmbeddedId」指定。
以外の項目には「@Column(name="group_id")」のようにテーブルカラムを指定。
-----
CREATE TABLE m_holiday
(
group_id VARCHAR(4) NOT NULL,
date NUMERIC(8,0) NOT NULL,
year NUMERIC(4,0) NOT NULL,
month NUMERIC(2,0) NOT NULL,
day NUMERIC(2,0) NOT NULL,
holiday_name VARCHAR(30) NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE m_holiday ADD CONSTRAINT m_holiday_pm PRIMARY KEY (
group_id,
date
);
-----
package jp.afrofair.ejb.entity;
import java.io.Serializable;
import javax.persistence.Embeddable;
@Embeddable
public class M_holidayPk implements Serializable
{
/**
* シリアルバージョンUID
*/
private static final long serialVersionUID = -2936245930303024701L;
/**
* グループIDです。
*/
private String groupId;
/**
* 年月日です。
*/
private Long date;
/**
* コンストラクタです。
* @see java.lang.Object#Object()
*/
public M_holidayPk () {};
/**
* コンストラクタです。
*/
public M_holidayPk(String groupId, Long date)
{
this.groupId = groupId;
this.date = date;
}
/**
* グループIDを返却します。
* @return groupId グループID
*/
@Column(name="group_id")
public String getGroupId()
{
return groupId;
}
/**
* グループIDを設定します。
* @param groupId グループID
*/
public void setGroupId(String groupId)
{
this.groupId = groupId;
}
/**
* 年月日を返却します。
* @return date 年月日
*/
@Column(name="date")
public Long getDate()
{
return date;
}
/**
* 年月日を設定します。
* @param date 年月日
*/
public void setDate(Long date)
{
this.date = date;
}
/**
* ハッシュ値を取得します。
*/
public int hashCode()
{
return (groupId == null ? 0 : groupId.hashCode())
+ (date == null ? 0 : date.hashCode());
}
/**
* 休日マスタプライマリキー文字列を返却します。
* @see java.lang.String#toString()
*/
public String toString()
{
return "groupId = " + getGroupId()
+ ", date = " + getDate()
;
}
}
-----
package jp.afrofair.ejb.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name="m_holiday")
public class M_holiday implements Serializable
{
/**
* シリアルバージョンUID
*/
private static final long serialVersionUID = 4067305432631729813L;
/**
* 休日マスタプライマリキーです。
*/
private M_holidayPk primaryKey;
/**
* 年です。
*/
private Long year;
/**
* 月です。
*/
private Long month;
/**
* 日です。
*/
private Long day;
/**
* 休日名です。
*/
private String holidayName;
/**
* コンストラクタです。
*/
public M_holiday() {}
/**
* コンストラクタです。
*/
public M_holiday(
M_holidayPk primaryKey,
Long year,
Long month,
Long day,
String holidayName
) {
this.primaryKey = primaryKey;
this.year = year;
this.month = month;
this.day = day;
this.holidayName = holidayName;
}
/**
* 休日マスタプライマリキーを返却します。
* @return M_holidayPk 休日マスタプライマリキー
*/
@EmbeddedId
public M_holidayPk getPrimaryKey()
{
return primaryKey;
}
/**
* 休日マスタプライマリキーを設定します。
* @param primaryKey 休日マスタプライマリキー
*/
public void setPrimaryKey(M_holidayPk primaryKey)
{
this.primaryKey = primaryKey;
}
/**
* 年を返却します。
* @return Long year
*/
@Column(name="year")
public Long getYear()
{
return year;
}
/**
* 年を設定します。
* @param year 年
*/
public void setYear(Long year)
{
this.year = year;
}
/**
* 月を返却します。
* @return Long month
*/
@Column(name="month")
public Long getMonth()
{
return month;
}
/**
* 月を設定します。
* @param month 月
*/
public void setMonth(Long month)
{
this.month = month;
}
/**
* 日を返却します。
* @return Long day
*/
@Column(name="day")
public Long getDay()
{
return day;
}
/**
* 日を設定します。
* @param day 日
*/
public void setDay(Long day)
{
this.day = day;
}
/**
* 休日名を返却します。
* @return String holidayName
*/
@Column(name="holiday_name")
public String getHolidayName()
{
return holidayName;
}
/**
* 休日名を設定します。
* @param holidayName 休日名
*/
public void setHolidayName(String holidayName)
{
this.holidayName = holidayName;
}
/**
* 休日マスタ文字列を返却します。
* @see java.lang.String#toString()
*/
public String toString()
{
return "primaryKey = " + getPrimaryKey()
+ ", year = " + getYear()
+ ", month = " + getMonth()
+ ", day = " + getDay()
+ ", holidayName = " + getHolidayName()
;
}
-----
PropertiesEditorプラグイン
忘れそう(というか既に忘れていた)なので覚え書。
大さまにご教授頂いたEclipse用のプラグイン。
コレ使えばJDK付属の「native2ascii」コマンドを使わなくてOK!
具体的にはUnicodeエスケープされたファイルを日本語表示してくれて
保存時には日本語をUnicodeエスケープしてくれる。
http://sourceforge.jp/projects/propedit/files/
掃除
日曜日。
自宅で使っているキーボードを久しぶりに掃除。
最初はエアーを吹きかけて汚れを飛ばすだけで良っか。と思っていたけど
久しぶりなのでバラして水洗いをする事にっ。
このキーボード、結構長い事使っているけど
キータッチといいメンテナンス性といい抜群!
(その分、値段も高かったけど。。。)
(画像は後ほど、、、)
前途多難。。。
『EJB3.0』を使いたくて悪戦苦闘中・・・。
「Hello World」的なものを表示させるだけなのに
サーバオブジェクトとして「StatelessBean」とその「Interface」を
Jarで固めて、「Jboss AS」の「default/deploy」に配備。
ここは問題ない。
で、実際にコンソールから
>java -classpath .\src:.\ejb3sample.jar:.\jboss-client.jar ejb3sample.Client
みたく実行しようとすると
-----
Exception in thread "main" java.lang.NoClassDefFoundError: ejb3sample/Client
-----
やっぱりExceptionのとおり「classpath」の指定が悪い?!
・
・
・
と思ったら
>java -classpath .;.\ejb3sample.jar;.\jboss-client.jar ejb3sample.Client
で行けた!
しょうもなっ!