Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
 Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Привет хабр!

Для всех тех кто свято верит в авторитет массы, вот пример когда такой массовый (а следовательно авторитетный) фреймворк имеет модуль с концептуально неверной архитектурой.

Итак - Spring Security.

В нём мы определям правила доступа на уровне ресурса. Это противоречит здравому смыслу: откуда конкретному ресурсу знать кому разрешено им пользоваться?

Пример ресурса: товар в магазине. Товар не знает какую цену за него назначил магазин. И не может сам себе проверить цену.

Как должно быть правильно (а не как в Spring Security)?
- Цену проверяет кассир по ценнику, и он же определяет достаточно ли денег у покупателя на данный товар

Подход в Spring Security вызывает целую массу явных и неявных проблем:
- Платформозависимость (работает только с ресурсами реализованными в Spring)
- Правила доступа захардкожены в коде (это просто пипец, дожили)
- Децентрализация правил авторизации - правила аутентификации настраиваются отдельно от правил доступа (и возможно разными людьми в разных серверах)
- Сама сущность User Role противоречит естественной объектной модели - по факту это как делать доп. поле "type" в каком-то классе: получается декларативный полиморфизм. Правильно было бы выделять каждую отдельную роль в свой класс (например User, Admin) - потому что Роль - это поведение объекта, а не его данные.
- Токены проверяются ресурсном сервере, что нагружает его и базу (особенно в случае хакерских атак)

В результате имеем следующее:
- Authorization хедер по факту является аутентификационным
- Все REST API становятся stateful из-за этого (берётся роль юзера из базы каждый раз) - что противоречит само себе
- Полный хаос в терминологии и реализации - а значит риск потенциальных уязвимостей
- Техническая отсталость функциональности контроля доступа
- Фактическое отсутствие общепринятных решений для Step-up авторизации

Выводы:
1) Не надо доверять авторитету массы
2) Концепции заложенные в WWW ещё далеки от технологически совершенной реализации на практике

Ваши мысли?

PS: я тут уже сделал платформонезависимый протокол авторизации который всё это исправляет. Кому интересно:
https://github.com/INFINITE-TECHNOLOGY/ASCEND
(технически доделано на 100%, но документации нет - и возвожно и не будет никогда, т.к. никому это походу не интересно, а сил и времени не хватает)
12 май 20, 08:41    [22130932]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Вот так например выглядит Ascend JWT:

{
  "guid" : "0edbbc78-5b39-4ac1-be87-0db95943db8f",
  "name" : "registeredUserScopeAuthorization",
  "serverNamespace" : "OrbitSaaS",
  "clientNamespace" : "672032854",
  "identity" : {
    "name" : "registeredUser",
    "authentications" : [ {
      "name" : "user",
      "privateCredentials" : { }
    } ],
    "publicCredentials" : { }
  },
  "scope" : {
    "name" : "registeredUserScope",
    "grants" : [ {
      "urlRegex" : "https:\\/\\/orbit-secured\\.herokuapp\\.com\\/orbit\\/secured\\/user\\/%userGuid%\\/.*",
      "bodyRegex" : null,
      "httpMethod" : "POST"
    }, {
      "urlRegex" : "https:\\/\\/orbit-secured\\.herokuapp\\.com\\/orbit\\/secured\\/user\\/%userGuid%\\/.*",
      "bodyRegex" : null,
      "httpMethod" : "GET"
    } ]
  },
  "durationSeconds" : 300,
  "maxUsageCount" : null,
  "creationDate" : "2020-05-12T03:08:13.646",
  "expiryDate" : "2020-05-12T03:13:13.646",
  "jwt" : "eyJhbG....",
  "prerequisite" : null,
  "refresh" : null,
  "authorizedCredentials" : {
    "phone" : "971559307088",
    "userGuid" : "8085acd2-0f96-49fc-8996-d047b09f0818"
  }
}


Тут и в явном виде ресурсы разрешённые, и поле prerequisite для step up, и поле refresh, и приципалы в структурированном виде...
Это нормальный формат. А не то, что нам предлагает OAuth2.

Там вообще отбито напрочь, expiry date это "claim". CLAIM, Карл!!! У того кто это придумывал явно были нелады с Англ. языком, потому что ни в одном из значений слова Claim, оно не подходит по смыслу того как его используют в OAuth2. И тоже самое с другой терминологией там...
12 май 20, 08:49    [22130940]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Ну и чтобы добить, всё это stateless и поддерживает discoverability.

Просто перейдите по ссылке:
https://ascend-secaas.herokuapp.com/ascend/public/granting/inquire?scopeName=registeredUserScope&serverNamespace=OrbitSaaS

Чтобы узнать как нужно юзеру авторизоваться, чтобы получить доступ к scope "registeredUserScope" на сервере ресурсов "OrbitSaas".

Ссылка выше рабочая, смелее - нажмите. Там интересно :)

Сообщение было отредактировано: 12 май 20, 08:52
12 май 20, 08:52    [22130942]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras

В нём мы определям правила доступа на уровне ресурса. Это противоречит здравому смыслу: откуда конкретному ресурсу знать кому разрешено им пользоваться?

Пример ресурса: товар в магазине. Товар не знает какую цену за него назначил магазин. И не может сам себе проверить цену.

Вот с этого момента сразу непонятно. При чем здесь Spring Security и товар. Очевидно что автор
пропустил целый слой абстракций и сразу прыгнул в предметную область. Это странно и для
читающих совершенно неочевидно. Это - твоя предметная область. И бизнес устанавливает
на нее свои правила. И если у тебя сыр знает сколько он стоит - то значит это выгодно
для бизнеса и это ничего не нарушает. А если ты не смог SpringSec абстракции притянуть
к этому умному сыру то скорее всего тебе либо SpringSec не нужен либо ты чего-то сам
неверно спроектировал.

В инфо-безопасности есть принцип Role-Based-Control
когда следующий сет рулов управляет объектными привилениями всей системы.
Типа

{ role1, permission1, subject1 }
{ role2, permission2, subject2 }
...


Есть еще развитие с сессиями и т.д и есть бумажные версии этого стандарта которые детализируют этот куб свойств.
12 май 20, 10:59    [22131017]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras

- Децентрализация правил авторизации - правила аутентификации настраиваются отдельно от правил доступа (и возможно разными людьми в разных серверах)

Это нормально. Так и работают современные системы. Яркий пример - многофакторная аутентификация проверяет
кто - ты. И назначает тебе токен (или тикет). Далее ты ходишь с этим токеном и заходишь в разные интерфейсы
и интерфейсы уже зная тебя и твою роль в токене авторизуют - проверяют можешь ли ты делать какое-то действие.

Или еще пример. Ты приехал на конференцию. Прошел в здание через проходную. Офицер тебя проверил и выдал
бейджик на котором написано "dakeiras/member". Аутентификация. Далее ты поднимаешься в конферец-холл и следующий офицер
проверяет что ты участник конфы (докладчик) и пропускает тебя в рум для докладчиков. Это авторизация. Ты
авторизован чтобы докладывать.
12 май 20, 11:04    [22131020]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras

- Правила доступа захардкожены в коде (это просто пипец, дожили)

Тем хардкода в Spring - это отдельная и сложная тема. И можно топик создавать.
Но если у тебя рулы безопасности определены через роли - то такой хардкод
я-бы одобрил.

Тоесть если сыр входит в роль "price-readers" тогда правило разрешения
может выглядеть так.

{ price-readers, read, price }


И такой role-based-access-contol (RBAC) можно спокойно хардкодить в код.
Он не будет меняться десятки лет. Или если изменится то только с изменениями
самого кода. Что само по себе нормально.
12 май 20, 11:10    [22131023]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras

- Все REST API становятся stateful из-за этого (берётся роль юзера из базы каждый раз) - что противоречит само себе

Если рассматривать хедеры Rest и сам смысл Request отдельно то никакого противоречия нет.
Если ты правильно проектировал Rest API как stateless то он таковым и остался.
12 май 20, 11:25    [22131039]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
SpringMan
Member

Откуда:
Сообщений: 166
Мне кажется ТС плохо читал документацию. Spring Security вполне может работать c jwt (к примеру keycloak). Если его мало, то вполне можно реализовать свой spring-security-провайдер, который будет работать с твоим токеном. Плюс даже без завязки на базу данных/хардкод чего-либо в коде/без обращений на сервер авторизации и всех этих страшных вещей
P.S. не особо понял, что в твоем jwt-токене такого особенного, чтобы к примеру такую же функциональность нельзя было бы реализовать в keycloak или т.п. ?

Сообщение было отредактировано: 12 май 20, 12:44
12 май 20, 12:37    [22131094]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Я не вижу в сорцах чтобы автор использовал аннотации @Secured, @RolesAllowed.
12 май 20, 12:59    [22131114]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
SpringMan
Member

Откуда:
Сообщений: 166
Ну пока вообще не ясно, что есть кроме токена. Как с этим должен работать человек, который захочет прикрутить эту штуку себе?
12 май 20, 13:05    [22131122]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Непонянто. Автору я предлагаю добавить в README.md краткий пример на 5-10 строчек.
Как подключить в свой проект его штуку.
12 май 20, 13:08    [22131124]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
всем спасибо за комментарии, на свежую голову отвечу сегодня чуть позже подробно.

По использованию - тоже покажу. Интерес есть, это оч. радует - значит буду делать документацию и рассказывать тут.

Из особенностей - в токене есть регулярные выражения для валидаци доступа к URL (с %подстановками%), т.е. токен самовалидируемый.
12 май 20, 13:21    [22131137]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Я кстати обнаружил вредноносный код у тебя.
12 май 20, 13:36    [22131156]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
Я кстати обнаружил вредноносный код у тебя.


какой из: Class.forName или context.getBean? :)
12 май 20, 20:15    [22131526]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Вот этот. Надо срочно убрать из кода.

compile "io.i-t:bobbin:3.0.0"
12 май 20, 20:20    [22131530]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
И если у тебя сыр знает сколько он стоит - то значит это выгодно
для бизнеса и это ничего не нарушает.


Правильно пишете, с точки зрения традиционного понимания Web безопасности.
Но что мы тут предлагаем - поменять это понимимание: вынести безопасность в отдельный инфраструктурный слой, прозрачный для приложений. Т.е. то, как это и было задумано изначально при проектировании Веба (но к сожалению не было осилено до сих пор).

автор
Это нормально. Так и работают современные системы. Яркий пример - многофакторная аутентификация проверяет
кто - ты. И назначает тебе токен (или тикет). Далее ты ходишь с этим токеном и заходишь в разные интерфейсы
и интерфейсы уже зная тебя и твою роль в токене авторизуют - проверяют можешь ли ты делать какое-то действие.

Или еще пример. Ты приехал на конференцию. Прошел в здание через проходную. Офицер тебя проверил и выдал
бейджик на котором написано "dakeiras/member". Аутентификация. Далее ты поднимаешься в конферец-холл и следующий офицер
проверяет что ты участник конфы (докладчик) и пропускает тебя в рум для докладчиков. Это авторизация. Ты
авторизован чтобы докладывать.

Да, но и в реальном мире это уязвимость в JWT. Вот пример сценария из платёжного мира:

Как сделано в EMV (правильно):
1) Криптограмма (авторизационный токен) транзакции атомарна и содержит в себе аутентификационные данные (PVV или PIN Offset - проверочные значения ПИНа), и сумму покупки. При этом сумма показывается на терминале в момент ввода ПИНа.

Как это было бы сделано в JWT (неправильно):
1) Всё тоже самое, но Вы не видите для какой суммы Вы вводите ПИН. И эта информация (авторизационная) не включается в JWT токен (аутентификационный).
В итоге с Вас списывают больше денег чем нужно.

Сообщение было отредактировано: 12 май 20, 21:12
12 май 20, 21:13    [22131567]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
del

Сообщение было отредактировано: 12 май 20, 21:12
12 май 20, 21:13    [22131569]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Я не вижу в сорцах чтобы автор использовал аннотации @Secured, @RolesAllowed.


Потому что они как раз и замещаются. См. ниже ссылки.

автор
Если рассматривать хедеры Rest и сам смысл Request отдельно то никакого противоречия нет.
Если ты правильно проектировал Rest API как stateless то он таковым и остался.


В широком смысле: если используется контекст, это уже не Stateless. Роль пользователя в контексте хранится.
В общем, это неидеальная ситуация.
12 май 20, 21:22    [22131573]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Мне кажется ТС плохо читал документацию. Spring Security вполне может работать c jwt (к примеру keycloak). Если его мало, то вполне можно реализовать свой spring-security-провайдер, который будет работать с твоим токеном. Плюс даже без завязки на базу данных/хардкод чего-либо в коде/без обращений на сервер авторизации и всех этих страшных вещей
P.S. не особо понял, что в твоем jwt-токене такого особенного, чтобы к примеру такую же функциональность нельзя было бы реализовать в keycloak или т.п. ?


