Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * #%L
   * Wikitty :: api
   * %%
   * Copyright (C) 2012 CodeLutin, Benjamin Poussin
   * %%
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as 
   * published by the Free Software Foundation, either version 3 of the 
  * License, or (at your option) any later version.
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * GNU General Lesser Public License for more details.
  * You should have received a copy of the GNU General Lesser Public 
  * License along with this program.  If not, see
  * <>.
  * #L%
Implantation de base de l'authentification sur Wikitty lui même. Cherche a authentifier l'utilisateur sur un objet WikittyUser via son login et mot de passe. Ce service doit retourne un token valide si l'authorisation a fonctionne.

$Revision$ Last update: $Date$ by : $Author$
to use log facility, just put in your code:\"...\");
     static private Log log = LogFactory.getLog(WikittyServiceAuthentication.class);

use to trace time of security code, timelog must not include delegator time in this class
     final static private TimeLog timeLog = new TimeLog(WikittyServiceAuthentication.class);
         if (config != null) {
             long timeToLogInfo = config.getOptionAsInt(.
             long timeToLogWarn = config.getOptionAsInt(.

L'exception lever en cas de mauvais login ou mot de passe contient toujours le même message pour ne pas aider les attaquants a trouver des comptes existant.

login le login (ne doit pas etre vide)
password le mot de passe de l'utilisateur
le token de securite a utiliser pour les autres appels
java.lang.SecurityException si l'authentification echoue
     public String login(String loginString password) {
         long start = TimeLog.getTime();
         if (StringUtils.isBlank(login)) {
             if (.isDebugEnabled()) {
                 .debug(String.format("User try to authenticate with bad blank login: '%s'"login));
             throw new SecurityException("bad login or password");
         // recherche de l'utilisateur
         WikittyQuery criteria = new WikittyQueryMaker()
         String userId = getAnonymousClient().findByQuery(criteria);
         if (userId == null) {
             if (.isDebugEnabled()) {
                 .debug(String.format("User try to authenticate with bad login: '%s'"login));
            throw new SecurityException("bad login or password");
        // on a trouver l'utilisateur on le restore pour verifier le mot de passe
        Wikitty user = WikittyServiceEnhanced.restore(
                getDelegate(), nulluserId);
        // check password is valid
        if (!StringUtils.equals(WikittyUserHelper.getPassword(user), password)) {
            if (.isDebugEnabled()) {
                .debug(String.format("User '%s' try to authenticate with bad password"login));
            throw new SecurityException("bad login or password");
        String tokenId = getToken(userId);
        if (.isDebugEnabled()) {
            .debug(String.format("User logged: '%s'"login));
        return tokenId;
New to GrepCode? Check out our FAQ X