You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/01/22 19:23:19 UTC

[ignite-teamcity-bot] branch master updated: IGNITE-10989: Removing deprecated methods: user storage moved to context

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new 0bcd520  IGNITE-10989: Removing deprecated methods: user storage moved to context
0bcd520 is described below

commit 0bcd5203897b0d545c2760b41a5df7cacae03d9e
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Tue Jan 22 22:23:15 2019 +0300

    IGNITE-10989: Removing deprecated methods: user storage moved to context
---
 .../main/java/org/apache/ignite/ci/ITcHelper.java  |  3 --
 .../main/java/org/apache/ignite/ci/TcHelper.java   | 15 +------
 .../apache/ignite/ci/tcbot/conf/ITcBotConfig.java  |  3 ++
 .../apache/ignite/ci/tcbot/user/IUserStorage.java  |  7 ++++
 .../ci/teamcity/ignited/TeamcityIgnitedImpl.java   |  2 -
 .../ignite/ci/user/UserAndSessionsStorage.java     | 11 +++--
 .../java/org/apache/ignite/ci/web/CtxListener.java |  5 ---
 .../ignite/ci/web/auth/AuthenticationFilter.java   | 48 ++++++++++++----------
 .../org/apache/ignite/ci/web/rest/login/Login.java | 16 ++++----
 .../ignite/ci/web/rest/login/UserService.java      | 15 ++++---
 .../rest/tracked/GetTrackedBranchTestResults.java  |  5 ++-
 11 files changed, 66 insertions(+), 64 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java