И всё это остаётся узко связанным с кодом приложения.

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

автор
Непонянто. Автору я предлагаю добавить в README.md краткий пример на 5-10 строчек.
Как подключить в свой проект его штуку.


Очень просто, и максимально отвязанно от самих приложений.

Клиентская часть (Ascend Granting Client Java SDK):
    @Autowired
    ClientAuthorizationGrantingService clientAuthorizationGrantingService
...
        HttpResponse httpResponse = clientAuthorizationGrantingService.sendAuthorizedHttpMessage(
                new AuthorizedHttpRequest(
                        url: "$orbitUrl/orbit/secured/user/${authorization.authorizedCredentials.get("userGuid")}/history",
                        method: "GET",
                        headers: [
                                "Content-Type" : "application/json",
                                "Accept"       : "application/json"
                        ],
                        scopeName: "registeredUserScope",
                        ascendUrl: ascendGrantingUrl,
                        authorizationClientNamespace: chatId.toString(),
                        authorizationServerNamespace: "OrbitSaaS"
                )
        )

Вот всё, что требуется. Такой код сделает следующее внутри:
1) Спросит у Авторизационного сервера, какие есть варианты для авторизации для scope "OrbitSaas"
2) Автоматически даст юзеру выбрать желаемый вариант аутентификации и авторизации (интерактивно)
3) Поищет в клиентском хранилище, есть ли уже такие активные (non-expired, not exceeded usage count) авторизации (или Refresh к ним)
4) Если нет - Соберёт данные для аутентификации (включая пользовательский ввод)
5) Пошлёт авторизационный запрос на Authorization Granting Server.
6) Получит авторизационный токен, сохранит его в пользовательское хранилище
7) Включит его в запрос к защищённому ресурсу (и увеличит счётчик использований в клиентском хранилище)

Сейчас делается клиентский SDK для JavaScript.

Сообщение было отредактировано: 12 май 20, 21:37
12 май 20, 21:37    [22131585]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
На сервере (защищённом ресурсе):

https://github.com/INFINITE-TECHNOLOGY/ORBIT/tree/master/orbit-sdk/src/main/groovy/io/infinite/orbit/configurations/security

Т.е. фильтр:
package io.infinite.orbit.configurations.security

import groovy.util.logging.Slf4j
import io.infinite.ascend.validation.client.services.ClientAuthorizationValidationService
import io.infinite.blackbox.BlackBox
import io.infinite.carburetor.CarburetorLevel
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Service
import org.springframework.web.filter.OncePerRequestFilter

import javax.servlet.FilterChain
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse

/**
 * https://github.com/OmarElGabry/microservices-spring-boot/blob/master/spring-eureka-zuul/src/main/java/com/eureka/zuul/security/JwtTokenAuthenticationFilter.java
 */

@Slf4j
@BlackBox(level = CarburetorLevel.METHOD)
@Service
class OrbitJwtTokenAuthenticationFilter extends OncePerRequestFilter {

    ClientAuthorizationValidationService clientAuthorizationValidationService = new ClientAuthorizationValidationService()

    @Value('${ascendValidationUrl}')
    String ascendValidationUrl

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) {
        clientAuthorizationValidationService.validateServletRequest(ascendValidationUrl, request, response, filterChain)
    }

}


Но по факту это может быть платформонезависимый реверс прокси.
12 май 20, 21:43    [22131594]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
И таких картинок много, документация готова на 70%. Не хватает времени добить :(

К сообщению приложен файл. Размер - 128Kb


Сообщение было отредактировано: 12 май 20, 21:58
12 май 20, 21:52    [22131606]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Сорри, sql.ru не даёт картинку изменить в редактировании сообщения.

К сообщению приложен файл. Размер - 147Kb
12 май 20, 22:00    [22131613]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
SpringMan
Member

Откуда:
Сообщений: 166
dakeiras

И всё это остаётся узко связанным с кодом приложения.

Права довольно часто и есть часть логики приложения. Как быть с правами, которые даются пользователю не напрямую? К примеру: пользователь может видеть/редактировать все объекты у подчиненных ему других пользователей. Или на объекты из определенных регионов и т.п. Довольно много систем, которые не могут быть завязаны только на урлы

Сообщение было отредактировано: 12 май 20, 22:21
12 май 20, 22:21    [22131620]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
автор
Я не вижу в сорцах чтобы автор использовал аннотации @Secured, @RolesAllowed.


Потому что они как раз и замещаются. См. ниже ссылки.

Где конкретнее смотреть? На что они замещаются?
12 май 20, 22:34    [22131630]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
SpringMan
Member

Откуда:
Сообщений: 166
ТС имеет в виду, что все проверки замещаются одним фильтром OrbitJwtTokenAuthenticationFilter

Сообщение было отредактировано: 12 май 20, 22:37
12 май 20, 22:38    [22131633]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
dakeiras
пропущено...


Потому что они как раз и замещаются. См. ниже ссылки.

Где конкретнее смотреть? На что они замещаются?


Вот пример приложения, защищённого с помощью Ascend:

https://github.com/INFINITE-TECHNOLOGY/ORBIT

Конкретнее, вот тут вся конфигурация Spring Security, делегирующая проверки в Ascend.

https://github.com/INFINITE-TECHNOLOGY/ORBIT/tree/master/orbit-sdk/src/main/groovy/io/infinite/orbit/configurations/security

Сообщение было отредактировано: 12 май 20, 22:37
12 май 20, 22:39    [22131634]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
SpringMan
ТС имеет в виду, что все замещается одним фильтром OrbitJwtTokenAuthenticationFilter


Да, спасибо!
12 май 20, 22:39    [22131635]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
А, кстати вот пример клиентской реализации в Swing.

(код самого GUI плохой, прошу не ругаться - он для демонстрации концепта только).

https://github.com/INFINITE-TECHNOLOGY/ORBIT/tree/master/orbit-gui
12 май 20, 22:42    [22131639]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
mayton
пропущено...

Где конкретнее смотреть? На что они замещаются?


Вот пример приложения, защищённого с помощью Ascend:

https://github.com/INFINITE-TECHNOLOGY/ORBIT

Конкретнее, вот тут вся конфигурация Spring Security, делегирующая проверки в Ascend.

https://github.com/INFINITE-TECHNOLOGY/ORBIT/tree/master/orbit-sdk/src/main/groovy/io/infinite/orbit/configurations/security


Разве так делаются презентации? Чувак ты серъезно?

Ты пришел критиковать SpringSecurity и вместо 3 слайдов - ты предлагаешь
ОЗНАКОМИТЬСЯ с исходным кодом чегото там такого. И после этого сделать
выводы что фреймворк с мировым именем имеет неверную архитектуру?

Ты серъезно, родной?
12 май 20, 22:43    [22131641]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
dakeiras
пропущено...


Вот пример приложения, защищённого с помощью Ascend:

https://github.com/INFINITE-TECHNOLOGY/ORBIT

Конкретнее, вот тут вся конфигурация Spring Security, делегирующая проверки в Ascend.

https://github.com/INFINITE-TECHNOLOGY/ORBIT/tree/master/orbit-sdk/src/main/groovy/io/infinite/orbit/configurations/security


Разве так делаются презентации? Чувак ты серъезно?

Ты пришел критиковать SpringSecurity и вместо 3 слайдов - ты предлагаешь
ОЗНАКОМИТЬСЯ с исходным кодом чегото там такого. И после этого сделать
выводы что фреймворк с мировым именем имеет неверную архитектуру?

Ты серъезно, родной?


Не делаются, согласен 100%.
Интерес есть, я очень рад. Теперь есть мотивация сделать норм. документацию и презентацию.

Чуть подождите (1-2 месяца).

Ещё раз спасибо за комментарии.
12 май 20, 22:49    [22131644]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Мне кажется за тобой должок.

Ты еще по своему Толстому Робину-Бобину обещал выкатить доклад.
12 май 20, 22:51    [22131646]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
chpasha
Member

Откуда:
Сообщений: 9222
энтузиазм похвален и в чем-то даже вызывает зависть. но позиционирование в стиле "Д'артаньян прибывает в Париж" неизменно наталкивают на мысли, что имеешь дело с каким-то городским сумасшедшим. Ничего личного ;)
13 май 20, 11:46    [22131896]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
chpasha
энтузиазм похвален и в чем-то даже вызывает зависть. но позиционирование в стиле "Д'артаньян прибывает в Париж" неизменно наталкивают на мысли, что имеешь дело с каким-то городским сумасшедшим. Ничего личного ;)


я сам себя очень долго убеждал что я не поехал. И даже до сих пор немного убеждаю.

Но вроде всё срослось и решение отлично работает на омологационном проекте.

Это при том что это же решение несколько лет в банке на проде крутится (реализованное индусами по моему ТЗ). И тогда та же самая ситуация была.

Это реально опасно для мозга такими проектами заниматься, ночами не спишь - продумываешь решения.

Кстати поэтому и такая интонация у меня, немного с чувством несправедливости :)

С другой стороны, сделав прошлой осенью мега проект на много миллиардов баксов без единого бага (написав транспилятор Кобола в Яву), уверенность в себе оч. возраста, да...
13 май 20, 14:15    [22132080]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
chpasha
энтузиазм похвален и в чем-то даже вызывает зависть. но позиционирование в стиле "Д'артаньян прибывает в Париж" неизменно наталкивают на мысли, что имеешь дело с каким-то городским сумасшедшим. Ничего личного ;)


я сам себя очень долго убеждал что я не поехал. И даже до сих пор немного убеждаю.

По поводу всех велосипедов связанных с безопасностью.

Я брошу 5 копеек. Очень многие Кулибины и Бахметьевы делают свои фреймворки и библиотечки.
Но их разработки не имеют никакого значения до тех пор пока не будет экспертизы со стороны
людей которые инфо-безопасностью занимаются.

И ругать здесь Spring - не продуктивно. Spring это связующий клей для фреймворков. Он просто
предлагает самый верхний уровень абстракций. Если я аннотирую метод @Secured - то я не регламентирую
никоим образом ни алгоритм ни протокол проверки сертификата пользователя. Я отдаю его на откуп
библиотеке и конфигурации. Сюда-же до кучи фильтры сервлетов и прочее. Это просто абстракции.

Ответсвтенность за реализацию и за то как сконфигурировано девелопер берет на себя. Это тоже
самое что внедрить неправильно симметричное шифрование и спалить ключ прямо в сорцах.
Вроде ты и юзал сертифицированные технологии. Но спалился по глупости.

А если ты нашел в JWT Token дефект безопасности - пожалуйста пиши баги сюда
https://github.com/lcobucci/jwt/issues если это действительно баг или предложения по изменениям.
13 май 20, 14:31    [22132102]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Mayton, насчёт "не изобретать свой фреймворк безопасности и не экспериментировать" - это правильно и общеизвестный факт.

И я с ним согласен.

Кстати я занимаюсь безопасностью в частности. Но это не отменяет вышенаписанное.

Могу сказать одно: есть разрыв между теоретическим аппаратом Веб Безопасности и прикладными моделями предметных областей (ООП, та же Java).

Это кстати вызвано отмороженностью (отбитостью) некоторых безопасников, за ними замечено уже :)
Но тем не менее эта проблема имеет место и применима и к Spring Security.
13 май 20, 14:38    [22132110]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Дада. Это в первую очередь относится к теме топика

Spring Security имеет неверную архитектуру


Тема слишком громкая и вызывающая. Я думаю что ее стоит смягчить.

Этот топик - закрыть. А тебе - поднять новый. По безопасности карточных продуктов.
Насколько я понял это твой основной поинт.
13 май 20, 14:46    [22132119]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

Кстати, посмотрел мельком код вашего очередного решения
Правильно ли я понимаю:
1) При изменении пути к контроллеру в случае вашего решения необходимо так же писать скрипт для обновления базы данных (изменение urlTemplate или как он там)
2) Если у меня в body передается что-то в формате, не представимом в виде строки (например - protobuf) - ваше решение не позволяет проверить содержимое body
3) Что с проверкой безопасности в случае multipart request?
4) Что с проверкой безопасности, если в body text/plain, но размеров в пару гигабайт?:)
5) Кеширования регулярных выражений нет, то есть паттерны разбираются на каждый запрос?
19 май 20, 12:21    [22135665]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch,

Привет, спасибо за хорошие вопросы.

