LINUX.ORG.RU

Сообщения bvn13

 

Научите меня переносить треды в Клуб

Форум — Talks

сабж. а то уже которую ветку трут с подписью «в Клуб». а я не могу.

 ,

bvn13
()

Proxy-to-? (Proxy) over OpenVPN

Форум — Admin

Есть OpenVPN сервер, к нему цепляется клиент. Пинги ходят туды-сюды.

Хочу на сервере поставить http-proxy так, чтобы он траффик гонял не напрямую с этой машины, а через vpn-тунель прогонял.

Как настроить?

 ,

bvn13
()

Хочу отдавать static html если недоступен proxy_pass сервер

Форум — Admin

Кейс. Через в nginx настроен proxy_pass на другой порт, который слушает другой веб-сервер (Java, Spring, к примеру). Иногда требуется перегрузить этот веб-сервер. Nginx, соответственно, выдает ошибку, что недоступен сейчас.

Можно ли его «уговорить» отдавать какой-нибудь статический html в таком случае? Можно было бы запилить «объяснительную», почему сервер в дауне, и javasrcipt-ом пытаться перегрузить страницу. Было бы стильно, модно, молодежно.

___

maxcom, почему тег «proxy_pass» некорректный?

 , proxy-pass,

bvn13
()

Есть ли реализация socks5-proxy клиента в виде HttpHost объекта?

Форум — Development

Для TelegramBots библы установка прокси реализована как работа с HttpHost объектом.

Разрабы не чешутся отвечать мне на вопрос про socks5-proxy.

Вот мне и подумалось, что можно как-то обернуть socks5-прокси клиента, чтобы он работал как HttpHost объект.

Может, делал уже кто-то? Или у кого-то мысли есть по этому поводу?

 , , ,

bvn13
()

Серый ЛОР

Галерея — Скриншоты

Стал замечать, что глаза в последнее время устают от темных тем, поэтому плавно перехожу на светлые.

Немного поиграл со стандартной темой white2, получил такой-себе серый (почти) ЛОР.

Чуть больше скриншотов:

( CSS внутри )

 

bvn13
()

Найди Уолли

Форум — Talks

Гугл в этом году на 1 апреля сделал занимательную игру на своих картах.

https://i.imgur.com/joroE22.jpg

Если их открыть, то в левом верхнем углу появится Уолли. Нажав на него - начинается игра.

А Яндекс карты сегодня полдня не работали.

 , ,

bvn13
()

Как пользоваться Telegram, если его заблокируют

Форум — Talks

Буквально со дня на день Роскомнадзор может начать процедуру блокировки мессенджера. 20 марта Роскомнадзор уведомил мессенджер неисполнении требования передать ключи шифрования ФСБ и поставил дедлайн 15 дней. Они истекают 4 апреля.

Пока Telegram в очередной раз пытается донести до российских чиновников, почему передача ключей не возможна, наши специалисты подготовили подробный гид о том, как пользоваться мессенджером в режиме блокировки.

Здесь инструкция РосКомСвободы «Как пользоваться Telegram, если его заблокируют».

Кто предупрежден - тот вооружен! Пользуйтесь сами, передавайте информацию другим!

В статье рассказаны следующие варианты работы телеграм-мессенджера (официальные, поддерживаются нативно в телеграм!):

  • VPN
  • SOCKS5
  • Tor
  • браузер

___

А у меня-таки вопрос. Как на линуксе поднять SOCKS5 сервер?

UPD: нашел хороший ман, как ставить Dante SOCKS5 сервер https://wiki.dieg.info/socks

Перемещено jollheef из general

 , ркс,

bvn13
()

У Телеграма юбилей! 200кк юзверей онлайн

Форум — General

 

bvn13
()

Не отправляются данные на сервер при POST запросе

Форум — Web-development

Господа Java-исты, вопрос к вам.

Юзаю Spring, Thymeleaf (SpringBoot2, Thymeleaf 5 - он же в СпрингБуте 2?)

Есть форма редактирования пользователя:

<form th:action="@{'/admin/users/'+${userForm.id}}" method="post" th:object="${userForm}">
            <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
            <input type="hidden" name="lang" th:value="${#locale.language}"/>
            <input type="hidden" name="id" th:value="${userForm.id}"/>

            <!--roles-->
            <div class="form-group">
                <label for="roles" th:text="#{admin.user.roles}"></label>
                <div id="roles">
                    <div th:each="role : ${roles}">
                        <input type="checkbox" th:field="*{roles[__${role.name}__]}" th:checked="${userForm.roles.get(role)}" th:disabled="${disabledRoles.contains(role)}"/>
                        <span style="padding-left: 10px;" th:text="${@translationService.translate(role)}">Role</span>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <button class="btn btn-success" type="submit" th:text="#{admin.action.update.btn}"></button>
            </div>

        </form>

userForm передается такой объект, предварительно заполненный:

@Getter @Setter
public class UserForm extends BaseForm {

    private String username;
    private String realname;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
    private String phoneNumber;
    private Long telegramChatId = 0L;
    private Boolean deletedMark = false;

    private Map<UserRole.ROLE, Boolean> roles = new HashMap<>();

    private Long city;

}

В итоге имею вот такое: https://i.imgur.com/u67fnlO.png

Bсе бы хорошо, но!

Если переключить галки (снять, поставить), то все хорошо, на сервере в контроллер принимаются только взведенные галки:

    @PostMapping("/{userId:\\d+}")
    public String doUserEdit(@PathVariable(name = "userId") Long userId, UserForm userForm, Model model, Principal principal) {
    //...
    }

Но вот если жмякнуть Submit ничего не трогая, то отрендеренные как «checked» галки на сервер не отправляются.

Почему?

 , , , ,

bvn13
()

YandexBrowser блокирует аддон friGate

Форум — General

Держу не нужно YandexBrowser для хождения на их Webmaster. Сегодня открыл, а он меня начал предупреждать, мол, возможно, это не я расширение поставил, а оно само. И не дает включить расширение обратно.

Возможно, поэтому теперь так: YandexBrowser не нужно

Пост не для того, чтобы спросить, как быть: тут понятно - не использовать YandexBrowser «не нужно». Скорее, пост в качестве предупреждения.

 ,

bvn13
()

C--

Форум — Talks

Вот тут есть любители всяких там Кисьих языков, ЯРов, которые они пилят от своего ССЗБ-ства.

А когда я учился в школе (да, это были 1990-2000е) мы с одноклассником писали на С--. Был чувак в ФИДО (ЕМНИП), который пилил этот самый С-- как синтаксически С-подобный, но компилируемый в asm-код. Проги получались (только под венду, да) минималистичные, считай чистый байт-код, очень шустрые, и всемогущие, ибо дергай-нехочу эти int-ы (системные прерывания).

А чего б вам, создатели КИ, ЯР и иже с ними, не найти исходники да и не продолжить? годная же тема!

Перемещено tailgunner из development

 кя, с--, ,

bvn13
()

Ищу подработку на пару часов в день

Форум — Job

Коротко об умениях:

  • 1С,
  • Java (Spring/SpringBoot, JavaFX и иже с ними, Apache Camel сейчас на основном месте поднимаем в Apache Karaf контейнерах),
  • Python 3 (Tornado, если суть),
  • ReactJS (Flux делал в одном проекте),
  • могу CSS (но не фанатею),
  • HTML,
  • могу и в админство, но тоже не фанатею, и не особо уже люблю. Видимо, стар стал.

оставлю ссылку

 

bvn13
()

Получить слово на основании части слова из строки

Форум — Development

Как?

Пример:

aaa bbb ccdddfff gg

Есть подстрока ddd, мне нужно получить ccdddfff

 ,

bvn13
()

Новый (для меня) pastebin (текст и картинки) с полным API - работает с curl тоже

Форум — General

https://ptpb.pw/

Перепосщивать хау-ту не буду. По ссылке прямо все четко написано, с примерами.

 , ,