index 3fcf965..4427044 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITcHelper.java
@@ -33,9 +33,6 @@ public interface ITcHelper {
      */
     public String TEAMCITY_BOT_REGIONSIZE = "teamcity.bot.regionsize";
 
-    @Deprecated
-    UserAndSessionsStorage users();
-
     String primaryServerId();
 
     @Deprecated
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
index cd6e75d..073910b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
@@ -18,11 +18,8 @@
 package org.apache.ignite.ci;
 
 import java.util.Objects;
-import java.util.concurrent.atomic.AtomicBoolean;
-import javax.inject.Inject;
-import org.apache.ignite.ci.tcbot.issue.IssueDetector;
+import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
 import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.user.UserAndSessionsStorage;
 
 /**
  * TC Bot implementation. To be migrated to smaller injected classes
@@ -32,9 +29,6 @@ public class TcHelper implements ITcHelper {
     /** Server authorizer credentials. */
     private ICredentialsProv serverAuthorizerCreds;
 
-    @Inject private UserAndSessionsStorage userAndSessionsStorage;
-
-
     /** {@inheritDoc} */
     @Override public void setServerAuthorizerCreds(ICredentialsProv creds) {
         this.serverAuthorizerCreds = creds;
@@ -50,12 +44,7 @@ public class TcHelper implements ITcHelper {
         return !Objects.isNull(serverAuthorizerCreds);
     }
 
-    /** {@inheritDoc} */
-    @Override public UserAndSessionsStorage users() {
-        return userAndSessionsStorage;
-    }
-
     @Override public String primaryServerId() {
-        return "apache"; //todo remove
+        return ITcBotConfig.DEFAULT_SERVER_ID; //todo move to method
     }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java
index f5cf726..0ee6465 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcBotConfig.java
@@ -24,6 +24,9 @@ import org.apache.ignite.ci.conf.BranchesTracked;
  * Teamcity Bot configuration access inteface.
  */
 public interface ITcBotConfig {
+    /** Default server id. */
+    String DEFAULT_SERVER_ID = "apache";
+
     /**
      * @return Tracked branches configuration for TC Bot.
      */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/IUserStorage.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/IUserStorage.java
index 56f3fd1..929fc2e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/IUserStorage.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/user/IUserStorage.java
@@ -19,6 +19,7 @@ package org.apache.ignite.ci.tcbot.user;
 import org.apache.ignite.ci.user.TcHelperUser;
 
 import java.util.stream.Stream;
+import org.apache.ignite.ci.user.UserSession;
 import org.jetbrains.annotations.Nullable;
 
 /**
@@ -31,8 +32,14 @@ public interface IUserStorage {
      */
     @Nullable public TcHelperUser getUser(String username);
 
+    public void putUser(String username, TcHelperUser user);
+
     /**
      * @return All users in storage stream.
      */
     public Stream<TcHelperUser> allUsers();
+
+    @Nullable public UserSession getSession(String id);
+
+    public void putSession(String sessId, UserSession userSes);
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
index e17eddb..79aae65 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
@@ -79,8 +79,6 @@ import static org.apache.ignite.ci.tcmodel.hist.BuildRef.STATUS_UNKNOWN;
  *
  */
 public class TeamcityIgnitedImpl implements ITeamcityIgnited {
-    /** Default server id. */
-    public static final String DEFAULT_SERVER_ID = "apache";
 
     /** Default project id. */
     public static final String DEFAULT_PROJECT_ID = "IgniteTests24Java8";
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java
index 2bcf6fb..6396781 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/user/UserAndSessionsStorage.java
@@ -50,8 +50,8 @@ public class UserAndSessionsStorage implements IUserStorage {
         return ignite;
     }
 
-    @Nullable
-    public UserSession getSession(String sessId) {
+    /** {@inheritDoc} */
+    @Nullable public UserSession getSession(String sessId) {
         return sessions().get(sessId);
     }
 
@@ -60,15 +60,18 @@ public class UserAndSessionsStorage implements IUserStorage {
         return getIgnite().getOrCreateCache(TcHelperDb.getCacheV2TxConfig(USER_SESSIONS));
     }
 
-    public void putSession(String sessId, UserSession userSes) {
+    /** {@inheritDoc} */
+    @Override public void putSession(String sessId, UserSession userSes) {
         sessions().put(sessId, userSes);
     }
 
+    /** {@inheritDoc} */
     @Override @Nullable public TcHelperUser getUser(String username) {
         return users().get(username);
     }
 
-    public void putUser(String username, TcHelperUser user) {
+    /** {@inheritDoc} */
+    @Override public void putUser(String username, TcHelperUser user) {
         users().put(username, user);
     }
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java
index e04def3..50b9e22 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/CtxListener.java
@@ -40,11 +40,6 @@ public class CtxListener implements ServletContextListener {
     /** Javax.Injector property code for servlet context. */
     public static final String INJECTOR = "injector";
 
-    @Deprecated
-    public static ITcHelper getTcHelper(ServletContext ctx) {
-        return getInjector(ctx).getInstance(ITcHelper.class);
-    }
-
     public static Injector getInjector(ServletContext ctx) {
         return (Injector)ctx.getAttribute(INJECTOR);
     }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java
index b76cc37..1e76eee 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/auth/AuthenticationFilter.java
@@ -18,19 +18,13 @@
 package org.apache.ignite.ci.web.auth;
 
 import com.google.common.base.Throwables;
-import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.user.TcHelperUser;
-import org.apache.ignite.ci.user.UserAndSessionsStorage;
-import org.apache.ignite.ci.user.UserSession;
-import org.apache.ignite.ci.util.Base64Util;
-import org.apache.ignite.ci.util.CryptUtil;
-import org.apache.ignite.ci.util.ExceptionUtil;
-import org.apache.ignite.ci.web.CtxListener;
-import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
-import org.jetbrains.annotations.NotNull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import com.google.inject.Injector;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.StringTokenizer;
 import javax.annotation.security.DenyAll;
 import javax.annotation.security.PermitAll;
 import javax.annotation.security.RolesAllowed;
@@ -43,8 +37,19 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.Provider;
-import java.lang.reflect.Method;
-import java.util.*;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.ci.tcbot.user.IUserStorage;
+import org.apache.ignite.ci.user.ICredentialsProv;
+import org.apache.ignite.ci.user.TcHelperUser;
+import org.apache.ignite.ci.user.UserSession;
+import org.apache.ignite.ci.util.Base64Util;
+import org.apache.ignite.ci.util.CryptUtil;
+import org.apache.ignite.ci.util.ExceptionUtil;
+import org.apache.ignite.ci.web.CtxListener;
+import org.apache.ignite.ci.web.rest.exception.ServiceUnauthorizedException;
+import org.jetbrains.annotations.NotNull;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Filters all Jetty request and performs authentication and authorization.
@@ -115,10 +120,11 @@ public class AuthenticationFilter implements ContainerRequestFilter {
 
         String tokFull = authStr.substring(TOKEN_SCHEME.length()).trim();
 
-        final UserAndSessionsStorage users = CtxListener.getTcHelper(context).users();
+        Injector injector = CtxListener.getInjector(context);
+        final IUserStorage users = injector.getInstance(IUserStorage.class);
 
         try {
-            users.getIgnite();
+            injector.getInstance(Ignite.class);
         } catch (Exception e) {
             ExceptionUtil.throwIfRest(e);
 
@@ -148,8 +154,8 @@ public class AuthenticationFilter implements ContainerRequestFilter {
     }
 
     public boolean authenticate(ContainerRequestContext reqCtx,
-                                String tokFull,
-                                UserAndSessionsStorage users) {
+        String tokFull,
+        IUserStorage users) {
 
         final StringTokenizer tokenizer = new StringTokenizer(tokFull, ":");
 
@@ -164,8 +170,8 @@ public class AuthenticationFilter implements ContainerRequestFilter {
             return false;
         }
 
-        if(reqCtx.getUriInfo()!=null)
-            logger.info("[[" + ses.username + "]] "+ reqCtx.getUriInfo().getPath() +" Session:" + sessId + "");
+        if (reqCtx.getUriInfo() != null)
+            logger.info("[[" + ses.username + "]] " + reqCtx.getUriInfo().getPath() + " Session:" + sessId);
 
         TcHelperUser user = users.getUser(ses.username);
         if (user == null) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java
index 02b910e..78affa3 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/Login.java
@@ -22,6 +22,7 @@ import com.google.inject.Injector;
 import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
 import org.apache.ignite.ci.ITcHelper;
 import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
+import org.apache.ignite.ci.tcbot.user.IUserStorage;
 import org.apache.ignite.ci.tcmodel.user.User;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
 import org.apache.ignite.ci.teamcity.pure.ITcLogin;
@@ -73,12 +74,12 @@ public class Login {
         Preconditions.checkNotNull(username);
         Preconditions.checkNotNull(pwd);
 
-        ITcHelper tcHelper = CtxListener.getTcHelper(ctx);
         final Injector injector = CtxListener.getInjector(ctx);
         ITcBotConfig cfg = injector.getInstance(ITcBotConfig.class);
         final ITcLogin tcLogin = injector.getInstance(ITcLogin.class);
-        UserAndSessionsStorage users = tcHelper.users();
+        IUserStorage users = injector.getInstance(IUserStorage.class);
 
+        ITcHelper tcHelper = injector.getInstance(ITcHelper.class);
         String primarySrvId = tcHelper.primaryServerId();
 
         try {
@@ -92,7 +93,7 @@ public class Login {
 
     public LoginResponse doLogin(@FormParam("uname") String username,
                                  @FormParam("psw") String pwd,
-                                 UserAndSessionsStorage users,
+        IUserStorage users,
                                  String primarySrvId,
                                  Collection<String> srvIds,
                                  ITcLogin tcLogin) {
@@ -163,16 +164,17 @@ public class Login {
         return loginRes;
     }
 
-
     private TcHelperUser getOrCreateUser(@FormParam("uname") String username,
-                                         UserAndSessionsStorage users,
-                                         SecureRandom random) {
+        IUserStorage users,
+        SecureRandom random) {
         TcHelperUser user = users.getUser(username);
 
         if (user == null) {
             user = new TcHelperUser();
+
             user.username = username;
-        } else {
+        }
+        else {
             if (user.isOutdatedEntityVersion()) {
                 user.userKeyKcv = null;
                 user._version = TcHelperUser.LATEST_VERSION;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java
index f2c479f..5ab720d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/login/UserService.java
@@ -146,7 +146,7 @@ public class UserService {
         final String login = Strings.isNullOrEmpty(loginParm) ? currUserLogin : loginParm;
         //todo check admin
 
-        final UserAndSessionsStorage users = CtxListener.getTcHelper(ctx).users();
+        final IUserStorage users = CtxListener.getInjector(ctx).getInstance(IUserStorage.class);
         final TcHelperUser user = users.getUser(login);
 
         user.resetCredentials();
@@ -166,12 +166,12 @@ public class UserService {
         Preconditions.checkState(!Strings.isNullOrEmpty(servicePassword));
 
         final ICredentialsProv prov = ICredentialsProv.get(req);
-        final String currentUserLogin = prov.getPrincipalId();
+        final String currUserLogin = prov.getPrincipalId();
         final Injector injector = CtxListener.getInjector(ctx);
         final ITcLogin tcLogin = injector.getInstance(ITcLogin.class);
 
-        final UserAndSessionsStorage users = CtxListener.getTcHelper(ctx).users();
-        final TcHelperUser user = users.getUser(currentUserLogin);
+        final IUserStorage users = injector.getInstance(IUserStorage.class);
+        final TcHelperUser user = users.getUser(currUserLogin);
 
         //todo check service credentials first
         final User tcAddUser = tcLogin.checkServiceUserAndPassword(serviceId, serviceLogin, servicePassword);
@@ -187,7 +187,7 @@ public class UserService {
 
         user.getCredentialsList().add(credentials);
 
-        users.putUser(currentUserLogin, user);
+        users.putUser(currUserLogin, user);
 
         return new SimpleResult("");
     }
@@ -199,10 +199,9 @@ public class UserService {
         @Nullable @FormParam("fullName") final String fullName,
         Form form) {
 
-        final String currUserLogin = ICredentialsProv.get(req).getPrincipalId();
-        final String login = currUserLogin; //todo check admin Strings.isNullOrEmpty(loginParm) ? currUserLogin : loginParm;
+        final String login = ICredentialsProv.get(req).getPrincipalId(); //todo check admin Strings.isNullOrEmpty(loginParm) ? currUserLogin : loginParm;
 
-        final UserAndSessionsStorage users = CtxListener.getTcHelper(ctx).users();
+        final IUserStorage users = CtxListener.getInjector(ctx).getInstance(IUserStorage.class);
         final TcHelperUser user = users.getUser(login);
 
         user.resetNotifications();
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
index 08620fc..c737741 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.ci.web.rest.tracked;
 
 import java.util.Set;
+import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
 import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
 import org.apache.ignite.ci.tcbot.chain.TrackedBranchChainsProcessor;
 import org.apache.ignite.ci.tcbot.visa.TcBotTriggerAndSignOffService;
@@ -42,7 +43,7 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 
 import static org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedImpl.DEFAULT_PROJECT_ID;
-import static org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedImpl.DEFAULT_SERVER_ID;
+import static org.apache.ignite.ci.tcbot.conf.ITcBotConfig.DEFAULT_SERVER_ID;
 
 @Path(GetTrackedBranchTestResults.TRACKED)
 @Produces(MediaType.APPLICATION_JSON)
@@ -162,6 +163,8 @@ public class GetTrackedBranchTestResults {
     ) {
         ICredentialsProv creds = ICredentialsProv.get(req);
 
+        ITcBotConfig cfg = CtxListener.getInjector(ctx).getInstance(ITcBotConfig.class);
+
         if (F.isEmpty(srvId))
             srvId = DEFAULT_SERVER_ID;