r1969 - in trunk/topia-service-security/src/main/java/org/nuiton/topia/taas: . jaas
Author: sletellier Date: 2010-05-20 18:54:46 +0200 (Thu, 20 May 2010) New Revision: 1969 Url: http://nuiton.org/repositories/revision/topia/1969 Log: Add debbug and error logs Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasLoginModule.java trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java =================================================================== --- trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java 2010-05-20 15:12:39 UTC (rev 1968) +++ trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/TaasService.java 2010-05-20 16:54:46 UTC (rev 1969) @@ -246,11 +246,16 @@ /** * Permet de r�cup�rer le subject en cours - * * @return subject */ public Subject findSubject() { - return subjectFinder.findSubject(); + Subject subject = subjectFinder.findSubject(); + + if (log.isDebugEnabled()) { + log.debug("findSubject : " + subjectFinder + " value " + subject); + } + + return subject; } /** Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasLoginModule.java =================================================================== --- trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasLoginModule.java 2010-05-20 15:12:39 UTC (rev 1968) +++ trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasLoginModule.java 2010-05-20 16:54:46 UTC (rev 1969) @@ -99,88 +99,94 @@ */ @Override public boolean login() throws LoginException { - if (callbackHandler == null) { - throw new LoginException("CallbackHandler cannot be null"); - } - if (taasService == null) { - throw new LoginException("TaasService property must be set"); - } + try { + if (callbackHandler == null) { + throw new LoginException("CallbackHandler cannot be null"); + } + if (taasService == null) { + throw new LoginException("TaasService property must be set"); + } - String login, password; + String login, password; - NameCallback nc = new NameCallback("login"); - PasswordCallback pc = new PasswordCallback("password", false); + NameCallback nc = new NameCallback("login"); + PasswordCallback pc = new PasswordCallback("password", false); - Callback[] callbacks = new Callback[2]; + Callback[] callbacks = new Callback[2]; - callbacks[0] = nc; - callbacks[1] = pc; + callbacks[0] = nc; + callbacks[1] = pc; - try { - //Récupération du login et mot de passe - callbackHandler.handle(callbacks); - } catch (Exception eee) { - if (log.isWarnEnabled()) { - log.warn("Utilisation du CallbackHandler impossible", eee); + try { + //Récupération du login et mot de passe + callbackHandler.handle(callbacks); + } catch (Exception eee) { + if (log.isWarnEnabled()) { + log.warn("Utilisation du CallbackHandler impossible", eee); + } + LoginException le = new LoginException( + "Utilisation du CallbackHandler impossible"); + le.initCause(eee); + throw le; } - LoginException le = new LoginException( - "Utilisation du CallbackHandler impossible"); - le.initCause(eee); - throw le; - } - login = nc.getName(); - password = new String(pc.getPassword()); - pc.clearPassword(); + login = nc.getName(); + password = new String(pc.getPassword()); + pc.clearPassword(); - String hashed = TaasUtil.hash(password); - - //Vérification du login/pass et récupération des Principals - TopiaContext transaction = null; - try { - TopiaContext rootContext = taasService.getRootContextNoSecure(); - transaction = rootContext.beginTransaction(); - - TaasUserDAO userDAO = TopiaSecurityDAOHelper.getTaasUserDAO(transaction); - TaasUser user = userDAO.findByLogin(login); + String hashed = TaasUtil.hash(password); - if(user != null && user.getPassword().equals(hashed) && user.getEnabled()) { - privateCredential = user; - - // Update connection information - user.setLastConnectionDate(new Date()); - int numberOfConnection = user.getNumberOfConnection(); - user.setNumberOfConnection(numberOfConnection + 1); - user.update(); - - // Récupération des principals - principals = new HashSet<TaasPrincipalWrapper>(); - - Collection<TaasPrincipal> taasPrincipals = user.getPrincipals(); - for (TaasPrincipal taasPrincipal : taasPrincipals) { - principals.add(new TaasPrincipalWrapper(taasPrincipal)); - } - } else { - // Echec d'authentification - principals = null; - privateCredential = null; - throw new LoginException("Erreur lors de l'authentification " + login); - } - } catch (Exception e) { - LoginException le = new LoginException("Erreur lors de l'authentification" + login); - le.initCause(e); - log.error(e); - throw le; - } finally { - if (transaction != null) { - try { - transaction.commitTransaction(); - transaction.closeContext(); - } catch (TopiaException e) { + //Vérification du login/pass et récupération des Principals + TopiaContext transaction = null; + try { + TopiaContext rootContext = taasService.getRootContextNoSecure(); + transaction = rootContext.beginTransaction(); + + TaasUserDAO userDAO = TopiaSecurityDAOHelper.getTaasUserDAO(transaction); + TaasUser user = userDAO.findByLogin(login); + + if(user != null && user.getPassword().equals(hashed) && user.getEnabled()) { + privateCredential = user; + + // Update connection information + user.setLastConnectionDate(new Date()); + int numberOfConnection = user.getNumberOfConnection(); + user.setNumberOfConnection(numberOfConnection + 1); + user.update(); + + // Récupération des principals + principals = new HashSet<TaasPrincipalWrapper>(); + + Collection<TaasPrincipal> taasPrincipals = user.getPrincipals(); + for (TaasPrincipal taasPrincipal : taasPrincipals) { + principals.add(new TaasPrincipalWrapper(taasPrincipal)); + } + } else { + // Echec d'authentification + principals = null; + privateCredential = null; throw new LoginException("Erreur lors de l'authentification " + login); } + } catch (Exception e) { + LoginException le = new LoginException("Erreur lors de l'authentification" + login); + le.initCause(e); + log.error(e); + throw le; + } finally { + if (transaction != null) { + try { + transaction.commitTransaction(); + transaction.closeContext(); + } catch (TopiaException e) { + throw new LoginException("Erreur lors de l'authentification " + login); + } + } } + } catch(LoginException eee) { + log.error("LoginException : ", eee); + } catch(Throwable eee){ + log.error(eee); + throw new LoginException(eee.getMessage()); } - return true; } Modified: trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java =================================================================== --- trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java 2010-05-20 15:12:39 UTC (rev 1968) +++ trunk/topia-service-security/src/main/java/org/nuiton/topia/taas/jaas/TaasPermission.java 2010-05-20 16:54:46 UTC (rev 1969) @@ -44,6 +44,8 @@ import java.security.Permission; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.taas.entities.TaasAuthorization; /** @@ -55,6 +57,8 @@ private static final long serialVersionUID = 1L; + private static Log log = LogFactory.getLog(TaasPermission.class); + public String authorizationExpression; public int authorizationActions; @@ -156,10 +160,18 @@ * @return vrai si thisId implique thatId */ public boolean impliesExpression(String thisExpression, String thatExpression) { - return thisExpression.equals(thatExpression) || + boolean result = thisExpression.equals(thatExpression) || "*".equals(thisExpression) || - thatExpression.startsWith(thisExpression.substring(0, thisExpression.length()-1)) + thatExpression.startsWith(thisExpression.substring(0, thisExpression.length() - 1)) && thisExpression.endsWith("*"); + + if (log.isDebugEnabled()) { + log.debug("Implies expression : " + thisExpression + + " with " + thatExpression + + " return " + result); + } + + return result; } /**
participants (1)
-
sletellier@users.nuiton.org