автор
1) При изменении пути к контроллеру в случае вашего решения необходимо так же писать скрипт для обновления базы данных (изменение urlTemplate или как он там)

Это будет делаться через гуй, которого пока нет. Поэтому пока через базу там.
Гуй уже в процессе создания, на Vue.js.

автор
2) Если у меня в body передается что-то в формате, не представимом в виде строки (например - protobuf) - ваше решение не позволяет проверить содержимое body

Проверка Body концептуально хитрая задача.
Взять хотя бы Spring ACL - это ужас, и к тому же не все случаи поддерживает (HATEOAS тот же нормально не поддержать).

Поэтому предлагается следующая конвенция:
- Ownership of parent entity проверяется через URL regex, при этом рекомендуется "Myself" approach:
"{chanelName}/videos"

- Ownership of nested entities проверяется через Body regex, но при этом используется только HATEOAS/HAL, т.к. это позволяет избежать нормализации Body и всяких атак на regex.
Т.е. вот так предлагается делать (пишу по памяти):

HTTP 1.1 POST
"/john.doe/videos/15/channel"

Сontent-Type: application/hal+json
Authorization: ....."authorizedCredentials": ["userName":"john.doe"]

/john.doe/channels/3


Где john.doe это authorizedCredential в токене.

И т.о. настройка безопасности:

"urlRegex": "https:\/\/somehost\/someroot\/%username%\/.*"
"bodyRegex": "https:\/\/somehost\/someroot\/%username%\/.*"

Даёт юзеру ключать только свои ресурсы в свои ресурсы.
20 май 20, 09:47    [22136205]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Что с проверкой безопасности в случае multipart request

bodyRegex работает с прочитанным inputStream.
Но как выше написано, предлагается bodyRegex использовать только с HATEOAS/HAL.

Иначе легко допустить уязвимость в написании regex для JSON или XML.

автор
Что с проверкой безопасности, если в body text/plain, но размеров в пару гигабайт?:)

Кастомный валидатор нужен будет вместо regex. В реализации которую индусы делали по моим спекам так было сделано.
Я пока это убрал для простоты.

автор
Кеширования регулярных выражений нет, то есть паттерны разбираются на каждый запрос?

Завёл задачу:
https://github.com/INFINITE-TECHNOLOGY/ASCEND/issues/2

Спасибо!
20 май 20, 09:54    [22136209]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch,

Привет, спасибо за хорошие вопросы.

автор
1) При изменении пути к контроллеру в случае вашего решения необходимо так же писать скрипт для обновления базы данных (изменение urlTemplate или как он там)

Это будет делаться через гуй, которого пока нет. Поэтому пока через базу там.
Гуй уже в процессе создания, на Vue.js.


Нежизнеспособно. Разработчик должен при выполнении рефакторинга каким-то образом узнать, что нужно пойти в какой-то там UI/базу и поменять там URL. При этом еще и требуется написать инструкцию для обновления (например, для релизного стенда - "при выкатывании версии 2 сходите в UI и поменяйте URL").

dakeiras
Проверка Body концептуально хитрая задача.

Только вот в случае спринга я могу это сделать в контроллере, аспектом, HandlerInterceptor. Скорее всего есть еще способы, лень искать. У вас - только во внешней системе. И кастомный фильтр не спасает - в таком случае мне необходимо обновлять этот фильтр всякий раз при изменении контракта.

Сообщение было отредактировано: 20 май 20, 14:42
20 май 20, 14:43    [22136394]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
P.S. Мне кажется или это - волшебно?
Картинка с другого сайта.
20 май 20, 14:54    [22136402]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Нежизнеспособно. Разработчик должен при выполнении рефакторинга каким-то образом узнать, что нужно пойти в какой-то там UI/базу и поменять там URL.


в этом весь смысл. Разработчик НЕ должен управлять доступом. Им должен управлять офицер безопасности.

автор
Только вот в случае спринга я могу это сделать в контроллере, аспектом, HandlerInterceptor.


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

Это создаёт риск ошибок, вовлекает разработчиков в управление доступом, а также не платформонезависимо и не централизованно.

А также разрывает атомарность авторизационной транзакции, деля её на Аутентификацию (JWT) и будущую Авторизацию по факту каждого обращения к ресурсу. Это приводит к тому, что изменения правил доступа получают Обратную Силу, т.е. аутентифицированные пользователи получают новые права автоматически - что нежелательно из-за меньшей предсказуемости и контроля настройки.

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

А правильно было бы проверять доступ в гейтвее, на уровне инфраструктуры.
20 май 20, 14:59    [22136404]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
P.S. Мне кажется или это - волшебно?
Картинка с другого сайта.


Ну нету гуя пока, уже делаю. Даже Vue.js освоил ради этого.
20 май 20, 15:01    [22136405]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
P.S. Мне кажется или это - волшебно?
Картинка с другого сайта.


Ну нету гуя пока, уже делаю. Даже Vue.js освоил ради этого.


Причем тут гуй?
1) Ключ вообще лучше хранить в настройках
2) Для накатывания состояния базы есть liquibase например
3) Вы чистите состояние при каждом рестарте приложения, то есть любые изменения стираются

dakeiras
А правильно было бы проверять доступ в гейтвее, на уровне инфраструктуры.

И что делать с вашим "решением", если логика работы зависит от прав пользователя?:)

dakeiras
Разработчик НЕ должен управлять доступом. Им должен управлять офицер безопасности.

1) Разработчик должен корректно реализовать ПРОВЕРКИ доступа пользователя. Управлять доступом конкретных пользователей он естественно не должен
2) Что делать в случае не http протокола?:) Например в одном из моих проектов можно взаимодействовать с системой через JDBC/ODBC драйвер. Каким образом это вообще реализуемо в вашей системе - никаким?:)

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

1) Ну то есть вы в этом топике сравниваете апельсин и лопату?
2) @PreAuthorize("isFullyAuthenticated() and @mySecurityBean.hasAccessTo(#objectId)") - не является "автоматизацией проверки доступа в acl"? или имеется в виду, что таки нужно реализовать этот самый mySecurityBean?

Сообщение было отредактировано: 20 май 20, 15:17
20 май 20, 15:17    [22136421]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Причем тут гуй?
1) Ключ вообще лучше хранить в настройках
2) Для накатывания состояния базы есть liquibase например
3) Вы чистите состояние при каждом рестарте приложения, то есть любые изменения стираются


Это публичный ключ, его без разницы где хранить.

Как только появится гуй, этот класс вообще исчезнет, т.к. настройки будут правится через ГУЙ только.
Зато видно наглядно как настраивается на кокнетных примерах.

автор
И что делать с вашим "решением", если логика работы зависит от прав пользователя?:)


Это неправильная архитектура. Логика не должна зависеть от прав доступа. Т.е. Админ - это не Юзер, совсем. Это - другая сущность и другая identity. И у админа должно быть отдельное админское приложение.

Всё что должно быть - авторизация и step up авторизация. При этом step up не влияет на логику никак - лишь даёт доступ к существующей логике, но не меняет её.
Пример - менюшки. Неправильно делать так:
if (user.isAdmin()) {
    showUserMenu();
    showAdminMenu();
} else {
    showUserMenu();
}


Правильно делать отдельные приложения для юзеров и отдельные для админов. Это улучшает качество кода, упрощает тестирование и внесение изменений.
20 май 20, 15:31    [22136444]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Разработчик должен корректно реализовать ПРОВЕРКИ доступа пользователя. Управлять доступом конкретных пользователей он естественно не должен


Логика проверки доступа является частью управления доступом, т.е. разработчик может умышленно сделать backdoor.

автор
Что делать в случае не http протокола?:) Например в одном из моих проектов можно взаимодействовать с системой через JDBC/ODBC драйвер. Каким образом это вообще реализуемо в вашей системе - никаким?:)

Ascend - система Веб безопасности, поддерживает только протокол HTTP.

автор
или имеется в виду, что таки нужно реализовать этот самый mySecurityBean?

Да, имеется в виду реализация логики.

Вообще, давайте на секунду абстрагируемся от Спринга.

Ascend встроенный в Reverse Proxy или в гейтвей платформонезависим, и обеспечивает безопасность любых Веб приложений, например PHP, Python, и т.д.
Достаточно контейнеризовать legacy приложение и спрятать его в частной подсети в контейнере.

Сообщение было отредактировано: 20 май 20, 15:36
20 май 20, 15:36    [22136449]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
аутентифицированные пользователи получают новые права автоматически - что нежелательно из-за меньшей предсказуемости и контроля настройки.

Приведите пример, когда это плохо?
20 май 20, 15:39    [22136450]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

dakeiras
Логика не должна зависеть от прав доступа.


Логика легко может зависеть от роли пользователя. Вы видимо считаете, что роли безопасности не могут быть частью "бизнес процессов". Это не так.


dakeiras
Правильно делать отдельные приложения для юзеров и отдельные для админов. Это улучшает качество кода, упрощает тестирование и внесение изменений.


"Менеджер" в автосалоне может сделать 2 скидки в день, а "старший менеджер" - 10.
Одновременно с этим "менеджер" не может продать машину без одобрения "старшего менеджера".
1) Видимо кто-то из них "админ", а кто-то "юзер"?:)
2) Вы видимо предлагаете реализовать 1 ограничение минуя правовую модель, а второе - в ней? А как у вас можно проверить состояние одобрения?
3) нужно для каждого по отдельному приложению сделать?:)
P.S. Пример выше - выдуманный

У меня ощущение что вы взяли из нормальных SECAAS только 1 функцию - ограничение доступа к ресурсам - и пытаетесь ее продать
github
Monthly:

0-5000 successfully granted authorizations - free
Each extra: $0.01 per each successful authorization grant

Кстати, а что будет, если я защищу что-либо вашей системой, а ее взломают? Сколько вы мне денег в таком случае заплатите?

P.S. А что если у меня приложение с сессиями и url + body ни разу не достаточны для понимания, что делает пользователь?

Сообщение было отредактировано: 20 май 20, 15:46
20 май 20, 15:42    [22136455]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
dakeiras
аутентифицированные пользователи получают новые права автоматически - что нежелательно из-за меньшей предсказуемости и контроля настройки.

Приведите пример, когда это плохо?


Вы купили Единый проездной на 1 неделю, он включает:
- Автобус
- Трамвай
- Метро

Но через 3 дня из тарифа убирают Трамвай. Ваш Единый это тоже затрагивает, т.к. он содержит только привязку к тарифу, но не указывает какие конкретно он разрешает виды транспорта.

А по хорошему, должно было затронуть только билеты выпущенные после изменения правил доступа.

Можно добавить проверку на дату\время конечно, но это костыль в данном случае.
20 май 20, 15:52    [22136460]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
mayton
пропущено...

Приведите пример, когда это плохо?


Вы купили Единый проездной на 1 неделю, он включает:
- Автобус
- Трамвай
- Метро

Но через 3 дня из тарифа убирают Трамвай. Ваш Единый это тоже затрагивает, т.к. он содержит только привязку к тарифу, но не указывает какие конкретно он разрешает виды транспорта.

А по хорошему, должно было затронуть только билеты выпущенные после изменения правил доступа.

Можно добавить проверку на дату\время конечно, но это костыль в данном случае.


Классный пример из сторонней области. Вот вам более релевантный:
1) Злоумышленник узнал мой логин и пароль. Я срочно звоню админу с просьбой срезать мне все права. Злоумышленник продолжает спокойно работать со старым токеном. Прекрасное решение, я считаю.
2) Стажеру Васе случайно дали право на функцию "Achtung!!! Налоговая! Отправить сервер с черной бухгалтерией в космос!!!", но спохватились и через 10 секунд забрали. Но у Васи видимо доступ должен остаться :)

Сообщение было отредактировано: 20 май 20, 15:54
20 май 20, 15:54    [22136462]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
P.S. А что если у меня приложение с сессиями и url + body ни разу не достаточны для понимания, что делает пользователь?

Пока условно пусть будет что Stateful не поддерживается.

автор
Кстати, а что будет, если я защищу что-либо вашей системой, а ее взломают? Сколько вы мне денег в таком случае заплатите?


Это надо страховую вовлекать для покрытия рисков.

автор
"Менеджер" в автосалоне может сделать 2 скидки в день, а "старший менеджер" - 10.
Одновременно с этим "менеджер" не может продать машину без одобрения "старшего менеджера".
1) Видимо кто-то из них "админ", а кто-то "юзер"?:)
2) Вы видимо предлагаете реализовать 1 ограничение минуя правовую модель, а второе - в ней? А как у вас можно проверить состояние одобрения?
3) нужно для каждого по отдельному приложению сделать?:)
P.S. Пример выше - выдуманный

