W celu dokonania autoryzacji połączenia należy skorzystać z interfejsu ConnectionCustomizer dostarczanego przez zarządcę połączeniami C3P0.
W pierwszej kolejności należy stworzyć klasę, dla potrzeb przykładu C3P0ConnectionCustomizer, która zaimplementuje wspomniany wcześniej interfejs. Interfejs dostarcza następujące metody:
- onAcquire
- onCheckIn
- onCheckOut
- onDestroy
Klasa C3P0ConnectionCustomizer:
public class C3P0ConnectionCustomizer implements ConnectionCustomizer {
public void onAcquire(Connection arg0, String arg1) throws Exception {
Statement Stmt1 = arg0.createStatement();
Stmt1.executeUpdate("SET TEMPORARY OPTION CONNECTION_AUTHENTICATION='Company=ComapnyName;Application=ApplicationName;Signature=0...4'");
}
public void onCheckIn(Connection arg0, String arg1) throws Exception {
}
public void onCheckOut(Connection arg0, String arg1) throws Exception {
}
public void onDestroy(Connection arg0, String arg1) throws Exception {
}
}
Drugim i ostatnim krokiem jest poinformowanie C3P0 o konieczności korzystania z klasy C3P0ConnectionCustomizer przy zarządzaniu połączeniami. W tym celu przypisujemy właściwości c3p0.connectionCustomizerClassName nazwę klasy wykonującej to zadanie. Może to zostać dokonane np. w pliku c3p0.properties (przykład wpisu poniżej)
C3P0.properties
c3p0.connectionCustomizerClassName=C3P0ConnectionCustomizer
Jeżeli kod autoryzujący połączenie będzie nieprawidłowy to przy próbie nawiązania połączenia zostanie zwrócony błąd ASA Error- 218: Authentication violation.Więcej o interfejsie ConnectionCustomizer
Brak komentarzy:
Prześlij komentarz