bvn13
()

Spring не хочет писать в БД

Форум — Development

Создал issue, но не уверен, что ответят мне там.

Не знаю, как быть. При записи в БД через Repository получаю фриз, контекст не возвращается обратно.

Как быть?

 , , pircbotx, ,

bvn13
()

API для FreePBX

Форум — Development

Не являюсь админом ни телефонии, ни этой морды FreePBX. Как она устроена - тоже не знаю.

Хочется автоматизировать перевод номеров телефонов.

Есть какое-то API? или воспользоваться стандартными http-запросами? я посмотрел, там эта форма отсылает на сервер данные в виде php-массивов... меня это страшит.

 , , freeepbx

bvn13
()

Yandex.Касса, basic authorization - Illegal password format

Форум — Development

Может, сталкивался кто?

Автоматизирую возвраты по кассе.

В доках пишут, что нужно делать авторизацию:

curl https://payment.yandex.net/api/v3/refunds \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payment_id": "215d8da0-000f-50be-b000-0003308c89be"
      }'

Я ставлю заголовок Authorization в значение "Basic "+Base64(КассаИД+":"+Секрет), но получаю в ответ json с ошибкой «Illegal password format».

Если передать левый пароль (секрет), то пишет то же самое.

Где собака порылась?

 , , , , yandex касса

bvn13
()

Отправить POST на сервер и обойти проверку CORS

Форум — Development

Есть сервис https://baza-otvetov.ru, на котором есть форма викторины https://baza-otvetov.ru/quiz

Сервер отдает на запрос к https://baza-otvetov.ru/quiz страницу html, а после загрузки выполняется следующий javascript-код

<script type="text/javascript">
    function ask(){
        $.ajax({
        cache: false,
        type: "POST",
        url: "/quiz/ask",
        data: {
        },
        beforeSend: function(){
            $(".check").html('<div style="text-align:center;"><img src="/design/images/ajaxloader.gif" /></div>');
        },
        success: function(html){
            $(".check").html(html);
        },
        error: function(){
            $(".check").html('Произошла ошибка, попробуйте обновить страницу.');
        }
        });
    }
    $(document).ready(function () {
        ask();
    });
</script>

Т.е. вопрос с ответами он подгружает POST-запросом к https://baza-otvetov.ru/quiz/ask. Так вот, я никак не могу сэмулировать этот ПОСТ-запрос.


@SpringBootApplication
public class PostrequestApplication implements CommandLineRunner {

	private static final Logger logger = LoggerFactory.getLogger(PostrequestApplication.class);
	private static final String USER_AGENT = "Mozilla/5.0";

    static final String COOKIES_HEADER = "Set-Cookie";
    static java.net.CookieManager msCookieManager = new java.net.CookieManager();


    public static void main(String[] args) {
		SpringApplication.run(PostrequestApplication.class, args);
	}

	@Override
	public void run(String... strings) throws Exception {
        logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>> START <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");

        System.setProperty("sun.net.http.allowRestrictedHeaders", "true");


        HttpsURLConnection get = sendGet("https://baza-otvetov.ru/quiz");
        HttpsURLConnection post = preparePostConnection("https://baza-otvetov.ru/quiz/ask", get);
        sendPost(post);
	}