Да. Это разные классы\сущности:
class Manager {...}

class SeniorManager {...}


Возможно в общей иерархии наследования, но не обязательно.
Никаких флагов "isSeniorManager" не должно быть. Это неправильное объектное моделирование.
Роль пользователя это его поведение, а не статус. Это кстати одна из основных ошибок в Spring Security - у них какой-то декларативный полиморфизм в виде hasRole(..) сделан.
20 май 20, 16:03    [22136472]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

dakeiras
Да. Это разные классы\сущности:

А если в другом автосалоне 5 ролей - то им нужно отдельную версию с 5 классами делать? Coolstory.
20 май 20, 16:06    [22136477]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras,

dakeiras
Да. Это разные классы\сущности:

А если в другом автосалоне 5 ролей - то им нужно отдельную версию с 5 классами делать? Coolstory.


Да. А что, Вам классов жалко? :)
20 май 20, 16:07    [22136478]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
mayton
пропущено...

Приведите пример, когда это плохо?


Вы купили Единый проездной на 1 неделю, он включает:
- Автобус
- Трамвай
- Метро

Но через 3 дня из тарифа убирают Трамвай. Ваш Единый это тоже затрагивает, т.к. он содержит только привязку к тарифу, но не указывает какие конкретно он разрешает виды транспорта.

А по хорошему, должно было затронуть только билеты выпущенные после изменения правил доступа.

Можно добавить проверку на дату\время конечно, но это костыль в данном случае.

Я не вижу тут особой проблемы. Уменьшай действие токена до 1 суток или до 1 часа и получишь
безопасность управляемую с нужной филегранностью. Искать перфекционизма здесь невозможно
т.к. все алгоритмы криптографии и инфо-безопасности являются компромиссом между
нагрузкой на вычисления и полезным эффектом.

Вряд-ли законы меняются чаще чем 1 раз в сутки. И если человек уволен сегодня то через сутки
его токен экспарится (чел к тому времени подписал обходной лист и получил на руки расчет)
и все доступы для него уже закрыты.

Тоесть это не идеологическая проблема а настроечная. Настраивай срок токена так как тебе удобно.
20 май 20, 16:10    [22136481]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
dakeiras,

пропущено...

А если в другом автосалоне 5 ролей - то им нужно отдельную версию с 5 классами делать? Coolstory.


Да. А что, Вам классов жалко? :)

Нет. Я коробку продавать хочу, а не допиливать классы в зависимости от того, кто к кому за подписью ходит. При том что эта структура еще и изменяться будет.
20 май 20, 16:11    [22136484]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
[quot mayton#22136481]
dakeiras

Я не вижу тут особой проблемы. Уменьшай действие токена до 1 суток или до 1 часа и получишь
безопасность управляемую с нужной филегранностью. Искать перфекционизма здесь невозможно
т.к. все алгоритмы криптографии и инфо-безопасности являются компромиссом между
нагрузкой на вычисления и полезным эффектом.

Вряд-ли законы меняются чаще чем 1 раз в сутки. И если человек уволен сегодня то через сутки
его токен экспарится (чел к тому времени подписал обходной лист и получил на руки расчет)
и все доступы для него уже закрыты.

Тоесть это не идеологическая проблема а настроечная. Настраивай срок токена так как тебе удобно.

Согласен, текущая схема существует, это не критично. Но просто иллюстрирует продуманность решения в "Ascend", именно с точки зрения предсказуемой абстрактной модели безопасности.
20 май 20, 16:13    [22136489]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras


Это надо страховую вовлекать для покрытия рисков.


Ну так вовлекайте. Или вы предлагаете клиенту платить вам + самостоятельно страховать риски?)
20 май 20, 16:14    [22136490]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras
пропущено...


Да. А что, Вам классов жалко? :)

Нет. Я коробку продавать хочу, а не допиливать классы в зависимости от того, кто к кому за подписью ходит. При том что эта структура еще и изменяться будет.


Можно параметризовать однотипные Identity. Это избавит от необходимости делать отдельные сущности в CRM.
И ещё сильнее сократит настройку.

Но админ это 100% другая сущность. Админ не должен иметь доступ к функционалу пользователя (например фин. трасферы).

Сообщение было отредактировано: 20 май 20, 16:18
20 май 20, 16:17    [22136493]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras


Это надо страховую вовлекать для покрытия рисков.


Ну так вовлекайте. Или вы предлагаете клиенту платить вам + самостоятельно страховать риски?)


Я пока инвестора не нашёл для этого проекта. И не уверен что вообще найду.
Возможно придётся самому всё доделывать своими силами. Тогда там будет отказ от отвественности в T&Cs.
20 май 20, 16:19    [22136494]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
dakeiras
Правильно делать отдельные приложения для юзеров и отдельные для админов.
Потом окажется, что у пользователей существуют функциональные и организационные роли, для которых тоже "надо делать отдельные приложения"?
Это улучшает качество кода, упрощает тестирование и внесение изменений.
Ню-ню.
20 май 20, 16:25    [22136498]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
пропущено...

Нет. Я коробку продавать хочу, а не допиливать классы в зависимости от того, кто к кому за подписью ходит. При том что эта структура еще и изменяться будет.


Можно параметризовать однотипные Identity. Это избавит от необходимости делать отдельные сущности в CRM.
И ещё сильнее сократит настройку.

Но админ это 100% другая сущность. Админ не должен иметь доступ к функционалу пользователя (например фин. трасферы).


Вообще-то мой вопрос был в том, как это реализовать, базируясь на вашей системе. Видимо никак.
20 май 20, 16:26    [22136499]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
Вообще-то мой вопрос был в том, как это реализовать, базируясь на вашей системе. Видимо никак.


Там же есть в том же файле настроечном админский доступ. Всё видно как делать.

Ascend абстрактно спроектирован, он ничего не знает ни о пользователях, ни о ролях и т.д.
Он оперирует только 5 сущностями:
- Authorization
- Identity
- Authentication
- Scope
- Grant

автор
Классный пример из сторонней области. Вот вам более релевантный:
1) Злоумышленник узнал мой логин и пароль. Я срочно звоню админу с просьбой срезать мне все права. Злоумышленник продолжает спокойно работать со старым токеном. Прекрасное решение, я считаю.
2) Стажеру Васе случайно дали право на функцию "Achtung!!! Налоговая! Отправить сервер с черной бухгалтерией в космос!!!", но спохватились и через 10 секунд забрали. Но у Васи видимо доступ должен остаться :)


Сорри пропустил этот комментарий. Для этого существует опциональный механизм Refresh, он нативно поддерживается в Ascend.
20 май 20, 16:34    [22136504]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Потом окажется, что у пользователей существуют функциональные и организационные роли, для которых тоже "надо делать отдельные приложения"?


Это чрезвычайно плохая практика менять ГУЙ в зависимости от "роли пользователя".
Древнее зло бизнес анализа, до сих пор живущее - при том по всему миру.

Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.

Т.е. Менеджер видит меню Старшего Менеджера - и может позвать его чтобы тот от своего имени провёл операцию.
Это - хорошая практика.
20 май 20, 16:39    [22136508]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
В общем полиморфирующий ГУЙ это неправильно концептуально.
20 май 20, 16:50    [22136525]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
Вообще-то мой вопрос был в том, как это реализовать, базируясь на вашей системе. Видимо никак.


Там же есть в том же файле настроечном админский доступ. Всё видно как делать.

Ascend абстрактно спроектирован, он ничего не знает ни о пользователях, ни о ролях и т.д.
Он оперирует только 5 сущностями:
- Authorization
- Identity
- Authentication
- Scope
- Grant


Получается, для достижения указанных целей разработчик должен
1) Иметь возможность получить объект с информацией о разрешениях пользователя (я могу сильно ошибаться, но сейчас "разрешения" это набор регулярных выражений. Работать с этим на уровне кода нереально)
2) Написать код, который будет выполнять эти проверки ( вы считаете такой код - ошибкой дизайна )

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

На тему сравнения вашего решения со Spring Security: сравнение с Keycloak было бы более релевантно
20 май 20, 16:58    [22136536]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch,

Посмотрите классы AdminValidator и UserValidator.

Всё что требуется от CRM системы - опубликовать публичный сервис валидации идентичности по GUID:

validateUser/{guid}:

2xx либо 500 в случае неспешной валидации.

validateAdmin/{guid}

Там полностью настроенный пример лежит в файле, с админом и юзером.

Proof of concept уже был сделан полностью и отлично работает.
20 май 20, 17:09    [22136541]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch,

Посмотрите классы AdminValidator и UserValidator.

Всё что требуется от CRM системы - опубликовать публичный сервис валидации идентичности по GUID:

validateUser/{guid}:

2xx либо 500 в случае неспешной валидации.

validateAdmin/{guid}

Там полностью настроенный пример лежит в файле, с админом и юзером.

Proof of concept уже был сделан полностью и отлично работает.


При чем тут идентичность по ID?
Каким образом эта идентичность позволит мне проверить что пользователь не может сделать 11 скидку или для текущего действия надо обратиться для подтверждения к другому пользователю?
Пример посмотрел, API ужасен (метод принимает 2 мапы и возвращает 1 мапу). Привязаться к действию там тоже нельзя.
20 май 20, 17:28    [22136554]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch,

это вы на уровне PrototypeAuthorization настраиваете.

Аутентификация сделано полностью абстрактно от её использования.

Про Мапы: принимает Public и Private credentials, возвращает Authorized credentials.

Я оч. долго перебирал как это упаковать, но лучшего варианта не нашёл, чем в просто мамы.
20 май 20, 17:32    [22136561]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch,

это вы на уровне PrototypeAuthorization настраиваете.

Аутентификация сделано полностью абстрактно от её использования.

Про Мапы: принимает Public и Private credentials, возвращает Authorized credentials.

Я оч. долго перебирал как это упаковать, но лучшего варианта не нашёл, чем в просто мамы.


Все еще жду примера настройки на уровне чего угодно в вашей системе.
Предупреждая дальнейшие "на уровне":
PrototypeAuthorization - содержит информацию о PrototypeIdentity и PrototypeScope.
PrototypeScope - содержит информацию о PrototypeGrant, который представляет из себя несколько регулярных выражений.
Как мне набором регулярных выражений выполнить указанные проверки. Приведите пример пожалуйста.
Естественно в запросе на скидку нет количества скидок, уже сделанных за сегодня - мы ведь не доверяем состоянию клиента.

Или вы согласны, что ваше решение позволяет только проверить есть или нет доступа к конкретному ресурсу, больши ничего не умеет и ни для чего другого не предназначено.
В таком случае хотелось бы увидеть сравнение с другими решениями, которые тоже это умеют.
Например, можете сравнить с keycloak (по-моему, он это тоже умеет)

Сообщение было отредактировано: 20 май 20, 17:46
20 май 20, 17:41    [22136566]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch,

Понял, что требуется пример.

Подготовил (ниже это PrototypeAuthorizations):


Manager (3 скидки):
{
      "name" : "managerAuthorization",
      "identities" : [ {
        "name" : "manager",
        "authentications" : [ {
          "name" : "kerberos"
        }, {
          "name" : "managerGroupMember"
        } ]
      } ],
      "scopes" : [ {
        "name" : "managerScope",
        "grants" : [ {
          "urlRegex" : "https:\\/\\/resourceserver\\.com\\/contentroot\\/secured\\/discount",
          "bodyRegex" : null,
          "httpMethod" : "POST"
        } ]
      } ],
      "durationSeconds" : 1800,
      "maxUsageCount" : 3,
      "prerequisites" : [ ],
      "refresh" : null
}


Senior Manager (10 скидок):
{
      "name" : "seniorManagerAuthorization",
      "identities" : [ {
        "name" : "seniorManager",
        "authentications" : [ {
          "name" : "kerberos"
        }, {
          "name" : "seniorManagerGroupMember"
        } ]
      } ],
      "scopes" : [ {
        "name" : "managerScope",
        "grants" : [ {
          "urlRegex" : "https:\\/\\/resourceserver\\.com\\/contentroot\\/secured\\/discount",
          "bodyRegex" : null,
          "httpMethod" : "POST"
        } ]
      } ],
      "durationSeconds" : 1800,
      "maxUsageCount" : 10,
      "prerequisites" : [ ],
      "refresh" : null
}


