This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wikitty. See http://git.nuiton.org/wikitty.git commit a207e2cca5f4b209caedd1ba353d7c73e7aef54a Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 14:23:22 2015 +0200 - add method WikittyClient.getSecurityToken(userId) and all necessary change in others classes - add method WikittySecurityUtil.getAppAdminGroup(WikittyClient) --- .../src/main/java/org/nuiton/wikitty/WikittyClient.java | 7 +++++++ .../src/main/java/org/nuiton/wikitty/WikittyService.java | 13 +++++++++++-- .../org/nuiton/wikitty/services/WikittySecurityUtil.java | 12 ++++++++++++ .../wikitty/services/WikittyServiceAuthentication.java | 2 +- .../services/WikittyServiceAuthenticationAbstract.java | 11 ++++++----- .../nuiton/wikitty/services/WikittyServiceDelegator.java | 6 +++++- .../org/nuiton/wikitty/services/WikittyServiceStorage.java | 6 ++++++ .../nuiton/wikitty/services/WikittyServiceTransaction.java | 6 +++++- 8 files changed, 53 insertions(+), 10 deletions(-) diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java b/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java index de30af1..b1df263 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java @@ -180,6 +180,13 @@ public class WikittyClient { timeLog.log(start, "logout"); } + public String getSecurityToken(String userId) { + long start = TimeLog.getTime(); + String result = wikittyService.getToken(userId); + timeLog.log(start, "logout"); + return result; + } + public String getSecurityToken() { return securityToken; } diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java b/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java index 3872e5a..8b8f210 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java @@ -22,7 +22,6 @@ package org.nuiton.wikitty; -import java.io.Serializable; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.search.PagedResult; @@ -34,13 +33,14 @@ import org.nuiton.wikitty.services.WikittyServiceNotifier; import org.nuiton.wikitty.services.WikittyServiceStorage; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryResult; import org.nuiton.wikitty.query.WikittyQueryResultTreeNode; import org.nuiton.wikitty.search.TreeNodeResult; +import org.nuiton.wikitty.services.WikittyServiceAuthentication; +import org.nuiton.wikitty.services.WikittyServiceAuthorisation; /** * Wikitty service. @@ -127,6 +127,15 @@ public interface WikittyService { */ public void logout(String securityToken); + /** + * 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 + * + * @param user l'utilisateur pour l'equel il faut recherche/creer le token + * @return le token de l'utilisateur + */ + public String getToken(String userId); + /* * Storage */ diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityUtil.java b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityUtil.java index 5a4bf63..44948fd 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityUtil.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityUtil.java @@ -25,6 +25,7 @@ import java.util.Collections; import java.util.Date; import java.util.Set; import org.nuiton.config.ApplicationConfig; +import org.nuiton.wikitty.WikittyClient; import org.nuiton.wikitty.WikittyConfigOption; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.entities.Wikitty; @@ -33,6 +34,9 @@ import org.nuiton.wikitty.entities.WikittyGroupHelper; import org.nuiton.wikitty.entities.WikittyGroupImpl; import org.nuiton.wikitty.entities.WikittyTokenHelper; import org.nuiton.wikitty.entities.WikittyUser; +import org.nuiton.wikitty.query.WikittyQuery; +import org.nuiton.wikitty.query.WikittyQueryMaker; +import org.nuiton.wikitty.query.WikittyQueryResult; /** * @@ -153,4 +157,12 @@ public class WikittySecurityUtil { return result; } + static public WikittyGroup getAppAdminGroup(WikittyClient client) { + WikittyQuery criteria = new WikittyQueryMaker().and() + .exteq(WikittyGroup.EXT_WIKITTYGROUP) + .eq(WikittyGroup.ELEMENT_FIELD_WIKITTYGROUP_NAME, WIKITTY_APPADMIN_GROUP_NAME).end(); + WikittyGroup result = client.findByQuery(WikittyGroup.class, criteria); + return result; + } + } diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java index a0d84bb..6f28cb7 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java @@ -112,7 +112,7 @@ public class WikittyServiceAuthentication extends WikittyServiceAuthenticationAb throw new SecurityException("bad login or password"); } - String tokenId = getToken(user); + String tokenId = getToken(userId); if (log.isDebugEnabled()) { log.debug(String.format("User logged: '%s'", login)); } diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java index dd51ea7..98e748b 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java @@ -90,14 +90,15 @@ public abstract class WikittyServiceAuthenticationAbstract extends WikittyServic * 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 * - * @param user l'utilisateur pour l'equel il faut recherche/creer le token + * @param userId l'utilisateur pour l'equel il faut recherche/creer le token * @return le token de l'utilisateur */ - protected String getToken(Wikitty user) { + @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(WikittyToken.ELEMENT_FIELD_WIKITTYTOKEN_USER, user.getWikittyId()) + .eq(WikittyToken.ELEMENT_FIELD_WIKITTYTOKEN_USER, userId) .end() .setLimit(1); @@ -117,13 +118,13 @@ public abstract class WikittyServiceAuthenticationAbstract extends WikittyServic Wikitty wikittyToken = new WikittyImpl(tokenId); // force add extension to wikitty WikittyTokenHelper.addExtension(wikittyToken); - WikittyTokenHelper.setUser(wikittyToken, user.getWikittyId()); + WikittyTokenHelper.setUser(wikittyToken, userId); WikittyTokenHelper.setDate(wikittyToken, new Date()); getDelegate().store(null, Arrays.asList(wikittyToken), false); if (log.isDebugEnabled()) { log.debug(String.format("token '%s' is for login '%s'", - tokenId, WikittyUserHelper.getLogin(user))); + tokenId, userId)); } } return tokenId; diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceDelegator.java b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceDelegator.java index ad091cf..e16f4da 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceDelegator.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceDelegator.java @@ -21,7 +21,6 @@ */ package org.nuiton.wikitty.services; -import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; @@ -115,6 +114,11 @@ abstract public class WikittyServiceDelegator implements WikittyService { } @Override + public String getToken(String user) { + return delegate.getToken(user); + } + + @Override public WikittyEvent clear(String securityToken) { return delegate.clear(securityToken); } diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java index 3bf0efa..2eb00e2 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java @@ -149,6 +149,12 @@ public class WikittyServiceStorage implements WikittyService { } @Override + public String getToken(String user) { + log.warn("getToken asked, but there is no security service"); + return null; + } + + @Override public boolean canWrite(String securityToken, Wikitty wikitty) { return true; } diff --git a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java index 76dd111..d219967 100644 --- a/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java +++ b/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java @@ -44,7 +44,6 @@ import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.entities.Element; -import org.nuiton.wikitty.query.ListObjectOrMap; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryResult; import org.nuiton.wikitty.query.WikittyQueryResultTreeNode; @@ -149,6 +148,11 @@ public class WikittyServiceTransaction implements WikittyService { } @Override + public String getToken(String user) { + return ws.getToken(user); + } + + @Override public WikittyEvent clear(String securityToken) { WikittyEvent e = tx.clear(securityToken); addEvent(securityToken, e); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.