From 95ac207e5dd5566490571fda7229b754a2bbe7ac Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 24 Oct 2016 14:06:17 +0300 Subject: ws: fix injections --- .../com/juick/ws/components/PushComponent.java | 41 +++++++++------------- 1 file changed, 16 insertions(+), 25 deletions(-) (limited to 'juick-ws/src/main/java/com/juick/ws/components/PushComponent.java') diff --git a/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java b/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java index 7be2f797..5c4fc969 100644 --- a/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java +++ b/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java @@ -59,6 +59,7 @@ import java.net.Socket; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.concurrent.ExecutorService; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -68,33 +69,30 @@ import java.util.stream.Collectors; * @author Ugnich Anton */ @Component -public class PushComponent implements JuickComponent, DisposableBean, Stream.StreamListener, MessageListener { +public class PushComponent implements DisposableBean, Stream.StreamListener, MessageListener { private static Logger logger = Logger.getLogger(PushComponent.class.getName()); String wns_application_sip; String wns_client_secret; - JdbcTemplate sql; + @Inject + JdbcTemplate jdbc; Socket socket; Stream xmpp; Sender GCMSender; + ExecutorService service; @Inject - public PushComponent(Environment env) { + public PushComponent(Environment env, ExecutorService service) { + this.service = service; logger.info("component initialized"); wns_application_sip = env.getProperty("wns_application_sip", ""); wns_client_secret = env.getProperty("wns_client_secret", ""); GCMSender = new Sender(env.getProperty("gcm_key", "")); - setupSql(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"), env.getProperty("datasource_url", "")); setupXmppComponent(new JID("", env.getProperty("push_jid"), ""), env.getProperty("xmpp_host", "localhost"), NumberUtils.toInt(env.getProperty("xmpp_port", ""), 5347), env.getProperty("push_xmpp_password", "")); - } - - @Async - @Override - public void init() { - xmpp.startParsing(); + service.submit(() -> xmpp.startParsing()); } @Override @@ -102,13 +100,6 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str logger.info("component destroyed"); } - public void setupSql(String driver, String url) { - DriverManagerDataSource dataSource = new DriverManagerDataSource(); - dataSource.setDriverClassName(driver); - dataSource.setUrl(url); - sql = new JdbcTemplate(dataSource); - } - public void setupXmppComponent(JID jid, String host, int port, String password) { try { socket = new Socket(host, port); @@ -141,21 +132,21 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str } else { if (isReply) { subscribedUsers = - SubscriptionsQueries.getUsersSubscribedToComments(sql, jmsg.getMID(), jmsg.getUser().getUID()); + SubscriptionsQueries.getUsersSubscribedToComments(jdbc, jmsg.getMID(), jmsg.getUser().getUID()); } else { // new message - subscribedUsers = SubscriptionsQueries.getSubscribedUsers(sql, jmsg.getUser().getUID(), jmsg.getMID()); + subscribedUsers = SubscriptionsQueries.getSubscribedUsers(jdbc, jmsg.getUser().getUID(), jmsg.getMID()); } } /*** ANDROID ***/ final List regids = new ArrayList<>(); if (isPM) { - regids.addAll(PushQueries.getAndroidRegID(sql, pmTo)); + regids.addAll(PushQueries.getAndroidRegID(jdbc, pmTo)); } else { List uids = subscribedUsers.stream().map(com.juick.User::getUID).collect(Collectors.toList()); if (uids.size() > 0) { - regids.addAll(PushQueries.getAndroidTokens(sql, uids)); + regids.addAll(PushQueries.getAndroidTokens(jdbc, uids)); } } @@ -182,11 +173,11 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str /*** WinPhone ***/ final List urls = new ArrayList<>(); if (isPM) { - urls.addAll(PushQueries.getWinPhoneURL(sql, pmTo)); + urls.addAll(PushQueries.getWinPhoneURL(jdbc, pmTo)); } else { List uids = subscribedUsers.stream().map(com.juick.User::getUID).collect(Collectors.toList()); if (uids.size() > 0) { - urls.addAll(PushQueries.getWindowsTokens(sql, uids)); + urls.addAll(PushQueries.getWindowsTokens(jdbc, uids)); } } @@ -227,11 +218,11 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str /*** iOS ***/ final List tokens = new ArrayList<>(); if (isPM) { - tokens.addAll(PushQueries.getAPNSToken(sql, pmTo)); + tokens.addAll(PushQueries.getAPNSToken(jdbc, pmTo)); } else { List uids = subscribedUsers.stream().map(com.juick.User::getUID).collect(Collectors.toList()); if (uids.size() > 0) { - tokens.addAll(PushQueries.getAPNSTokens(sql, uids)); + tokens.addAll(PushQueries.getAPNSTokens(jdbc, uids)); } } if (!tokens.isEmpty()) { -- cgit v1.2.3