    private HttpsURLConnection preparePostConnection(String url, HttpsURLConnection get) throws Exception {

        System.out.println("\nGET RESPONSE HEADERS");

        Map<String, List<String>> map = get.getHeaderFields();
        for (Map.Entry<String, List<String>> entry : map.entrySet()) {
            System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
        }


        System.out.println("POST: "+url);

        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

        con.setRequestMethod("POST");

        //set cookies
        Map<String, List<String>> headerFields = get.getHeaderFields();
        List<String> cookiesHeader = headerFields.get(COOKIES_HEADER);

        if (cookiesHeader != null) {
            for (String cookie : cookiesHeader) {
                msCookieManager.getCookieStore().add(null, HttpCookie.parse(cookie).get(0));
            }
        }

        if (msCookieManager.getCookieStore().getCookies().size() > 0) {
            // While joining the Cookies, use ',' or ';' as needed. Most of the servers are using ';'
            con.setRequestProperty("Cookie", join(msCookieManager.getCookieStore().getCookies(), ";"));
        }

        //add reuqest header
        con.setRequestProperty("content-length", "0");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7");
        //con.setRequestProperty("Access-Control-Allow-Origin", "*");
        //con.setRequestProperty("Access-Control-Allow-Credentials", "true");
        con.setRequestProperty("origin", "https://baza-otvetov.ru");
        con.setRequestProperty("referer", "https://baza-otvetov.ru/quiz");

        System.out.println("\nPOST REQUEST HEADERS");
        Map<String, List<String>> map_post = con.getHeaderFields();
        for (Map.Entry<String, List<String>> entry : map_post.entrySet()) {
            System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
        }


        return con;
    }


    private HttpsURLConnection sendGet(String url) throws Exception {

        System.out.println("GET: "+url);

        URL obj = new URL(url);
        HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

        // optional default is GET
        con.setRequestMethod("GET");

        //add request header
        con.setRequestProperty("User-Agent", USER_AGENT);

        int responseCode = con.getResponseCode();
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        //print result
        System.out.println(response.toString());

        return con;
	}


    private void sendPost(HttpsURLConnection con) throws Exception {

        // Send post request
        con.setDoOutput(true);

        int responseCode = con.getResponseCode();
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        //print result
        System.out.println("RESPONSE: "+response.toString());

    }


    public static String join(List<HttpCookie> var0, String var1) {
        StringBuffer var2 = new StringBuffer();

        for(Iterator var3 = var0.iterator(); var3.hasNext(); var2.append(var3.next().toString())) {
            if (var2.length() != 0) {
                var2.append(var1);
            }
        }

        return var2.toString();
    }

}

Все равно сервер ничего не возвращает.

Как побороть CORS?

 , , , just-for-fun, web-client

bvn13
()

А Yoba-то подражает

Форум — Talks

Извините за пикабу, но https://pikabu.ru/story/kogda_quotvodyankiquot_byili_molodyimi_5648287

Думаю, тут есть, кому захочется обсудить.

 

bvn13
()

#RuPostgres Live 6. Максим Богук, DataEgret

Форум — Development

Онлайн-митап. Ссылка: https://www.youtube.com/watch?v=kAz9sZdisnE

Начало через 10 минут.

Details
Подпишитесь на канал: https://www.youtube.com/c/RuPostgres — не пропустите трансляцию! (для этого есть «колокольчик») Там же будет чат для общения!

Очень глубокое погружение в очень продвинутый SQL.

В этот раз будет нечто ещё более безумное в плане онлaйна, чем раньше! Гигантский телемост Австралия — Калифорния — Германия — Россия %)

Подробнее о содержании митапа.

Не всегда проблемы производительности базы можно решить изменением настроек или простым созданием индексов. Когда эти простые способы не дают результата, в дело вступают более сложные техники, часто требующие переписывания запросов и тому подобной «дрессировки» оптимизатора.

С точки зрения разработчиков это отдает чёрной магией и выглядит очень сложным хакингом, однако, если разобраться в базовых принципах и научиться их комбинировать, можно добиться улучшения производительности на порядки.

Сегодняшний доклад посвещен нетривиальному использованию индексов для ускорения запросов.

Очень много внимания будет уделено обьяснению, как именно тот или иной приём работает и почему.

1. Использование INDEX ONLY SCAN для ускорения offset запросов
2. Использование индекса по (f1) для ускорения запросов ORDER BY f1, f2 LIMIT N
3. Использование индекса по (f2, f1) для ускорения запросов ORDER BY f1, f2 LIMIT N

В ближайшие месяцы будет продолжение этого доклада, посвящённое другим похожим задачам и проблемам.

 , , ,

bvn13
()

RSS подписка на новые темы