void addRequestorToCa(MgmtEntry.CaHasRequestor requestor, NameId ca) throws CaMgmtException {
Args.notNull(requestor, "requestor");
Args.notNull(ca, "ca");
final NameId requestorIdent = requestor.getRequestorIdent();
PreparedStatement ps = null;
final String sql = "INSERT INTO CA_HAS_REQUESTOR (CA_ID,REQUESTOR_ID,RA, PERMISSION,PROFILES)"
+ " VALUES (?,?,?,?,?)";
try {
ps = prepareStatement(sql);
int idx = 1;
ps.setInt(idx++, ca.getId());
ps.setInt(idx++, requestorIdent.getId());
setBoolean(ps, idx++, requestor.isRa());
ps.setInt(idx++, requestor.getPermission());
String profilesText = StringUtil.collectionAsString(requestor.getProfiles(), ",");
ps.setString(idx++, profilesText);
if (ps.executeUpdate() == 0) {
throw new CaMgmtException("could not add requestor " + requestorIdent + " to CA " + ca);
}
LOG.info("added requestor '{}' to CA '{}': ra: {}; permission: {}; profile: {}",
requestorIdent, ca, requestor.isRa(), requestor.getPermission(), profilesText);
} catch (SQLException ex) {
throw new CaMgmtException(datasource.translate(sql, ex));
} finally {
datasource.releaseResources(ps, null);
}
}