diff --git a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultTokenManager.java b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultTokenManager.java
new file mode 100644
index 0000000..4e02484
--- /dev/null
+++ b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultTokenManager.java
@@ -0,0 +1,91 @@
+/*
+ * Demoiselle Framework
+ * Copyright (C) 2010 SERPRO
+ * ----------------------------------------------------------------------------
+ * This file is part of Demoiselle Framework.
+ *
+ * Demoiselle Framework is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License version 3
+ * as published by the Free Software Foundation.
+ *
+ * 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License version 3
+ * along with this program; if not, see
+ * or write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301, USA.
+ * ----------------------------------------------------------------------------
+ * Este arquivo é parte do Framework Demoiselle.
+ *
+ * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
+ * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
+ * do Software Livre (FSF).
+ *
+ * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
+ * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
+ * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
+ * para maiores detalhes.
+ *
+ * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
+ * "LICENCA.txt", junto com esse programa. Se não, acesse
+ * ou escreva para a Fundação do Software Livre (FSF) Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
+ */
+package br.gov.frameworkdemoiselle.internal.implementation;
+
+import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY;
+
+import java.io.Serializable;
+import java.security.Principal;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import br.gov.frameworkdemoiselle.annotation.Priority;
+import br.gov.frameworkdemoiselle.security.TokenManager;
+
+@ApplicationScoped
+@Priority(L2_PRIORITY)
+public class DefaultTokenManager implements TokenManager {
+
+ private TokenStore store = new TokenStore();
+
+ @Override
+ public String persist(Principal user) throws Exception {
+ return store.put(user);
+ }
+
+ @Override
+ public Principal load(String token) throws Exception {
+ return store.get(token);
+ }
+
+ private class TokenStore implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Map map = Collections.synchronizedMap(new HashMap());
+
+ public String put(Principal user) {
+ String token = UUID.randomUUID().toString();
+
+ if (map.containsValue(user)) {
+ map.remove(token);
+ }
+
+ map.put(token, user);
+
+ return token;
+ }
+
+ public Principal get(String token) {
+ return map.get(token);
+ }
+ }
+}
--
libgit2 0.21.2