Code:
boolean uspjesnostLogina = false;
log.info("Instanciranje pkcs11 modula...");
//instanciranje pkcs11 modula kojim se obavljaju sve
//operacije nad citacem i karticom
Module pkcs11Module = null;
try {
pkcs11Module = Module.getInstance("slbCk.dll");
} catch (IOException e) {
throw new EplacanjeLoginException(
"Doslo je do greske kod "
+ "instanciranja pkcs 11 modula.",
e);
}
log.info("Inicijalizacija pkcs11 modula...");
//inicijaliziranje pkcs11 modula
try {
pkcs11Module.initialize(null);
} catch (TokenException e1) {
throw new EplacanjeLoginException(
"Doslo je do greske kod inicijaliziranja "
+ "pkcs 11 modula.",
e1);
}
log.info("Dohvacanje liste slotova...");
//dohvacanje liste slotova u kojima bi se
//mogla nalaziti pametna kartica
Slot[] slots = null;
try {
slots = pkcs11Module.getSlotList(
Module.SlotRequirement.TOKEN_PRESENT);
} catch (TokenException e2) {
throw new EplacanjeLoginException(
"Doslo je do greske kod dohvatanja "
+ "liste slotova.",
e2);
}
//ako je broj dohvacenih slotova jednak nuli,
//znaci da nema slotova s umetnutim karticama.
if (slots.length == 0) {
JOptionPane.showMessageDialog(
loginOkvir,
"Molimo stavite karticu u citac!");
}
log.info("Dohvacanje informacija o tokenu unutar
slota...");
//ako je dohvacanje slotova s kartiom proslo bez
//greske, dohvaca se prvi slot jer se u njemu nalazi
//kartica koju trazimo
Slot slot = slots[0];
Token token = null;
//dohvacanje kartice (tokena) koji se nalazi unutar
//citaca
try {
token = slot.getToken();
} catch (TokenException e3) {
throw new EplacanjeLoginException(
"Doslo je do greske kod dohvacanja
+ "informacija o tokenu koji je umetnut u
+ "citac.",
e3);
}
log.info("Otvaranje sessiona nad tokenu...");
//otvaranje session-a nad tokenom
Session loginSession = null;
try {
loginSession = token.openSession(true, true, null,
null);
} catch (TokenException e4) {
throw new EplacanjeLoginException(
"Doslo je do greske kod otvaranja "
+ "session-a nad tokenom.",
e4);
}
log.info("Logiranje u sessionu...");
//logiranje u session koristenjem unesenog PIN-a
//ako dodje do greske, znati da uneseni PIN nije
//ispravan
try {
loginSession.login(Session.UserType.USER, pin);
uspjesnostLogina = true;
} catch (TokenException e5) {
JOptionPane.showMessageDialog(
loginOkvir,
"Unijeli ste pogrešan PIN! "
+ "Molimo pokušajte ponovo.");
return uspjesnostLogina;
}
log.info("Finaliziranje sessiona...");
//zavrsavanje aktivnosti s pkcs11 modulom
try {
pkcs11Module.finalize();
} catch (Throwable e6) {
throw new EplacanjeLoginException(
"Doslo je do greske kod "
+ "finaliziraja sessiona.",
e6);
}
log.info("Gasenje login prozora...");
//gasenje prozora za unos PIN-a
loginOkvir.setVisible(false);
boolean uspjesnostLogina = false;
log.info("Instanciranje pkcs11 modula...");
//instanciranje pkcs11 modula kojim se obavljaju sve
//operacije nad citacem i karticom
Module pkcs11Module = null;
try {
pkcs11Module = Module.getInstance("slbCk.dll");
} catch (IOException e) {
throw new EplacanjeLoginException(
"Doslo je do greske kod "
+ "instanciranja pkcs 11 modula.",
e);
}
log.info("Inicijalizacija pkcs11 modula...");
//inicijaliziranje pkcs11 modula
try {
pkcs11Module.initialize(null);
} catch (TokenException e1) {
throw new EplacanjeLoginException(
"Doslo je do greske kod inicijaliziranja "
+ "pkcs 11 modula.",
e1);
}
log.info("Dohvacanje liste slotova...");
//dohvacanje liste slotova u kojima bi se
//mogla nalaziti pametna kartica
Slot[] slots = null;
try {
slots = pkcs11Module.getSlotList(
Module.SlotRequirement.TOKEN_PRESENT);
} catch (TokenException e2) {
throw new EplacanjeLoginException(
"Doslo je do greske kod dohvatanja "
+ "liste slotova.",
e2);
}
//ako je broj dohvacenih slotova jednak nuli,
//znaci da nema slotova s umetnutim karticama.
if (slots.length == 0) {
JOptionPane.showMessageDialog(
loginOkvir,
"Molimo stavite karticu u citac!");
}
log.info("Dohvacanje informacija o tokenu unutar
slota...");
//ako je dohvacanje slotova s kartiom proslo bez
//greske, dohvaca se prvi slot jer se u njemu nalazi
//kartica koju trazimo
Slot slot = slots[0];
Token token = null;
//dohvacanje kartice (tokena) koji se nalazi unutar
//citaca
try {
token = slot.getToken();
} catch (TokenException e3) {
throw new EplacanjeLoginException(
"Doslo je do greske kod dohvacanja
+ "informacija o tokenu koji je umetnut u
+ "citac.",
e3);
}
log.info("Otvaranje sessiona nad tokenu...");
//otvaranje session-a nad tokenom
Session loginSession = null;
try {
loginSession = token.openSession(true, true, null,
null);
} catch (TokenException e4) {
throw new EplacanjeLoginException(
"Doslo je do greske kod otvaranja "
+ "session-a nad tokenom.",
e4);
}
log.info("Logiranje u sessionu...");
//logiranje u session koristenjem unesenog PIN-a
//ako dodje do greske, znati da uneseni PIN nije
//ispravan
try {
loginSession.login(Session.UserType.USER, pin);
uspjesnostLogina = true;
} catch (TokenException e5) {
JOptionPane.showMessageDialog(
loginOkvir,
"Unijeli ste pogrešan PIN! "
+ "Molimo pokušajte ponovo.");
return uspjesnostLogina;
}
log.info("Finaliziranje sessiona...");
//zavrsavanje aktivnosti s pkcs11 modulom
try {
pkcs11Module.finalize();
} catch (Throwable e6) {
throw new EplacanjeLoginException(
"Doslo je do greske kod "
+ "finaliziraja sessiona.",
e6);
}
log.info("Gasenje login prozora...");
//gasenje prozora za unos PIN-a
loginOkvir.setVisible(false);
Jako je bitno znati nešto kako treba,a ne površno !!
[email protected]
[email protected]