Pull to refresh
0
0

Пользователь

Send message

6 способов: как добавить security для Rest сервиса в Java

Reading time10 min
Views127K

В данной статье я попытаюсь описать несколько способов, а точнее 6, как добавить security для rest сервиса на Java.



Перед нашей командой была поставлена задача найти все возможные способы добавить security к rest сервису. Проанализировать все за и против и выбрать наиболее подходящий для нашего проекта. Когда я начал искать такую статью в Гугле ничего подходящего не нашел, а были лишь фрагменты и мне пришлось собирать эту информацию по крупицам. Так что думаю, данная статья будет полезна и другим Java разработчикам, пишущим back-end. Я не буду утверждать, что какой-то из этих способов лучше или хуже, все зависит от поставленной задачи и конкретного проекта. Поэтому какой из шести способов подходит больше всего вашему проекту решать только Вам. Я постараюсь описать принцип каждого из подходов и дать небольшой пример с использованием Java и Spring Security.

6 способов
Total votes 26: ↑21 and ↓5+16
Comments16

Будущее нашей цивилизации: гибель или бессмертие?

Reading time16 min
Views96K
Наблюдая за тем, как развивается технический прогресс, наука и медицина, все чаще приходишь к мысли, что к концу XXI века человечество обретет силу древних богов, о которых когда-то слагались мифы. Но к чему все это приведет и что ждет нас на пути к Олимпу?

image

Все технические революции, которые мы наблюдаем, можно считать этапами большого пути к одной великой цели: созданию планетарной цивилизации. Переход к ней должен стать, вероятно, величайшим событием в истории человечества. Мало того, поколение живущих сегодня людей можно смело считать самым значительным из всех, что когда-либо жили на нашей планете. Именно они должны определить, достигнет ли человечество этой великой цели или будет ввергнуто в пучину хаоса. С того момента, когда наши предки впервые вышли из Африки около 100 000 лет назад, миновало около 5000 поколений, но лишь одно поколение — сегодняшнее — определит судьбу нашего мира.
И к чему это все?
Total votes 137: ↑126 and ↓11+115
Comments76

Искусственному интеллекту быть

Reading time6 min
Views15K
В связи с недавней статьей про невозможность создания ИИ хочу вам предложить иной взгляд и аргументы на возможность создания ИИ, притом вполне возможно что мы с вами станем тому свидетелями.

Нет особого желания окунаться в философские аспекты того, что можно назвать интеллектом, в особенности человеческим. В конце концов большинство людей, которые читают данный топик, скорее заинтересованы в технической реализации, нежели в рассуждениях о сферическом коне в вакууме.
Читать дальше →
Total votes 60: ↑49 and ↓11+38
Comments142

О глупости умных людей

Reading time3 min
Views349K


Для затравки — простая математическая загадка. Бейсбольный мяч и бита вместе стоят 1 доллар и 10 центов. При этом бита стоит на 1 доллар дороже мяча. Сколько стоит мяч?
Читать дальше →
Total votes 179: ↑155 and ↓24+131
Comments347

Статистика Хабрахабра

Reading time4 min
Views185K
Почти неделя прошла с исполнения хабрахабру 6 лет. Было бы очень интересно посмотреть на графики роста показателей сайта. Т.к. стандартная статистика малоинформативная, решено было собрать всю информацию своими руками и проанализировать. И так, почти неделя парсинга и сбора информации и получены следующие интересные данные(скрытые/удаленные посты/пользователи и их комментарии не учтены):
  • Больше всего постов написал alizar — 4298, рекорд 12 постов в день поставлен 18 октября 2006
  • Больше всего комментариев написал VolCh — 19323, установив личный рекорд 27 июля 2011 года в количестве 140 комментариев.
  • Больше всех опубликовал постов в день freetonik —21 топик 26 августа 2007
  • Максимальная активность хабры в день — опубликовано 105 топиков: 18 февраля 2010 и 22 июня 2008 года.
  • Максимальная активность хабры в месяц — опубликовано 2055 топиков в марте 2010
  • Среднее значение кармы: +7,83
  • Средний рейтинг топика: +24,75
  • Всего комментариев: 3 703 022.
  • Средний рейтинг комментария: +0,98
  • Максимальное количество оставленных комментариев — 1 июля 2011 в количестве 4936 штук.
  • 25% из всех опубликованных топиков были перенесены в черновики
  • Самый комментируемый топик habrahabr.ru/post/123157 собрал 2252 комментария

Красивые графики, методы измерения, база с полученными данными, «хаброаномалии» — все это под катом.
Читать дальше →
Total votes 230: ↑224 and ↓6+218
Comments134

50 цитат о программировании всех времён

Reading time6 min
Views161K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8+328
Comments136

Делаем визуальный web-редактор документов на основе LibreOffice, jodconverter и TinyMCE

