۱۳۹۹ دی ۹, سه‌شنبه

سرویس های ضروری Keycloak

Keycloak یکی ازسرور های احراز هویت قدرتمند حال حاضر است. اپن سورس و در نتیجه رایگان است، اما امکان تهیه پشتیبان حرفه ای از ردهت هم موجود است.
وقتی در حال طراحی اپلیکیشن به صورت میکروسرویس هستیم، هر بیزینسی را به صورت یک سرویس میبینیم، و یکی از مهمترین این سرویس ها، مدیریت کاربران است. Kecloak این رو برای شما هندل میکنه و سرویس های شما رو امن میکنه.
حالا من میخوام یک سری از سرویس های کلی Keycloak رو براتون به اشتراک بزارم،‌که کارتون برای شروع راحتتر بشه.

۱۳۹۹ فروردین ۱۲, سه‌شنبه

چطور پیامک میفرستادیم

وقتی که برنامه نویسی رو شروع کردم، تسکی گرفتم برای ارسال پیامک به مشتری هامون. خیلی هم عالی! فکر میکنم باید با جاوا ۵ یا ۶ پیاده میشد، چیزی که مطمئن هستم این که سرویس دهنده ما از روش‌های قدیمی برای دریافت پیامک از طرف ما استفاده میکرد. من این کد رو از آقای مجیدی (یکی از مدیران اون مجموعه، که واقعاً کارش درست بود) گرفتم، و حالا اون با شما هم به اشتراک میزارم،‌ شاید روزی بدرد کسی خورد:

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class SMS {
    public static void sendSms(String mobile, String msg) throws Exception {
        String url = "{SERVER_URL}";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection)obj.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", "Mozilla/5.0");
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        con.setRequestProperty("accept-charset", "UTF-8");
        String urlParam =
                "HEADER={YOUR_SMS_NUMBER}&DESTINATION=" + "{COUNTRY_CODE}" + mobile.substring(1) +
                        "&MESSAGEID=1&MESSAGE=" + msg + "&DCS=8";
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        BufferedWriter writer =
                new BufferedWriter(new OutputStreamWriter(wr, "UTF-8"));
        writer.write(urlParam);
        writer.close();
        wr.close();
        int responseCode = con.getResponseCode();
        BufferedReader in =
                new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
    }
}