1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/java/sql-java-prihlasovani/src/cz/frantovo/jaas/sql/ParametrizovanýRealm.java Tue Feb 07 18:03:31 2012 +0100
1.3 @@ -0,0 +1,48 @@
1.4 +package cz.frantovo.jaas.sql;
1.5 +
1.6 +import com.sun.appserv.security.AppservRealm;
1.7 +import com.sun.enterprise.security.auth.realm.BadRealmException;
1.8 +import com.sun.enterprise.security.auth.realm.NoSuchRealmException;
1.9 +import java.util.Properties;
1.10 +
1.11 +/**
1.12 + *
1.13 + * @author Ing. František Kučera (frantovo.cz)
1.14 + */
1.15 +public abstract class ParametrizovanýRealm extends AppservRealm {
1.16 +
1.17 + @Override
1.18 + protected void init(Properties parametry) throws BadRealmException, NoSuchRealmException {
1.19 + super.init(parametry);
1.20 + getProperties().putAll(parametry);
1.21 + parametrizuj();
1.22 + }
1.23 +
1.24 + @Override
1.25 + public synchronized void setProperty(String název, String hodnota) {
1.26 + super.setProperty(název, hodnota);
1.27 + try {
1.28 + parametrizuj();
1.29 + } catch (BadRealmException e) {
1.30 + throw new IllegalArgumentException("Tento parametr nelze nastavit: " + název + " = " + hodnota, e);
1.31 + }
1.32 + }
1.33 +
1.34 + /**
1.35 + * @param názevParametru který hledáme
1.36 + * @param popis pokud dojde k výjimce, tento popis se v ní objeví
1.37 + * @return hodnota parametru nebo…
1.38 + * @throws BadRealmException … pokud byl parametr nulový nebo po měl oříznutí nulovou délku
1.39 + */
1.40 + protected String najdiParametr(String názevParametru, String popis) throws BadRealmException {
1.41 + String hodnotaParametru = getProperty(názevParametru);
1.42 +
1.43 + if (hodnotaParametru == null || hodnotaParametru.trim().length() < 1) {
1.44 + throw new BadRealmException("Chybí " + popis + " – parametr: " + názevParametru);
1.45 + } else {
1.46 + return hodnotaParametru;
1.47 + }
1.48 + }
1.49 +
1.50 + protected abstract void parametrizuj() throws BadRealmException;
1.51 +}