Сообщение было отредактировано: 20 май 20, 18:07
20 май 20, 18:03    [22136579]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
В ServerAuthorizationValidationService проверяется maxUsageCount.
20 май 20, 18:06    [22136583]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
dakeiras
Это чрезвычайно плохая практика менять ГУЙ в зависимости от "роли пользователя".
Когда я работал на терминале OS/400, то некоторое время удивлялся пустому пространству в менюшках. Пока не увидел эти же менюшки на терминале коллеги с ролью QSECOFR. Там были действия, недоступные для меня.
Ещё можно было получить пронумерованный список команд. И тоже с дырками в нумерации.
Если хоть чуть-чуть подумать, то это очень удобно: если вы помните, что у команды номер 231, то этот номер не будет зависеть от уровня ваших полномочий, хотя вы можете никогда не узнать, какие команды "скрыты" под номерами 230 или 232.
С терминалом тоже самое - вы можете быть уверены, что F16 это всегда одно и тоже действие и даже можете "тыкать мышкой" в одно и тоже место экрана, не опасаясь "неожиданной реакции".
Древнее зло бизнес анализа, до сих пор живущее - при том по всему миру.
Это вы ничего слаще морковки не пробовали.
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.
"Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
20 май 20, 19:36    [22136657]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

Это ни разу не решение. Скидка считается применённой после формирования заказа, а не просто от нажатия кнопки на фронте.
То есть условный вызов выглядит примерно так:
POST /order { ..., discount: true, ... }
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

Итого пока что ваше решение позволяет только защищать ресурсы и для реализации более менее простой логики вне этого сценария не расширяемо.

P.S. Ваш подход теоретически возможен, но потребует передачи идентификатора заказа в url и сессии на be.

Сообщение было отредактировано: 20 май 20, 19:51
20 май 20, 19:44    [22136662]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras,

Это ни разу не решение. Скидка считается применённой после формирования заказа, а не просто от нажатия кнопки на фронте.
То есть условный вызов выглядит примерно так:
POST /order { ..., discount: true, ... }
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

Итого пока что ваше решение позволяет только защищать ресурсы и для реализации более менее простой логики вне этого сценария не расширяемо.

P.S. Ваш подход теоретически возможен, но потребует передачи идентификатора заказа в url и сессии на be.


В данном случае количество скидок - конечный ресурс. Поэтому его надо располагать на стороне ресурсного сервера, а не в авторизационном сервере. Доступ к ресурсам даётся по идентичности, но наличие ресурсов контролируется в ресурсном сервере - что логично.

{
      "name" : "managerAuthorization",
      "identities" : [ {
        "name" : "manager",
        "authentications" : [ {
          "name" : "kerberos"
        }, {
          "name" : "managerGroupMember"
        }, {
          "name" : "discountDailyLimitCounter"
        } ]
      } ],
      "scopes" : [ {
        "name" : "managerScope",
        "grants" : [ {
          "urlRegex" : "https:\\/\\/resourceserver\\.com\\/contentroot\\/secured\\/order\\?discount=true",
          "bodyRegex" : null,
          "httpMethod" : "POST"
        } ]
      } ],
      "durationSeconds" : 1800,
      "maxUsageCount" : 1,
      "prerequisites" : [ ],
      "refresh" : null
}


автор
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

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

Это классический пример счётчиков\лимитов\доступного остатка\баланса. Это то для чего в первую очередь эта система создавалась - чтобы гарантировать отработку функционального API при валидной авторизации.
20 май 20, 20:04    [22136677]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Basil A. Sidorov,

Раз вы работали на мейнфрейме, Вам понравится мой транспилятор Кобола:

https://github.com/INFINITE-TECHNOLOGY/COBOL
20 май 20, 20:25    [22136688]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Классное слово. Похоже от "распиливать" ?
20 май 20, 20:26    [22136689]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
dakeiras
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.


Basil A. Sidorov
"Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
+100500
это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено.
20 май 20, 23:37    [22136797]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
dakeiras,

Это ни разу не решение. Скидка считается применённой после формирования заказа, а не просто от нажатия кнопки на фронте.
То есть условный вызов выглядит примерно так:
POST /order { ..., discount: true, ... }
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

Итого пока что ваше решение позволяет только защищать ресурсы и для реализации более менее простой логики вне этого сценария не расширяемо.

P.S. Ваш подход теоретически возможен, но потребует передачи идентификатора заказа в url и сессии на be.


В данном случае количество скидок - конечный ресурс. Поэтому его надо располагать на стороне ресурсного сервера, а не в авторизационном сервере. Доступ к ресурсам даётся по идентичности, но наличие ресурсов контролируется в ресурсном сервере - что логично.

{
      "name" : "managerAuthorization",
      "identities" : [ {
        "name" : "manager",
        "authentications" : [ {
          "name" : "kerberos"
        }, {
          "name" : "managerGroupMember"
        }, {
          "name" : "discountDailyLimitCounter"
        } ]
      } ],
      "scopes" : [ {
        "name" : "managerScope",
        "grants" : [ {
          "urlRegex" : "https:\\/\\/resourceserver\\.com\\/contentroot\\/secured\\/order\\?discount=true",
          "bodyRegex" : null,
          "httpMethod" : "POST"
        } ]
      } ],
      "durationSeconds" : 1800,
      "maxUsageCount" : 1,
      "prerequisites" : [ ],
      "refresh" : null
}


автор
Кстати, заказ может быть отменён после формирования. Ваш maxUsage от этого тоже обратно не увеличится.

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

Это классический пример счётчиков\лимитов\доступного остатка\баланса. Это то для чего в первую очередь эта система создавалась - чтобы гарантировать отработку функционального API при валидной авторизации.


1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения?
2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)»
3) сравнения с keycloak ждать?
21 май 20, 00:53    [22136810]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет?
Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD.
21 май 20, 01:07    [22136814]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
вадя
dakeiras
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.


Basil A. Sidorov
"Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
+100500
это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено.

Зачем структуру то?

Просто балете в шапке ссылки:
/manager
/seniorManager

И т.д.

При нажатии проверяется доступ к этому функционалу. Если нет - не пускает и всё.

А делать кашу в общей вьюшке меняющуюся и скачущую - вот за это надо убивать.
21 май 20, 04:39    [22136829]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
Классное слово. Похоже от "распиливать" ?

Transpiler никогда не слышали? Babel там?
21 май 20, 06:08    [22136842]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет?
Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD.


Да что там знать то, при нормально спроектированном API всё что требуется:

- User:
\/secured\/user\/%username\/.*

- Admin:
\/secured\/admin\/%adminname%\/.*

автор
1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения?
2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)»
3) сравнения с keycloak ждать?

Конечно признаю, я этого не отрицал а наоборот подчёркивал.
Система для контроля доступа к веб ресурсам (HTTP->REST, SOAP, HTML (?)).
Она простая как топор сама по себе.
21 май 20, 06:13    [22136844]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Т.е. аналогия следующая: охранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег.
Это знает бухгалтер, который выдаст вам деньги уже в хранилище.
21 май 20, 07:13    [22136856]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
dakeiras
Раз вы работали на мейнфрейме
AS/400 - ни разу не мейнфрейм. Это миникомпьютер, в тогдашней терминологии.
Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был.
21 май 20, 08:43    [22136874]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Basil A. Sidorov
dakeiras
Раз вы работали на мейнфрейме
AS/400 - ни разу не мейнфрейм. Это миникомпьютер, в тогдашней терминологии.
Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был.

Да, почитал, это не мейнфрейм, другой тип компьютера. Кобол в нём кстати тоже поддерживался.
21 май 20, 08:48    [22136876]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
dakeiras
Кобол в нём кстати тоже поддерживался.
Я в курсе, что поддерживался, но не помню, был ли он у нас.
С другой стороны, примерно в это время, разработчики OS/400 мигрировали встроенную базу данных с "нативного" API на SQL, как основной язык манипуляции данными.
21 май 20, 08:51    [22136877]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
mayton
Классное слово. Похоже от "распиливать" ?

Transpiler никогда не слышали? Babel там?

Бабель? Читал Одесские рассказы Бабеля.
21 май 20, 11:02    [22136931]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

dakeiras
Да что там знать то, при нормально спроектированном API всё что требуется:

- User:
\/secured\/user\/%username\/.*

- Admin:
\/secured\/admin\/%adminname%\/.*



Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

dakeiras
Охранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег.
Это знает бухгалтер, который выдаст вам деньги уже в хранилище.

Только в случае вашего "решения" охранник слишком туп, чтобы сообщить что на входе вип-клиент, к которому надо позвать старшего бухгалтера. (Ваше решение не позволяет получить роль пользователя, бред про передачу этого параметру в URL оставьте при себе. Это все равно что охранник на входе спрашивает "вы вип-клиент?")

Кстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:)

Сообщение было отредактировано: 21 май 20, 18:10
21 май 20, 18:08    [22137233]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

оно очень похоже. ОЧЕНЬ похоже.

Но у меня более продуманно.

Собственно оно подтверждает полностью всё написанное мной в этом топике насчёт концепции веб безопасности и как её осуществлять. И правильность моего дизайна.
21 май 20, 19:51    [22137299]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Кстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:)

Это REST URLы.

Веб сайты с ГУЁм будут отдельные:

https://mycoolsystem.com

https://admin.mycoolsystem.com или https://mycoolsystem.com/admin (без автоматической переадресации и без доступа к юзерскому бизнес функционалу)
21 май 20, 19:56    [22137302]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
И пара абстрактных моментов:
- keycloak и ascend одновременно примерно начали делать в ~2016
- keycloak делает вроде redhat, по идее нормальная организация - поэтому вроде неплохо у них получилось
- OAuth2, IETF/RFC - это шизофазийный лингвистический ужас.
- Всё это вместе (Okta, Keycloak, Auth0, etc) разрозненно, плохо кореллируется с Spring Security и OAuth2 и Openidconnect.
В результате возникает каша.

Я о keycloak узнал только от вас. Хотя темой занимаюсь с 2016 года, по мере своих сил делал исследования решений.
Надо сказать отдельное спасибо stackoverflow который засрал выборки в поисковиках.

Вы считаете индусы осилят это всё? Или они осилят RFC? А кто должен кодить тогда за копейки?

Если это такой хороший формат, почему он не общепринятый? (а если он общепринятый, где об этом инфа везде?)

Это кризис веб безопасности. REST существует уже 15 лет. А безопасность до сих пор не стандартизированна на инфраструктурном уровне. Где RESTS (REST Secured), я вас спрашиваю?

Какова стоимость внедрения и поддержки этих решений? Каковы риски уязвимостей из-за неправильной настройки и не полноценной модели безопасности?

И вишенка на торте: 99% людей уверены что всё заебись и всё чётко, надо лишь зайти на stackoverflow - там за 5 минут будет рецепт как сделать безопасность :)
Индусы свято верят в то что Спринг умеет вообще всё на свете.

Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак.

Сообщение было отредактировано: 21 май 20, 20:23
21 май 20, 20:18    [22137313]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
PS: только безопасникам это не говорите, пусть будут блаженны в своём неведении.

Ну и кому организации должны доверять веб безопасность? Чтобы философски осмыслить всё это, требуется годы.
Вы посадите человека реального эксперта по Яве, думаете он будет вникать в тонкости создания модели безопасности?
Любой человек поскорее накидает что-то в настройках, лишь бы QA прошло, и всё. И спит спокойно.
21 май 20, 20:32    [22137327]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак.

Ну расскажи хотя-бы об одной атаке.
21 май 20, 21:47    [22137351]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
автор
Сравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

оно очень похоже. ОЧЕНЬ похоже.

Но у меня более продуманно.


Шикарно. В чем же?

dakeiras
REST существует уже 15 лет.

IP существует уже 39 лет! Где IP-secured я вас спрашиваю (LOL).
Кстати, REST - не протокол:)

dakeiras
Всё это вместе (Okta, Keycloak, Auth0, etc) разрозненно, плохо кореллируется с Spring Security и OAuth2 и Openidconnect.

В случае Keycloak интеграция на уровне "добавьте зависимость и заведется" (в том числе и со Spring Security).

dakeiras
Хотя темой занимаюсь с 2016 года, по мере своих сил делал исследования решений.

Странно, я его за 10 минут год назад нашел...

dakeiras
keycloak и ascend одновременно примерно начали делать в ~2016

То есть за 4 года вы написали решение, которое умеет только защиту по URL. Объем кода за 4 года составил 126 файлов.
По 41,5 файлу в год. Вы в теме бобина заливали что груви позволяет "быстро разрабатывать". Что-то не похоже)


dakeiras
Это REST URLы.

Веб сайты с ГУЁм будут отдельные:

https://mycoolsystem.com

https://admin.mycoolsystem.com или https://mycoolsystem.com/admin (без автоматической переадресации и без доступа к юзерскому бизнес функционалу)


То есть если у меня пара десятков функциональных ролей я должен 20 интерфейсов нарисовать? И единую точку входа ваше "решение" тоже не умеет - необходимо изначально зайти на корректный сайт.

