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 --- .../juick/ws/components/CrosspostComponent.java | 33 ++++++++-------------- 1 file changed, 11 insertions(+), 22 deletions(-) (limited to 'juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java') diff --git a/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java b/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java index 8cda122e..dcb4a709 100644 --- a/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java +++ b/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java @@ -27,11 +27,9 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.tuple.Pair; import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; import org.springframework.core.env.Environment; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.crypto.Mac; @@ -44,6 +42,7 @@ import java.net.URL; import java.net.URLEncoder; import java.security.Key; import java.util.UUID; +import java.util.concurrent.ExecutorService; import java.util.logging.Level; import java.util.logging.Logger; @@ -52,51 +51,41 @@ import java.util.logging.Logger; * @author Ugnich Anton */ @Component -public class CrosspostComponent implements JuickComponent, DisposableBean, Stream.StreamListener, Message.MessageListener { +public class CrosspostComponent implements DisposableBean, Stream.StreamListener, Message.MessageListener { private static Logger logger = Logger.getLogger(CrosspostComponent.class.getName()); public final static String TWITTERURL = "https://api.twitter.com/1.1/statuses/update.json"; public final static String FBURL = "https://graph.facebook.com/me/feed"; public final static String VKURL = "https://api.vk.com/method/wall.post"; - JdbcTemplate sql; + @Inject + JdbcTemplate jdbc; Stream xmpp; String twitter_consumer_key; String twitter_consumer_secret; + ExecutorService service; @Inject - public CrosspostComponent(Environment env) { + public CrosspostComponent(Environment env, ExecutorService service) { + this.service = service; logger.info("component initialized"); try { twitter_consumer_key = env.getProperty("twitter_consumer_key", ""); twitter_consumer_secret = env.getProperty("twitter_consumer_secret", ""); - setupSql(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"), env.getProperty("datasource_url", "")); setupXmppComponent(env.getProperty("crosspost_jid", "crosspost.juick.local"), env.getProperty("xmpp_password", ""), NumberUtils.toInt(env.getProperty("xmpp_port", ""), 5347)); + service.submit(() -> xmpp.startParsing()); } catch (Exception e) { logger.log(Level.SEVERE, e.getMessage(), e); } } - @Async - @Override - public void init() { - xmpp.startParsing(); - } - @Override public void destroy() { 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(String jid, String password, int port) { try { Socket socket = new Socket("localhost", port); @@ -131,7 +120,7 @@ public class CrosspostComponent implements JuickComponent, DisposableBean, Strea } public boolean facebookPost(com.juick.Message jmsg) { - String token = CrosspostQueries.getFacebookToken(sql, jmsg.getUser().getUID()).orElse(""); + String token = CrosspostQueries.getFacebookToken(jdbc, jmsg.getUser().getUID()).orElse(""); if (token.isEmpty()) { return false; } @@ -168,7 +157,7 @@ public class CrosspostComponent implements JuickComponent, DisposableBean, Strea } public boolean vkontaktePost(com.juick.Message jmsg) { - Pair tokens = CrosspostQueries.getVKTokens(sql, jmsg.getUser().getUID()).orElse(Pair.of("", "")); + Pair tokens = CrosspostQueries.getVKTokens(jdbc, jmsg.getUser().getUID()).orElse(Pair.of("", "")); if (tokens.getLeft().isEmpty() || tokens.getRight().isEmpty()) { return false; } @@ -205,7 +194,7 @@ public class CrosspostComponent implements JuickComponent, DisposableBean, Strea } public boolean twitterPost(com.juick.Message jmsg) { - Pair tokens = CrosspostQueries.getTwitterTokens(sql, jmsg.getUser().getUID()).orElse(Pair.of("", "")); + Pair tokens = CrosspostQueries.getTwitterTokens(jdbc, jmsg.getUser().getUID()).orElse(Pair.of("", "")); if (tokens.getLeft().isEmpty() || tokens.getRight().isEmpty()) { return false; } -- cgit v1.2.3