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
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * 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
  * <http://www.gnu.org/licenses/lgpl-3.0.html>.
  * #L%
  */
 package org.nuiton.wikitty.services;
 
 import java.util.Date;
Classe abstraite pour simplifier l'implantation d'autre methode d'authentification. Ce serivce surcharge logout qui supprime le token et la methode getToken qui recupere ou genere un token. Pour implanter une nouveau service, il faut faire l'authentification de la personne si elle reussi, on retourne l'id du token retourne par getToken si l'authentification echoue il faut lever une exception.

Author(s):
poussin
Version:
$Revision$ Last update: $Date$ by : $Author$
 
 public abstract class WikittyServiceAuthenticationAbstract extends WikittyServiceDelegator {

    
to use log facility, just put in your code: log.info(\"...\");
 
     static private Log log = LogFactory.getLog(WikittyServiceAuthenticationAbstract.class);

    
use to trace time of security code, timelog must not include delegator time in this class
 
     final static private TimeLog timeLog = new TimeLog(WikittyServiceAuthenticationAbstract.class);
 
     protected ApplicationConfig config;
     
         this(nulldelegate);
     }
 
             ApplicationConfig configWikittyService delegate) {
         super(delegate);
         this. = config;
         
         if (config != null) {
             long timeToLogInfo = config.getOptionAsInt(.
                     .getKey());
             long timeToLogWarn = config.getOptionAsInt(.
                     .getKey());
             .setTimeToLogInfo(timeToLogInfo);
             .setTimeToLogWarn(timeToLogWarn);
         }
     }
 
     @Override
     abstract public String login(String loginString password);

    
Recherche si l'utilisateur n'a pas deja un token, et dans ce cas on retourne le meme token. Sinon on en cree un nouveau

Parameters:
userId l'utilisateur pour l'equel il faut recherche/creer le token
Returns:
le token de l'utilisateur
 
     @Override
     public String getToken(String userId) {
         // on recherche si l'utilisateur n'est pas deja authentifier.
         // s'il l'est on lui retourne le meme token.
        WikittyQuery query = new WikittyQueryMaker()
                .eq(.userId)
                .end()
                .setLimit(1);
        
        String tokenId = getAnonymousClient().findByQuery(query);
        
        // on a retrouve un ancien token, on le reutilise peut-etre
        if (tokenId != null) {
            if (WikittySecurityUtil.isOutdated(getDelegate(), tokenId)) {
                getDelegate().delete(tokenId, Arrays.asList(tokenId));
                tokenId = null;
            }
        }
        if (tokenId == null) {
            // generation d'un nouveau token
            tokenId = WikittyUtil.genSecurityTokenId();
            Wikitty wikittyToken = new WikittyImpl(tokenId);
            // force add extension to wikitty
            WikittyTokenHelper.addExtension(wikittyToken);
            WikittyTokenHelper.setUser(wikittyTokenuserId);
            WikittyTokenHelper.setDate(wikittyTokennew Date());
            getDelegate().store(null, Arrays.asList(wikittyToken), false);
            if (.isDebugEnabled()) {
                .debug(String.format("token '%s' is for login '%s'",
                        tokenIduserId));
            }
        }
        return tokenId;
    }
    @Override
    public void logout(String securityToken) {
        long start = TimeLog.getTime();
        if (securityToken != null) {
            getDelegate().delete(securityToken, Arrays.asList(securityToken));
        }
        .log(start"logout");
    }
New to GrepCode? Check out our FAQ X