Спасибо, хоть рассмешили:) Серьезно воспринимать это я больше не могу. Особенно после заявления о том, что keycloak не продуман, в отличии от вашего шедевра, который без спринга и чихнуть не может, в том числе на клиенте.
21 май 20, 23:20    [22137384]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
То есть если у меня пара десятков функциональных ролей я должен 20 интерфейсов нарисовать?

Да. При этом это хорошая практика.
Видите, Ascend вас заставляет следовать конвенции правильной.

Но конечно 20 маппингов не надо делать. Делаете такой просто:

@GetMapping("/{userRole}/{user}/documents")
Document getDocuments(...) {...}


Т.е. предиката безопасности должна присутствовать на ифраструктурном уровне (на транспортном уровне - в URL).
Это именно то как задумывался изначально REST, и я вам более того скажу - это было специально изначально заложено в HTTP его создателями.
22 май 20, 06:04    [22137436]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

Кстати, keycloak был выпущен в 2014 году, а не "начал разрабатываться" в 2016. Видимо с поиском у вас не задалось от слова совсем.

dakeiras
Да. При этом это хорошая практика.
Видите, Ascend вас заставляет следовать конвенции правильной.


Пока эта "конвенция" правильна только с ваших слов. Можно ссылки на что-то поавторитетнее?
И пожалуйста - не в теме разделения "пользователь/администратор", а именно для ролей типа менеджер/старший менеджер.

dakeiras
@GetMapping("/{userRole}/{user}/documents")

А если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно).
Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов.
22 май 20, 10:48    [22137538]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Кстати, keycloak был выпущен в 2014 году

Это они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе).

автор
Пока эта "конвенция" правильна только с ваших слов. Можно ссылки на что-то поавторитетнее?

Нету. Но согласитесь конвенция правильная?

автор
А если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно).
Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов.

Основной юскейс Ascend - единственная роль пользователя + Step Up (многоуровневый: T&Cs + Privacy Policy + Login +SMS OTP + ...)

То о чём Вы говорите - наверное лучше какие-то другие решения использовать (возможно тот же Spring Security). Я никогда не говорил что Ascend универсален в чистом виде.

Всё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен.
Keycloak только подтвердил это.
22 май 20, 11:30    [22137576]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Наверное Вы хотите сказать:

Веб безопасность: Keycloak
+ одновременно
Функциональный доступ: Spring Security

Наверное соглашусь.

Ascend здесь альтернатива Keycloak.
22 май 20, 11:32    [22137578]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Я по прежнему жду презнетацию по Робину-Бобину и по твоей супер-секюрной системе
которая порвет Spring Security методы как Тузик грелку.

Должок....
22 май 20, 12:03    [22137597]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Это они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе).


keycloak git log --reverse
commit 1586f461bef88721a42e866dcbd8a4e8abbf9ce0
Author: Bill Burke <bburke@redhat.com>
Date: Fri Jul 5 14:23:16 2013 -0400


dakeiras
Нету. Но согласитесь конвенция правильная?

Бредовая конвенция на мой вкус.
dakeiras
Всё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен.
Keycloak только подтвердил это.

Что именно keycloak и каким образом подтвердил? Имея в виду, что он тоже умеет "защиту ресурсов по url", просто помимо этого предоставляет, например, API для получения данных о пользователе?

Сообщение было отредактировано: 22 май 20, 12:12
22 май 20, 12:13    [22137603]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
автор
Имея в виду, что он тоже умеет "защиту ресурсов по url

Именно эту идею он и подтвердил. То что она правильная.
22 май 20, 13:28    [22137670]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
автор
Имея в виду, что он тоже умеет "защиту ресурсов по url

Именно эту идею он и подтвердил. То что она правильная.


А то что он позволяет делать не только по урлам - это вы видимо пропустили) Мысли "это подтверждает идею того, что урлов не достаточно" не возникло?
22 май 20, 16:37    [22137802]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras
пропущено...

Именно эту идею он и подтвердил. То что она правильная.


А то что он позволяет делать не только по урлам - это вы видимо пропустили) Мысли "это подтверждает идею того, что урлов не достаточно" не возникло?


я и не говорил, что достаточно только URL. Но для юскейса "Мобильный банк" - достаточно и правильно.

А этот топик пусть будет референсом если кто-то свято верит что Спринг всемогущ и всё кроме него не существует\не правильно.

Кстати им необходимо чётко внести это в документацию. А то не очень красиво там написано:

автор
Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.

Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

https://spring.io/projects/spring-security
22 май 20, 16:48    [22137809]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
пропущено...


А то что он позволяет делать не только по урлам - это вы видимо пропустили) Мысли "это подтверждает идею того, что урлов не достаточно" не возникло?


я и не говорил, что достаточно только URL. Но для юскейса "Мобильный банк" - достаточно и правильно.

А этот топик пусть будет референсом если кто-то свято верит что Спринг всемогущ и всё кроме него не существует\не правильно.

Кстати им необходимо чётко внести это в документацию. А то не очень красиво там написано:

автор
Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.

Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

https://spring.io/projects/spring-security

Ваше решение повторяется стандартными средствами Спринг, причем не то чтобы сложно.

dakeiras
всё кроме него не существует\не правильно.

Перестань сравнивать апельсин и лопату. Спринг - это библиотека, а не "решение". Сравнивайте пожалуйста с другими решениями - например с keycloak
22 май 20, 16:52    [22137814]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Вот когда автор доберётся до SpringWeb, SpringData... И окажется что под капотом - херовый томкат с хибером.

И тогда мы все узнаем какое говно этот Spring...
22 май 20, 16:56    [22137816]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
chpasha
Member

Откуда:
Сообщений: 9222
mayton
И тогда мы все узнаем какое говно этот Spring...

пфф...это и так всем известно
22 май 20, 20:09    [22137905]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
mayton
Вот когда автор доберётся до SpringWeb, SpringData... И окажется что под капотом - херовый томкат с хибером.

И тогда мы все узнаем какое говно этот Spring...


Ну почему сразу tomcat?!
Там где-то притаились jetty с netty. :-)
25 май 20, 06:21    [22138773]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Вот именно что притаились.
25 май 20, 08:15    [22138784]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
Lelouch,

>Сравнивайте пожалуйста с другими решениями
+1
25 май 20, 10:33    [22138856]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
mayton
Вот именно что притаились.


Ну помниться во времена Spring Boot 1.2-1,4 с embadded Tomcat были проблемы, а вот Jetty нормально работал.
А для React Spring кроме netty вообще алтернатив нет. :-)
25 май 20, 12:41    [22138977]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Я с год назад тестил (в этом же форуме) что собирается в сборку для Spring/Rest. Выяснили что tomcat.
25 май 20, 12:48    [22138982]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
mayton
Я с год назад тестил (в этом же форуме) что собирается в сборку для Spring/Rest. Выяснили что tomcat.


Да по умолчанию, вставляется ebedded Tomcat, Но можно указать, чтобы вместо Tomcat использовать Jetty.
Сам так, делал, т.к. по началу embedded tomcat глючил со Spring Data JPA.

В принципе из SpringBoot можно "выбросить" и Hibernate.
Можно использовать только Jdbc, через JdbcTemplate.
Норм в принципе. А используя лямбды, для RowMapping, вообще красота получается. :-)
25 май 20, 13:36    [22139019]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Я думаю что дефолтная поставка томката в качестве веб-контейнера - как-то связана
с сертификацией. Видимо он - более стандартный штоли. С Jetty - возможно есть какие-то
нестыковки.
25 май 20, 13:42    [22139021]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mad_nazgul
mayton
Я с год назад тестил (в этом же форуме) что собирается в сборку для Spring/Rest. Выяснили что tomcat.


Да по умолчанию, вставляется ebedded Tomcat, Но можно указать, чтобы вместо Tomcat использовать Jetty.
Сам так, делал, т.к. по началу embedded tomcat глючил со Spring Data JPA.

В принципе из SpringBoot можно "выбросить" и Hibernate.
Можно использовать только Jdbc, через JdbcTemplate.
Норм в принципе. А используя лямбды, для RowMapping, вообще красота получается. :-)


Groovy SQL тоже посмотрите, если нужен чистый SQL.
25 май 20, 13:51    [22139029]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
mayton
Я думаю что дефолтная поставка томката в качестве веб-контейнера - как-то связана
с сертификацией. Видимо он - более стандартный штоли. С Jetty - возможно есть какие-то
нестыковки.


jetty не менее стандартный чем tomcat.
А сейчас вообще, всех пересаживают потихоньку на netty (Spring React)
25 май 20, 14:55    [22139081]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
dakeiras
Groovy SQL тоже посмотрите, если нужен чистый SQL.


Прошу прощения, но нет. Мне больше Kotlin нравиться. :-)
25 май 20, 14:56    [22139082]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mad_nazgul
dakeiras
Groovy SQL тоже посмотрите, если нужен чистый SQL.


Прошу прощения, но нет. Мне больше Kotlin нравиться. :-)

ни разу не пользовался kotlin, т.к. в Груди всё устраивает.
А чем он вам больше нравится?
25 май 20, 17:48    [22139197]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
mad_nazgul
пропущено...


Прошу прощения, но нет. Мне больше Kotlin нравиться. :-)

ни разу не пользовался kotlin, т.к. в Груди всё устраивает.
А чем он вам больше нравится?

Котлин относится к классу строго-типизированных. Значит ошибок рантайма в нем будет меньше чем в Groovy.
Кроме того его делает очень хорошая команда Jetbrains. Тоесть интеграция со средой будет на высоком уровне.
И в котлине есть полезный синтаксический сахар которого давно ждали в Java. И есть красивые конструкции
которые зашли из ФП.
25 май 20, 18:25    [22139224]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
dakeiras
пропущено...

ни разу не пользовался kotlin, т.к. в Груди всё устраивает.
А чем он вам больше нравится?

Котлин относится к классу строго-типизированных. Значит ошибок рантайма в нем будет меньше чем в Groovy.
Кроме того его делает очень хорошая команда Jetbrains. Тоесть интеграция со средой будет на высоком уровне.
И в котлине есть полезный синтаксический сахар которого давно ждали в Java. И есть красивые конструкции
которые зашли из ФП.

Всё это есть в Groovy.
Насчёт команды - да, отличная проприетарная команда :)
25 май 20, 22:20    [22139341]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
забыл ник
Member

Откуда:
Сообщений: 3292
dakeiras
mayton
пропущено...

Котлин относится к классу строго-типизированных. Значит ошибок рантайма в нем будет меньше чем в Groovy.
Кроме того его делает очень хорошая команда Jetbrains. Тоесть интеграция со средой будет на высоком уровне.
И в котлине есть полезный синтаксический сахар которого давно ждали в Java. И есть красивые конструкции
которые зашли из ФП.

Всё это есть в Groovy.
Насчёт команды - да, отличная проприетарная команда :)

Groovy далеко не строготипизированный, ну как минимум не static
25 май 20, 22:31    [22139346]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
dakeiras
mad_nazgul
пропущено...


Прошу прощения, но нет. Мне больше Kotlin нравиться. :-)

ни разу не пользовался kotlin, т.к. в Груди всё устраивает.
А чем он вам больше нравится?


Я неприязненно отношусь к ЯП с не строгой типизацией.
А Kotlin это та же Java, только Kotlin. :-)

Много синтаксического сахара.
Корутины.
Команда Spring Framework работает над совместимостью с Kotlin.
В отличии от Scala, где с работой Spring'ом не очень.
26 май 20, 06:13    [22139446]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
mayton
пропущено...

Котлин относится к классу строго-типизированных. Значит ошибок рантайма в нем будет меньше чем в Groovy.
Кроме того его делает очень хорошая команда Jetbrains. Тоесть интеграция со средой будет на высоком уровне.
И в котлине есть полезный синтаксический сахар которого давно ждали в Java. И есть красивые конструкции
которые зашли из ФП.

Всё это есть в Groovy.
Насчёт команды - да, отличная проприетарная команда :)

Да я уже видел твои Бобины на груви. Мне хватило
26 май 20, 09:49    [22139509]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Вот демо телеграм бот, построенный на моём стеке i-t.io:

http://t.me/david_it_bot

- Логгер Бобина
- AST для логирования (Чёрный Ящик)
- CRM Орбита
- Безопасность (Восход)
- Базовый бот (David)

