Sveiki,
darau aplikacija, kurioje naudojamas JAAS. Serveris Tomcat. Esu
susikures savo LoginModule, kuris kreipiasi i baze ir ten atlieka si bei
ta ir grazina useri ir roles. Naudoju
org.apache.catalina.realm.JAASRealm. Dabar noriu apsirasyti Struts
Action, kuriame ir vyktu login procesas (Form based loginas
j_security_check man netinka). web.xml yra nurodyti resursai kurie
apsaugoti kurie ne ir t.t. Kai iskvieciamas tas mano login actionas,
pasigaunamas normaliai login modulis, grazinamos roles ir useris,
sudedamos i Subject. Bet kai vyksta forwardas i secured zona,
gaunu 403 klaida atseit useris nesiautorizaves. Gal as kazko nedadariau,
gal reikia kazkokius grantus uzdeti policy nzn visiskai pasimetes.
Naudojant j_security_check forma autentifikacijai viskas veikia idealiai.
LoginContext lc = null;
CallbackHandler cb = new CallbackHandler(kazkas);
try {
lc = new LoginContext("LoginModule", cb);
} catch (LoginException le) {
System.out.println("Cannot create LoginContext. " +
le.getMessage());
// insert error processing code
} catch (SecurityException se) {
System.out.println("Cannot create LoginContext." +
se.getMessage());
// Insert error processing
}
try {
lc.login();
request.getSession().setAttribute("subject", lc.getSubject());
return mapping.findForward("/success");
} catch (LoginException le) {
System.out.println("Fails to create Subject. " +
le.getMessage());
// Insert error processing code
return mapping.findForward("/failed");
}