Tema: JAAS Tomcat Struts
Autorius: Tomas
Data: 2009-10-22 15:21:45
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");
         }