Новый сайт уже готовится (можно подглядеть тут как оно будет выглядеть: https://i-t.io/website ), как и гуй для Восхода.

Сообщение было отредактировано: 26 май 20, 12:19
26 май 20, 12:20    [22139628]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Моя реакция на Бобину
+
Картинка с другого сайта.
26 май 20, 12:33    [22139645]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
Моя реакция на Бобину
+
Картинка с другого сайта.

Ради интереса посмотрите код logback или log4j2.

Тогда Бобина покажется раем.
26 май 20, 12:50    [22139668]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
mayton
Моя реакция на Бобину
+
Картинка с другого сайта.

Ради интереса посмотрите код logback или log4j2.

Тогда Бобина покажется раем.


Как минимум код logback содержит комментарии и unit-тесты)
Да и код бобины с публичными изменяемыми полями (или это свойства?) - тот еще адок. Как будто студент накидал.

Сообщение было отредактировано: 26 май 20, 13:30
26 май 20, 13:29    [22139711]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras
пропущено...

Ради интереса посмотрите код logback или log4j2.

Тогда Бобина покажется раем.


Как минимум код logback содержит комментарии и unit-тесты)
Да и код бобины с публичными изменяемыми полями (или это свойства?) - тот еще адок. Как будто студент накидал.


это концепция: no test, no doc.
Код настолько понятен и прост, что не требует ни тестов ни документации.

По этому принципу у меня весь код построен.
Просто иначе в одиночку было бы не осилить такие объёмы.

А что не так с публичными полями?

Приватные поля это приватные ключи прочие секреты типа отп и JWT.

А то что private стали использовать чтобы автокомплитом управлять в ide - ну чтош. :)

Сообщение было отредактировано: 26 май 20, 13:58
26 май 20, 13:59    [22139741]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras

Просто иначе в одиночку было бы не осилить такие объёмы.

Приватные поля это приватные ключи прочие секреты типа отп и JWT.

А то что private стали использовать чтобы автокомплитом управлять в ide - ну чтош. :)


1) Чем приватные поля помогают не давать доступ к секретам?
2) Каким образом из вашего API (например, при создании "зависимой" работы) я должен понять, что Destination#bobbinEngine должен быть установлен до начала работы Destination?

Сообщение было отредактировано: 26 май 20, 14:09
26 май 20, 14:10    [22139750]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras

Просто иначе в одиночку было бы не осилить такие объёмы.

Приватные поля это приватные ключи прочие секреты типа отп и JWT.

А то что private стали использовать чтобы автокомплитом управлять в ide - ну чтош. :)


1) Чем приватные поля помогают не давать доступ к секретам?
2) Каким образом из вашего API (например, при создании "зависимой" работы) я должен понять, что Destination#bobbinEngine должен быть установлен до начала работы Destination?


1) Никак не помогают, я и не говорил что они помогают.
Они предотвращают случайное обращение к ним (например при сериализации).

2) Вы про комментарии в коде или документацию?
Документация есть, вот она:
https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/3---Usage

Я имел в виду документацию кода (комментарии и Java doc).
26 май 20, 14:16    [22139760]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
пропущено...


1) Чем приватные поля помогают не давать доступ к секретам?
2) Каким образом из вашего API (например, при создании "зависимой" работы) я должен понять, что Destination#bobbinEngine должен быть установлен до начала работы Destination?


1) Никак не помогают, я и не говорил что они помогают.
Они предотвращают случайное обращение к ним (например при сериализации).

2) Вы про комментарии в коде или документацию?
Документация есть, вот она:
https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/3---Usage

Я имел в виду документацию кода (комментарии и Java doc).


1) Если я "случайно" установлю bobbinEngine = null - это я ССЗБ? Или API не продумано? ИМХО 2
2) Указанная документация не отвечает на поставленный мной вопрос
26 май 20, 14:18    [22139763]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras
пропущено...


1) Никак не помогают, я и не говорил что они помогают.
Они предотвращают случайное обращение к ним (например при сериализации).

2) Вы про комментарии в коде или документацию?
Документация есть, вот она:
https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/3---Usage

Я имел в виду документацию кода (комментарии и Java doc).


1) Если я "случайно" установлю bobbinEngine = null - это я ССЗБ? Или API не продумано? ИМХО 2
2) Указанная документация не отвечает на поставленный мной вопрос


Не нужно самому ничего инициализировать/устанавливать:

https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/3---Usage#standalone-usage
26 май 20, 14:39    [22139775]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch
пропущено...


1) Если я "случайно" установлю bobbinEngine = null - это я ССЗБ? Или API не продумано? ИМХО 2
2) Указанная документация не отвечает на поставленный мной вопрос


Не нужно самому ничего инициализировать/устанавливать:

https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/3---Usage#standalone-usage


Я специально написал - при создании зависимой работы. Например, хочу добавить свой Destination, который является оберткой для остальных Destination.

Сообщение было отредактировано: 26 май 20, 14:45
26 май 20, 14:47    [22139779]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
del

Сообщение было отредактировано: 26 май 20, 16:08
26 май 20, 16:07    [22139829]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
[quot Lelouch#22139779]
dakeiras

Я специально написал - при создании зависимой работы. Например, хочу добавить свой Destination, который является оберткой для остальных Destination.


https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/4---Configuration#destinations

автор
Destination configuration represents serialized instance of a class extending io.infinite.bobbin.config.AbstractDestinationConfig.

At the moment Bobbin supports 2 Destinations out of the box:

ConsoleDestinationConfig
FileDestinationConfig
Custom Destinations can be added by Bobbin users by extending io.infinite.bobbin.config.AbstractDestinationConfig class.

Destination configuration class is specified using name field, i.e.:

destinations:
- name: my.own.DestinationImplementationConfig
...


Не надо никакие BobbinEngine инициализировать. Всё это автоматом делается.

Вот пример destination, всё примитивно:

package io.infinite.bobbin.destinations

import io.infinite.bobbin.Level
import io.infinite.bobbin.config.ConsoleDestinationConfig

class ConsoleDestination extends Destination {

    ConsoleDestination(ConsoleDestinationConfig destinationConfig) {
        super(destinationConfig)
    }

    @Override
    protected void store(String finalOutputMessageText, String className, Level level, String date) {
        System.out.print(finalOutputMessageText)
    }
}
26 май 20, 16:14    [22139837]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

я
свой Destination, который является оберткой для остальных Destination.

https://ru.wikipedia.org/wiki/Декоратор_(шаблон_проектирования)

Сообщение было отредактировано: 26 май 20, 18:54
26 май 20, 18:53    [22139972]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
забыл ник
dakeiras
пропущено...

Всё это есть в Groovy.
Насчёт команды - да, отличная проприетарная команда :)

Groovy далеко не строготипизированный, ну как минимум не static


А как же https://docs.groovy-lang.org/latest/html/gapi/groovy/transform/CompileStatic.html ?
26 май 20, 18:56    [22139976]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch,

предполагаю что Вы имеете в виду паттерн декоратор. Но это не точно.
26 май 20, 18:56    [22139977]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
Lelouch,

предполагаю что Вы имеете в виду паттерн декоратор. Но это не точно.

Да, именно. Как я должен понять, что должен присвоить bobbinEngine внутренней реализации Destination?
26 май 20, 18:58    [22139981]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
[quot betelgeizex#22139976]
забыл ник
А как же https://docs.groovy-lang.org/latest/html/gapi/groovy/transform/CompileStatic.html ?


Да, уже 100 раз это говорилось. Как и то что Груви лучше всего использовать со строгой типизацией при работе в IDE.

Нестрогая типизация это для SRE всяких и жир.
26 май 20, 19:02    [22139984]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras
mayton
Моя реакция на Бобину
+
Картинка с другого сайта.

Ради интереса посмотрите код logback или log4j2.

Тогда Бобина покажется раем.

У тебя - детские ошибки мультипоточности нашли. На первом-же review в этом форуме. Ты пофиксил нехотя. Еле-еле.
Как будто одолжение сделал. А должен был - стремительно набросится. И после этого доказать что "годен к строевой".
Должен был рвать и метать и ре-а-би-ли-ти-роваться. Бенчмарки. Презентация. И форки в гитхабе и репо.
26 май 20, 19:04    [22139988]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Lelouch
dakeiras
Lelouch,

предполагаю что Вы имеете в виду паттерн декоратор. Но это не точно.

Да, именно. Как я должен понять, что должен присвоить bobbinEngine внутренней реализации Destination?


Хм, если не затруднит, можно пример кода в виде репозитория если будет время?
Просто любые реализации Destination инстанциируются на базе конфига через factory, включая и обёртки (т.к. они потомки класса Destination).

Factory заботится об инициализации bobbinEngine автоматически. Т.е. Вам беспокоится о внутренностях совсем не нужно.
Только о функционале.

Но я похоже недопонимаю. Буду рад улучшить код или документацию.
26 май 20, 19:06    [22139990]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3024
тему не читал,так как времени нет

но судя по паре первых постов ты неверно этот фреймворк имплементируешь

это очень крутой и гибкий инструмент настройки секурити для любого уровня доступа по слоям/классам и тд

тоесть как я тебе в другой теме написал - ты явно упустил что то по теме interface
26 май 20, 19:07    [22139992]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
забыл ник
Member

Откуда:
Сообщений: 3292
betelgeizex
забыл ник
пропущено...

Groovy далеко не строготипизированный, ну как минимум не static


А как же https://docs.groovy-lang.org/latest/html/gapi/groovy/transform/CompileStatic.html ?


While faster than normal Groovy, it can compile only a subset of Groovy and behaves a bit different. Especially all the dynamic features are not available anymore.
В чем смысл тогда?
26 май 20, 19:13    [22139999]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
[quot dakeiras#22139984]
betelgeizex
пропущено...


Да, уже 100 раз это говорилось. Как и то что Груви лучше всего использовать со строгой типизацией при работе в IDE.

Нестрогая типизация это для SRE всяких и жир.


Нет, не согласен. Если Groovy использовать только со строгой типизацией, то нафиг он нужен?
Для этого есть Kotlin, Scala, да и сама Java 8+ вполне ничего так уже :)

Прелесть Groovy именно в том, что он позволяет оба варианта типизации..
26 май 20, 19:14    [22140000]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
забыл ник
betelgeizex
пропущено...


А как же https://docs.groovy-lang.org/latest/html/gapi/groovy/transform/CompileStatic.html ?


While faster than normal Groovy, it can compile only a subset of Groovy and behaves a bit different. Especially all the dynamic features are not available anymore.
В чем смысл тогда?


Вот только что ответил :)
26 май 20, 19:15    [22140001]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Посмотрите мои репозитории.

Например Ascend тот же.

Весь код @CompleStatic (через глобальный плагин), кроме явно выделенных @CompileDynamic функций - в которых собран необходимый динамический код (билдеры, парсеры и пр.).

А так в Груви при @CompileStatic основные фичи:
- Closure
- Сам SDK с кучей полезностей
- Конструкторы с явным указанием полей
- AST

Посмотрите мой проект @BlackBox - этот AST добавляет логирование в методы автоматически на этапе компиляции.
Экономлю 50% кода и времени.
Получая логирование высочайшего качества.

Сообщение было отредактировано: 26 май 20, 19:23
26 май 20, 19:20    [22140008]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
asv79
тему не читал,так как времени нет

но судя по паре первых постов ты неверно этот фреймворк имплементируешь

это очень крутой и гибкий инструмент настройки секурити для любого уровня доступа по слоям/классам и тд

тоесть как я тебе в другой теме написал - ты явно упустил что то по теме interface

это не я был там.

По Spring Security - тут пришли коллективно к такому резюме:
автор
Веб безопасность: Keycloak
+ одновременно
Функциональный доступ: Spring Security (role-based)


Т.е. когда нужно хитрые правила доступа реализовать (смешав с бизнес логикой) - Spring Security подойдёт. Например ERP.
Для юскейса веб приложение\мобильное приложение - Keycloak (и его альтернатива - Ascend).
26 май 20, 19:24    [22140012]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
dakeiras
Посмотрите мои репозитории.

Например Ascend тот же.

Весь код @CompleStatic (через глобальный плагин), кроме явно выделенных @CompileDynamic функций - в которых собран необходимый динамический код (билдеры, парсеры и пр.).

А так в Груви при @CompileStatic основные фичи:
- Closure
- Сам SDK с кучей полезностей
- Конструкторы с явным указанием полей
- AST

Посмотрите мой проект @BlackBox - этот AST добавляет логирование в методы автоматически на этапе компиляции.
Экономлю 50% кода и времени.


Смотрел уже...
Библиотека логирования, тянущая за собой Groovy runtime в каждый Java-проект - это лютый оверхед. Не интересно.
26 май 20, 19:24    [22140013]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
betelgeizex
dakeiras
Посмотрите мои репозитории.

Например Ascend тот же.

