public String checkIdAsComposite(SessionContext ctx, String checkId) {
// テストする ID の施設ID 部を得る
int index = checkId.indexOf(COMPOSITE_KEY_MAKER);
if (index < 0) {
throw new SecurityException(checkId);
}
String facilityId = checkId.substring(0, index);
// Caller の施設ID部を得る
String callerId = ctx.getCallerPrincipal().getName();
index = callerId.indexOf(COMPOSITE_KEY_MAKER);
String callersFacilityId = callerId.substring(0, index);
// 両者が一致しているかどうかを調べる
if (!facilityId.equals(callersFacilityId)) {
throw new SecurityException(checkId);
}
// 複合キーと見なせる
return checkId;
}