Reading time7 min
Views27K
Как же я люблю спецификацию офиса!С написания предыдущей статьи про генерацию Excel документов по шаблону прошло много времени и задача несколько изменилась. Новая задача была поставлена следующим образом: из готового документа excel или word сделать шаблон через веб-интерфейс. В процессе формирования подставлять в шаблон нужные значения, убирать и/или «клонировать» куски шаблона. После формирования, документ должен быть доступен пользователю для визуального редактирования в браузере. Готовый документ должен сохраниться на сервере, быть доступным для скачивания пользователем как в своём расширении (*.doc/*.xls), так и в pdf. При этом верстка скачиваемого файла должна быть идентична шаблону, который был загружен в самом начале (без всяких искажений полей и областей печати).
Что же, задача есть — будем решать!
Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments11

Почему в России почти нет гражданского/коммерческого высокотехнологичного производства?

Reading time27 min
Views410K
Статью с обзором ситуации с микроэлектроникой в России я закончил утверждением, что сейчас в России есть технические возможности для создания любых военных микросхем (если не считаться с ценой). Однако и в комментариях к той статье, и во многих других — всех больше волновал вопрос отсутствия (на уровне погрешности измерений) производства чисто-коммерческих (гражданских) высокотехнологичных продуктов. Этот вопрос волновал и меня, потому я постоянно мучил вопросами всех, кто так или иначе связан с высокими технологиями и бизнесом в России.

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

Под катом попробуем разобраться чем отличаются «высокотехнологичные» компании от «низкотехнологичных», что нужно, чтобы высокотехнологичные компании могли рождаться и выживать, почему с софтом у нас лучше, чем с хардом, с чего начиналась кремниевая долина в США и можно ли её «скопировать», почему Китай всех рвет, а также — окинем взором все, что происходит в Сколково, Роснано, фонде перспективных исследований и приведут ли они к расцвету российских инноваций. Безусловно, я где-то могу ошибаться — буду рад дополнениям в комментариях.

Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
Читать дальше →
Total votes 389: ↑380 and ↓9+371
Comments304

Правильно освобождаем ресурсы в Java

Reading time4 min
Views164K
Неправильное освобождение ресурсов — одна из наиболее часто допускаемых ошибок среди Java-программистов. Под ресурсом в данной статье я буду подразумевать всё, что реализует интерфейс java.io.Closeable. Итак, сразу к делу.

Будем рассматривать на примере OutputStream. Задача: получить на вход OutputStream, сделать некоторую полезную работу с ним, закрыть OutputStream.
Читать дальше →
Total votes 68: ↑59 and ↓9+50
Comments82

Java собеседование. Коллекции

Reading time10 min
Views900K
С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких-то нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Читать дальше →
Total votes 97: ↑86 and ↓11+75
Comments306

Деревянная мышь. История проекта

Reading time17 min
Views143K
Вы когда-нибудь задумывались, как устроены вещи, какой путь они проходят от идеи до реализации, насколько просты простые вещи? Насколько просто сделать расческу? А компьютерную мышь? А деревянную компьютерную мышь из цельного бруска красного дерева с ЖК экранчиком, с собственной электронной начинкой и изготовленным и оплетенным специально для нее кабелем? Думаю, вам будет интересен мой путь, который я прошел за 2,5 года создания моей мышки.



Читать дальше →
Total votes 580: ↑574 and ↓6+568
Comments440

Разработка через страдание

Reading time6 min
Views55K
От переводчика:
Немало копий сломано в спорах о том, когда уместнее KISS, а когда DRY, когда лучше как можно быстрее и проще решить задачу любыми средствами, а когда стоит создавать красивые и универсальные абстракции. Натан Марц, автор популярного фреймворка Storm, используемого в Твиттере, предлагает свой вариант. Чтобы не создавать тонны бесполезного кода ради абстрактной универсальности и в то же время не позволять системе превращаться в кашу из костылей, он использует «разработку через страдание» (suffering oriented programming).



Однажды меня спросили: «Как ты решился пойти на такой страшный риск — писать Storm одновременно с запуском стартапа?» (Storm — фреймворк для распределённых вычислений в реальном времени). Да, пожалуй, со стороны создание такого крупного проекта для стартапа кажется крайне рискованным. Тем не менее, с моей точки зрения это вообще не было рискованным делом. Трудным, но не рискованным.

Я использую стиль разработки, который сильно уменьшает степень риска таких больших проектов, как Storm. Я называю этот стиль «разработкой через страдание». В двух словах: не занимайтесь реализацией технологий, от отсутствия которых вы не испытываете страданий. Этот совет применим как к большим, архитектурным решениям, так и к маленьким повседневным задачам. Разработка через страдание существенно уменьшает риск, гарантируя, что вы всегда работаете над чем-то важным, и что вы хорошо разобрались в предметной области, прежде чем вложить в решение много сил.

Я придумал такую мантру разработки: «Сначала сделай, чтобы было. Затем — чтобы было красиво. Затем — чтобы было быстро».
Читать дальше →
Total votes 101: ↑93 and ↓8+85
Comments64

Красной таблетки не существует

Reading time5 min
Views128K

О чем это


Я долгое время был адептом идей о равенстве, свободе и братстве том, что существует красная таблетка.

— Что можно с помощью ООП решить все проблемы масштабирования программ;
— Что с помощью одной методологии можно выстроить разработку проектов;
— Что с помощью нескольких гениальных книг можно научиться проектировать интерфейсы.

На самом деле, после пары десятков проектов я пришел к выводу, что все это — не более чем заблуждения, и чудеса происходят только в книгах авторов, которые делают на своих бестселлерах миллионы. Или в головах консультантов, которые делают деньги, продавая вам фуфло в виде Agile, KPI и прочих умных слов.

Я не сделаю, возможно, в этом посте никаких открытий. Но сэкономлю вам пару лет, если вы решитесь поверить моему опыту.

Читать дальше →
Total votes 355: ↑326 and ↓29+297
Comments348

JavaScript — полезные материалы

Reading time2 min
Views79K
Хочу поделиться набором ссылок на нексолько полезных, интересных и, возможно, не самых известных материалов по JavaScript. Из них вы узнаете немного больше об истории появления языка, о его настоящем, тонкостях реализации в различных браузерах, и о будущем развития стандарта ECMAScript. О различных способах наследования в том числе об эмуляции «классического» ООП, множественном наследовании и миксинах. О функциональном стиле программирования в JavaScript: чистые функции, map, reduce, частичное применение и композиции функций. И, наконец, что если бы Хемингуэй писал на JavaScript?
Читать дальше →
Total votes 137: ↑130 and ↓7+123
Comments29

Перестаньте беспокоиться. Методы избавления от стресса

Reading time11 min
Views30K
Если есть лекарство, то вам не о чем беспокоиться. Вам достаточно принять его. Если же лекарства нет, то к чему беспокойство? Беспокойство лишь усугубляет страдания. Далай Лама

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

image
Иллюстрация: ladyiris.ru

Хочу сразу предупредить, что в тексте много букв, но если вам интересны методы борьбы с беспокойством, не поленитесь прочитать его до конца.
Читать дальше →
Total votes 99: ↑82 and ↓17+65
Comments54

Зачем нам ООП и что это такое

Reading time5 min
Views194K
Всем привет.

Неделя статей на хабре посвященная ООП. Последняя статья вызвала у меня кучу эмоций и, к сожалению, очень плохих эмоций. Мне очень не понравилась статья. Почему? Потому что в ней передаются какие-то отрицательные эмоции об использовании ООП. Эмоции вызваны лишь тем, что человек не до конца понимает всю силу ООП и хочет убедить всех в том что ООП зло. Самое печальное что люди начинают прислушиваться и кидаться ужасными доводами, не имеющими ничего общего с действительностью. Я думаю что студентам такие статьи противопоказаны больше чем GoF, которых я бы давал как можно раньше. :)

Начнем.
Читать дальше →
Total votes 151: ↑97 and ↓54+43
Comments471

20 вещей, которые я должен был знать в 20 лет

Reading time3 min
Views717K
1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
Читать дальше →
Total votes 544: ↑445 and ↓99+346
Comments544

20 заповедей дизайна пользовательского интерфейса

Reading time9 min
Views44K
Это перевод оригинальной статьи Principles of User Interface Design

«Быть дизайнером — значит не просто собирать разрозненные элементы воедино, упорядочивать их или как-то изменять. Тут нужно и создавать некую ценность, и придавать смысл, и освещать, и упрощать, и трансформировать, и облагораживать, и сгущать краски, и убеждать, и даже в какой-то мере развлекать».

— Пол Рэнд (Paul Rand)

1. Обязанность интерфейса — обеспечение взаимодействия


Интерфейсы служат для обеспечения взаимодействия между людьми и окружающим миром. Они помогают нам прояснять, освещать, реализовывать и наблюдать взаимосвязи; они могут объединять и разъединять нас, влиять на наши ожидания; а кроме того, они дают нам доступ к различным услугам. Не стоит принимать процесс разработки интерфейса за искусство в чистом виде, а сам интерфейс — за некий арт-объект. Интерфейсы призваны выполнять определенные функции, и эффективность их работы можно измерить. Но и к одним только утилитарным вопросам роль интерфейсов не сводится. Действительно хорошие интерфейсы способны вдохновлять, пробуждать, окутывать тайной и укреплять наши отношения с окружающим миром.
Читать дальше →
Total votes 87: ↑75 and ↓12+63
Comments30

Django своими руками часть 2: Интернационализация

Reading time5 min
Views4.3K
Часть 1.

Введение.


Изначально хотелось написать побольше упомянув в статье роуты и борьбу с ошибками, но тема интернационализации довольно обширна оказалась поэтому было решено посвятить пост исключительно ей. Мы будем пользоваться распространенным инструментом gettext в рамках фреймворка.

Все переводы можно разделить на две части:
a) Те что непосредственно в файлах с расширением .py — с ними все просто.
b) И те что в шаблонах — к ним придется написать небольшой велосипед :).
Ну и далее нужно автоматизировать процесс управления переводами.
Итак добро пожаловать под кат.

Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments8

Information

Rating
Does not participate
Location
Athens, Attiki, Греция
Registered
Activity