Весь код @CompleStatic (через глобальный плагин), кроме явно выделенных @CompileDynamic функций - в которых собран необходимый динамический код (билдеры, парсеры и пр.).

А так в Груви при @CompileStatic основные фичи:
- Closure
- Сам SDK с кучей полезностей
- Конструкторы с явным указанием полей
- AST

Посмотрите мой проект @BlackBox - этот AST добавляет логирование в методы автоматически на этапе компиляции.
Экономлю 50% кода и времени.


Смотрел уже...
Библиотека логирования, тянущая за собой Groovy runtime в каждый Java-проект - это лютый оверхед. Не интересно.

Вы путаете с Бобиной. BlackBox чисто Груви проект, в Java не работает.
Тут просто спрашивали какие фишки крутые в Груви.
26 май 20, 19:26    [22140015]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Знаешь где заканчивается мета-программирование?

Там где разработчик кричит - Воц а фак! Это не мой код! Я этого не писал. И я за это не хочу отвечать!
А ответственность - это когда ты досконально понимаешь что в фазе компилляции или класслоадера происходит.
Особенно когда продуктовый баг. И все бегают и ищут сайдэффекты.

А так да... Конешно. Лупи больше минералов аннотаций !
26 май 20, 19:26    [22140016]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras,

Wrapper extends Destination {
   BobbinEngine bobbinEngine; <-- сюда поле будет присвоено
   Destination destination;

   Wrapper(conf) { 
      destination = new SomeOtherDestination(conf); <-- а вот внутрь SomeOtherDestination, нет, так как создан он будет "руками".
   }
}


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

Сообщение было отредактировано: 26 май 20, 19:27
26 май 20, 19:28    [22140017]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
dakeiras
betelgeizex
пропущено...


Смотрел уже...
Библиотека логирования, тянущая за собой Groovy runtime в каждый Java-проект - это лютый оверхед. Не интересно.

Вы путаете с Бобиной. BlackBox чисто Груви проект, в Java не работает.
Тут просто спрашивали какие фишки крутые в Груви.


А, прошу прощения, не понял. Тут не могу не согласиться - Groovy, как ЯП, намного мощнее, чем Java (да и чем Kotlin тоже, насколько мои знания позволяют сравнивать)
26 май 20, 19:34    [22140020]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3024
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

твой груви через пару лет будет там же где и все остальные поющие писуары- тоесть в писуаре)
а джава еще лет 20 протянет благодаря спринг
26 май 20, 19:49    [22140030]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

твой груви через пару лет будет там же где и все остальные поющие писуары- тоесть в писуаре)
а джава еще лет 20 протянет благодаря спринг


Бггг.. Java - 25 лет, Groovy - 17 лет. Пару лет, говорите?..

И да, постарайтесь понять разницу между "построенный на Java" и "построенный на JVM". Пригодится.
26 май 20, 19:56    [22140034]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

твой груви через пару лет будет там же где и все остальные поющие писуары- тоесть в писуаре)
а джава еще лет 20 протянет благодаря спринг


Джава превратилась в ужас стараниями индусов из Оракла.
По факту джава это ходячий труп вместе со Спрингом и Spring Data Flow.

Это такой COBOL или PL/SQL только поновее.

Это доказывается переходом Андройда на котлин.

Просто у Груви нету бабла за плечами и PR. Опен сорс он такой, как художник нищий его каждый может обидеть.
26 май 20, 19:59    [22140039]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
Я бы тут сказал про Graal VM но уверен что Оракл и его засрёт.
26 май 20, 20:01    [22140042]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Тема Spring-Security закончилась. Уже пошли непотребства. Пора закрывать.
26 май 20, 20:09    [22140048]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
dakeiras
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

твой груви через пару лет будет там же где и все остальные поющие писуары- тоесть в писуаре)
а джава еще лет 20 протянет благодаря спринг


Джава превратилась в ужас стараниями индусов из Оракла.
По факту джава это ходячий труп вместе со Спрингом и Spring Data Flow.

Это такой COBOL или PL/SQL только поновее.

Это доказывается переходом Андройда на котлин.

Просто у Груви нету бабла за плечами и PR. Опен сорс он такой, как художник нищий его каждый может обидеть.


Вы озвучиваете другую крайность.
Java кому-то кажется устаревшей, но исключительно из-за отличной обратной совместимости. Не помню ни одной другой платформы, которая может этим похвастаться.

PS. Android - это не Java
26 май 20, 20:11    [22140052]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
mayton
Тема Spring-Security закончилась. Уже пошли непотребства. Пора закрывать.


Так давно уже

mayton
dakeiras
пропущено...

Всё это есть в Groovy.
Насчёт команды - да, отличная проприетарная команда :)

Да я уже видел твои Бобины на груви. Мне хватило
26 май 20, 20:16    [22140055]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Андроид - вообще не показателен. Т.к. многие решения в его дизайне были сделаны под давлением
американских законов и судов. И для Google было выгодно завлечь аудиторию молодых разработчиков
уже знакомым языком. А потом - суды. С Oracle. Изменение спецификации байткода. По сути - новая виртуалка
которая бинарно вообще не похожа на JVM. И сегодня - у них уже есть возможность спокойно менять
языки т.к. lifecycle обычных приложений для телефонов - короткий. 3-5 лет и капец. Это же не сравнить
с банковским ПО которое живет по 20 лет и его не то что заменить ... на него дыхнуть боятся потому-то
24/7 и PO заинтересован чтоб оно просто жило себе и приносило прибыли. А о миграциях на Груви или
Котлин может думать только сумашедний. Ну не верите мне - спросите ваших знакомых архитекторов
которые сидят в ент.
26 май 20, 20:19    [22140057]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
Андроид - вообще не показателен. Т.к. многие решения в его дизайне были сделаны под давлением
американских законов и судов. И для Google было выгодно завлечь аудиторию молодых разработчиков
уже знакомым языком. А потом - суды. С Oracle. Изменение спецификации байткода. По сути - новая виртуалка
которая бинарно вообще не похожа на JVM. И сегодня - у них уже есть возможность спокойно менять
языки т.к. lifecycle обычных приложений для телефонов - короткий. 3-5 лет и капец. Это же не сравнить
с банковским ПО которое живет по 20 лет и его не то что заменить ... на него дыхнуть боятся потому-то
24/7 и PO заинтересован чтоб оно просто жило себе и приносило прибыли. А о миграциях на Груви или
Котлин может думать только сумашедний. Ну не верите мне - спросите ваших знакомых архитекторов
которые сидят в ент.

В банках до сих пор Кобол во многих западных (и восточных тоже).

Он хуже Явы только потому что дороже его экосистема, причём оч. сильно. Ну и трудности с веб интеграцией (хотя это преодолено более менее).

Так что такой вещи как миграция языков в банках нет вообще ( за исключением Кобола по вышеописанной причине). И архитекторы тут не причём.

Сообщение было отредактировано: 26 май 20, 20:27
26 май 20, 20:28    [22140068]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Это прекрасно. Раз жив кобол то по поводу Груви можно не беспокоиться.
26 май 20, 20:33    [22140074]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3024
betelgeizex
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

твой груви через пару лет будет там же где и все остальные поющие писуары- тоесть в писуаре)
а джава еще лет 20 протянет благодаря спринг


Бггг.. Java - 25 лет, Groovy - 17 лет. Пару лет, говорите?..

И да, постарайтесь понять разницу между "построенный на Java" и "построенный на JVM". Пригодится.

я вижу вакансии и вижу проекты
в нашей конторе их сотни и ни 1 на груви и ни 1 вакансии сюда же
тоесть ты можешь утверждать что угодно,но бизнесу твой груви не впился в одно место)
все эти jvm языки в силу отсутвия комьюнити как были гомном ,так им и останутся
а java цветет и пахент благодаря ребят из спринг,ломбок и прочим

а вы продолжайте кушать кактусы
26 май 20, 21:15    [22140094]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3024
mayton
Это прекрасно. Раз жив кобол то по поводу Груви можно не беспокоиться.

да и бейсик жив где то в андеграунде))

пс.в энтерпрайзе рулит джава .в энтерпрайзе все деньги

ну а инди проекты могут существовать и на чистом байт коде)))
26 май 20, 21:20    [22140097]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
betelgeizex
Member

Откуда:
Сообщений: 98
asv79
betelgeizex
пропущено...


Бггг.. Java - 25 лет, Groovy - 17 лет. Пару лет, говорите?..

И да, постарайтесь понять разницу между "построенный на Java" и "построенный на JVM". Пригодится.

я вижу вакансии и вижу проекты
в нашей конторе их сотни и ни 1 на груви и ни 1 вакансии сюда же
тоесть ты можешь утверждать что угодно,но бизнесу твой груви не впился в одно место)
все эти jvm языки в силу отсутвия комьюнити как были гомном ,так им и останутся
а java цветет и пахент благодаря ребят из спринг,ломбок и прочим

а вы продолжайте кушать кактусы


Вы почему-то агрессивно противопоставляете Java и Groovy. Юношеский максимализм?

Попробуйте хоть раз написать Unit Test'ы для Java-классов на Groovy (всё это прекрасно уживается в одном проекте)
Возможно, в вашей закостенелой конторе такие вещи не приветствуются - жаль...
26 май 20, 21:48    [22140109]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
asv79
betelgeizex
пропущено...


Бггг.. Java - 25 лет, Groovy - 17 лет. Пару лет, говорите?..

И да, постарайтесь понять разницу между "построенный на Java" и "построенный на JVM". Пригодится.

я вижу вакансии и вижу проекты
в нашей конторе их сотни и ни 1 на груви и ни 1 вакансии сюда же
тоесть ты можешь утверждать что угодно,но бизнесу твой груви не впился в одно место)
все эти jvm языки в силу отсутвия комьюнити как были гомном ,так им и останутся
а java цветет и пахент благодаря ребят из спринг,ломбок и прочим

а вы продолжайте кушать кактусы

повторюсь, ломбок это пародия на Груви.

А истинная причина почему много core java - люди боятся "а как бы шо не вышло", это всё от незнания.
Я видел пример как не стали внедрять Котлин в андроид приложение "патамушта новый, стрёмно'
26 май 20, 22:12    [22140116]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
И последнее, моё личное мнение: Груви это не язык, это SDK.
Такой же как например Apache Commons, только намного обширнее.

Глупо не пользоваться одним их крупнейших и продвинутых SDK, правильно?
26 май 20, 22:14    [22140118]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
dakeiras

Я видел пример как не стали внедрять Котлин в андроид приложение "патамушта новый, стрёмно'

Я очень хотел бы услышать стенограмму этого обсуждения. Впрочем ... очень
похоже на шутку. JetBrains им вообще не стрёмно использовать? И свои
воцапы и вайберы не стрёмно?
26 май 20, 22:55    [22140128]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
Lelouch
Member

Откуда: Москва
Сообщений: 1850
dakeiras
И последнее, моё личное мнение: Груви это не язык, это SDK.
Такой же как например Apache Commons, только намного обширнее.

Глупо не пользоваться одним их крупнейших и продвинутых SDK, правильно?


Что вы скажете на то, что groovy в индексе tiobe занимает предпоследнее с конца место среди 5 известных jvm-based языков (Java, Kotlin, Scala, Groovy, Clojure)?
26 май 20, 23:14    [22140143]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
mayton
Member

Откуда: loopback
Сообщений: 46599
Если-б я был Дейкстрой то я-бы сказал что программирование
на Коболе калечит разум. А на Groovy - портит нрав. И приучает
к глупостям.
26 май 20, 23:23    [22140152]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
dakeiras

Я видел пример как не стали внедрять Котлин в андроид приложение "патамушта новый, стрёмно'

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


Тогда было мало разработчиков под Котлин и люди очканули что не смогут с вендора спрыгнуть потом (код был выкуплен).

В принципе понятна логика но получилось хуже только.
27 май 20, 01:07    [22140192]     Ответить | Цитировать Сообщить модератору
 Re: Spring Security имеет неверную архитектуру  [new]
dakeiras
Member

Откуда:
Сообщений: 447
mayton
Если-б я был Дейкстрой то я-бы сказал что программирование
на Коболе калечит разум. А на Groovy - портит нрав. И приучает
к глупостям.

def сыграл злую шутку.
Основная фича для девопсов отпугнула разработчиков.
А надо было просто описать юскейсы изначально им в style guide: для разработчиков и для девопсов.

Если руки дойдут сделаю...

Помимо def там нет вредных вещей. А полезного там куча: быстрые шаблоны с интернализацией, json/xml, литералы """, строки с ${}, sql, AST, макросы.

Да тот же picocli.
27 май 20, 01:17    [22140196]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7      [все]
Все форумы / Java Ответить