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;