powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security имеет неверную архитектуру
172 сообщений из 172, показаны все 7 страниц
Spring Security имеет неверную архитектуру
    #39956093
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет хабр!

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

Итак - 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%, но документации нет - и возвожно и не будет никогда, т.к. никому это походу не интересно, а сил и времени не хватает)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956101
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так например выглядит Ascend JWT:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
{
  "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. И тоже самое с другой терминологией там...
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956102
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и чтобы добить, всё это stateless и поддерживает discoverability.

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

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

Ссылка выше рабочая, смелее - нажмите. Там интересно :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956149
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

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

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

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

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

Код: java
1.
2.
3.
{ role1, permission1, subject1 }
{ role2, permission2, subject2 }
...



Есть еще развитие с сессиями и т.д и есть бумажные версии этого стандарта которые детализируют этот куб свойств.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956152
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

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

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

Или еще пример. Ты приехал на конференцию. Прошел в здание через проходную. Офицер тебя проверил и выдал
бейджик на котором написано "dakeiras/member". Аутентификация. Далее ты поднимаешься в конферец-холл и следующий офицер
проверяет что ты участник конфы (докладчик) и пропускает тебя в рум для докладчиков. Это авторизация. Ты
авторизован чтобы докладывать.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956155
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

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

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

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

Код: java
1.
{ price-readers, read, price }



И такой role-based-access-contol (RBAC) можно спокойно хардкодить в код.
Он не будет меняться десятки лет. Или если изменится то только с изменениями
самого кода. Что само по себе нормально.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956170
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

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

Если рассматривать хедеры Rest и сам смысл Request отдельно то никакого противоречия нет.
Если ты правильно проектировал Rest API как stateless то он таковым и остался.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956208
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется ТС плохо читал документацию. Spring Security вполне может работать c jwt (к примеру keycloak). Если его мало, то вполне можно реализовать свой spring-security-провайдер, который будет работать с твоим токеном. Плюс даже без завязки на базу данных/хардкод чего-либо в коде/без обращений на сервер авторизации и всех этих страшных вещей
P.S. не особо понял, что в твоем jwt-токене такого особенного, чтобы к примеру такую же функциональность нельзя было бы реализовать в keycloak или т.п. ?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956220
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не вижу в сорцах чтобы автор использовал аннотации @Secured, @RolesAllowed.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956228
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну пока вообще не ясно, что есть кроме токена. Как с этим должен работать человек, который захочет прикрутить эту штуку себе?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956229
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонянто. Автору я предлагаю добавить в README.md краткий пример на 5-10 строчек.
Как подключить в свой проект его штуку.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956240
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо за комментарии, на свежую голову отвечу сегодня чуть позже подробно.

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

Из особенностей - в токене есть регулярные выражения для валидаци доступа к URL (с %подстановками%), т.е. токен самовалидируемый.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956254
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я кстати обнаружил вредноносный код у тебя.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956453
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я кстати обнаружил вредноносный код у тебя.


какой из: Class.forName или context.getBean? :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956456
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот этот. Надо срочно убрать из кода.

Код: java
1.
compile "io.i-t:bobbin:3.0.0"
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956484
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ если у тебя сыр знает сколько он стоит - то значит это выгодно
для бизнеса и это ничего не нарушает.

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

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

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

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

Как это было бы сделано в JWT (неправильно):
1) Всё тоже самое, но Вы не видите для какой суммы Вы вводите ПИН. И эта информация (авторизационная) не включается в JWT токен (аутентификационный).
В итоге с Вас списывают больше денег чем нужно.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956486
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956490
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ не вижу в сорцах чтобы автор использовал аннотации @Secured, @RolesAllowed.

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

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

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

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

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

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

Клиентская часть (Ascend Granting Client Java SDK):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    @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.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956509
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сервере (защищённом ресурсе):

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

Т.е. фильтр:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
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)
    }

}



Но по факту это может быть платформонезависимый реверс прокси.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956518
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И таких картинок много, документация готова на 70%. Не хватает времени добить :(
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956523
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, sql.ru не даёт картинку изменить в редактировании сообщения.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956530
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dakeiras

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

Права довольно часто и есть часть логики приложения. Как быть с правами, которые даются пользователю не напрямую? К примеру: пользователь может видеть/редактировать все объекты у подчиненных ему других пользователей. Или на объекты из определенных регионов и т.п. Довольно много систем, которые не могут быть завязаны только на урлы
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956536
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
авторЯ не вижу в сорцах чтобы автор использовал аннотации @Secured, @RolesAllowed.


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

Где конкретнее смотреть? На что они замещаются?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956538
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТС имеет в виду, что все проверки замещаются одним фильтром OrbitJwtTokenAuthenticationFilter
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956539
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956540
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
ТС имеет в виду, что все замещается одним фильтром OrbitJwtTokenAuthenticationFilter


Да, спасибо!
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956544
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, кстати вот пример клиентской реализации в Swing.

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

https://github.com/INFINITE-TECHNOLOGY/ORBIT/tree/master/orbit-gui
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956546
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 слайдов - ты предлагаешь
ОЗНАКОМИТЬСЯ с исходным кодом чегото там такого. И после этого сделать
выводы что фреймворк с мировым именем имеет неверную архитектуру?

Ты серъезно, родной?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956549
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 месяца).

Ещё раз спасибо за комментарии.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется за тобой должок.

Ты еще по своему Толстому Робину-Бобину обещал выкатить доклад.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956727
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энтузиазм похвален и в чем-то даже вызывает зависть. но позиционирование в стиле "Д'артаньян прибывает в Париж" неизменно наталкивают на мысли, что имеешь дело с каким-то городским сумасшедшим. Ничего личного ;)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956850
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
энтузиазм похвален и в чем-то даже вызывает зависть. но позиционирование в стиле "Д'артаньян прибывает в Париж" неизменно наталкивают на мысли, что имеешь дело с каким-то городским сумасшедшим. Ничего личного ;)


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

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

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

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

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

С другой стороны, сделав прошлой осенью мега проект на много миллиардов баксов без единого бага (написав транспилятор Кобола в Яву), уверенность в себе оч. возраста, да...
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956867
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
chpasha
энтузиазм похвален и в чем-то даже вызывает зависть. но позиционирование в стиле "Д'артаньян прибывает в Париж" неизменно наталкивают на мысли, что имеешь дело с каким-то городским сумасшедшим. Ничего личного ;)


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

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

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

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

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

А если ты нашел в JWT Token дефект безопасности - пожалуйста пиши баги сюда
https://github.com/lcobucci/jwt/issues если это действительно баг или предложения по изменениям.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956870
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mayton, насчёт "не изобретать свой фреймворк безопасности и не экспериментировать" - это правильно и общеизвестный факт.

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

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

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

Это кстати вызвано отмороженностью (отбитостью) некоторых безопасников, за ними замечено уже :)
Но тем не менее эта проблема имеет место и применима и к Spring Security.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39956876
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дада. Это в первую очередь относится к теме топика

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

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

Этот топик - закрыть. А тебе - поднять новый. По безопасности карточных продуктов.
Насколько я понял это твой основной поинт.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959373
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

Кстати, посмотрел мельком код вашего очередного решения
Правильно ли я понимаю:
1) При изменении пути к контроллеру в случае вашего решения необходимо так же писать скрипт для обновления базы данных (изменение urlTemplate или как он там)
2) Если у меня в body передается что-то в формате, не представимом в виде строки (например - protobuf) - ваше решение не позволяет проверить содержимое body
3) Что с проверкой безопасности в случае multipart request?
4) Что с проверкой безопасности, если в body text/plain, но размеров в пару гигабайт?:)
5) Кеширования регулярных выражений нет, то есть паттерны разбираются на каждый запрос?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959771
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
Т.е. вот так предлагается делать (пишу по памяти):

Код: sql
1.
2.
3.
4.
5.
6.
7.
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%\/.*"

Даёт юзеру ключать только свои ресурсы в свои ресурсы.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959774
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧто с проверкой безопасности в случае multipart request
bodyRegex работает с прочитанным inputStream.
Но как выше написано, предлагается bodyRegex использовать только с HATEOAS/HAL.

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

авторЧто с проверкой безопасности, если в body text/plain, но размеров в пару гигабайт?:)
Кастомный валидатор нужен будет вместо regex. В реализации которую индусы делали по моим спекам так было сделано.
Я пока это убрал для простоты.

авторКеширования регулярных выражений нет, то есть паттерны разбираются на каждый запрос?
Завёл задачу:
https://github.com/INFINITE-TECHNOLOGY/ASCEND/issues/2

Спасибо!
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959864
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch,

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

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

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

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

dakeirasПроверка Body концептуально хитрая задача.
Только вот в случае спринга я могу это сделать в контроллере, аспектом, HandlerInterceptor. Скорее всего есть еще способы, лень искать. У вас - только во внешней системе. И кастомный фильтр не спасает - в таком случае мне необходимо обновлять этот фильтр всякий раз при изменении контракта.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959866
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Мне кажется или это - волшебно?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959867
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНежизнеспособно. Разработчик должен при выполнении рефакторинга каким-то образом узнать, что нужно пойти в какой-то там UI/базу и поменять там URL.


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

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

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

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

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

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

А правильно было бы проверять доступ в гейтвее, на уровне инфраструктуры.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959868
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
P.S. Мне кажется или это - волшебно?


Ну нету гуя пока, уже делаю. Даже Vue.js освоил ради этого.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959878
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959892
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПричем тут гуй?
1) Ключ вообще лучше хранить в настройках
2) Для накатывания состояния базы есть liquibase например
3) Вы чистите состояние при каждом рестарте приложения, то есть любые изменения стираются

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

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

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

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

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



Правильно делать отдельные приложения для юзеров и отдельные для админов. Это улучшает качество кода, упрощает тестирование и внесение изменений.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959896
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРазработчик должен корректно реализовать ПРОВЕРКИ доступа пользователя. Управлять доступом конкретных пользователей он естественно не должен

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

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

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

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

Ascend встроенный в Reverse Proxy или в гейтвей платформонезависим, и обеспечивает безопасность любых Веб приложений, например PHP, Python, и т.д.
Достаточно контейнеризовать legacy приложение и спрятать его в частной подсети в контейнере.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959897
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
аутентифицированные пользователи получают новые права автоматически - что нежелательно из-за меньшей предсказуемости и контроля настройки.

Приведите пример, когда это плохо?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959900
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

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

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


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

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

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

0-5000 successfully granted authorizations - free
Each extra: $0.01 per each successful authorization grant
Кстати, а что будет, если я защищу что-либо вашей системой, а ее взломают? Сколько вы мне денег в таком случае заплатите?

P.S. А что если у меня приложение с сессиями и url + body ни разу не достаточны для понимания, что делает пользователь?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959903
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
dakeiras
аутентифицированные пользователи получают новые права автоматически - что нежелательно из-за меньшей предсказуемости и контроля настройки.

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


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

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

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

Можно добавить проверку на дату\время конечно, но это костыль в данном случае.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959905
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
пропущено...

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


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

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

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

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


Классный пример из сторонней области. Вот вам более релевантный:
1) Злоумышленник узнал мой логин и пароль. Я срочно звоню админу с просьбой срезать мне все права. Злоумышленник продолжает спокойно работать со старым токеном. Прекрасное решение, я считаю.
2) Стажеру Васе случайно дали право на функцию "Achtung!!! Налоговая! Отправить сервер с черной бухгалтерией в космос!!!", но спохватились и через 10 секунд забрали. Но у Васи видимо доступ должен остаться :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959911
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторP.S. А что если у меня приложение с сессиями и url + body ни разу не достаточны для понимания, что делает пользователь?
Пока условно пусть будет что Stateful не поддерживается.

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

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

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

Да. Это разные классы\сущности:
Код: java
1.
2.
3.
class Manager {...}

class SeniorManager {...}



Возможно в общей иерархии наследования, но не обязательно.
Никаких флагов "isSeniorManager" не должно быть. Это неправильное объектное моделирование.
Роль пользователя это его поведение, а не статус. Это кстати одна из основных ошибок в Spring Security - у них какой-то декларативный полиморфизм в виде hasRole(..) сделан.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959915
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

dakeirasДа. Это разные классы\сущности:
А если в другом автосалоне 5 ролей - то им нужно отдельную версию с 5 классами делать? Coolstory.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959916
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras,

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

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

Да. А что, Вам классов жалко? :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959919
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
пропущено...

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


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

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

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

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

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

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

Тоесть это не идеологическая проблема а настроечная. Настраивай срок токена так как тебе удобно.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959922
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch
dakeiras,

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

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


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

Нет. Я коробку продавать хочу, а не допиливать классы в зависимости от того, кто к кому за подписью ходит. При том что эта структура еще и изменяться будет.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959926
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mayton#22136481]
dakeiras

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

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

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

Согласен, текущая схема существует, это не критично. Но просто иллюстрирует продуманность решения в "Ascend", именно с точки зрения предсказуемой абстрактной модели безопасности.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959927
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras


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


Ну так вовлекайте. Или вы предлагаете клиенту платить вам + самостоятельно страховать риски?)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959929
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras
пропущено...


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

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


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

Но админ это 100% другая сущность. Админ не должен иметь доступ к функционалу пользователя (например фин. трасферы).
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959930
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras


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


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


Я пока инвестора не нашёл для этого проекта. И не уверен что вообще найду.
Возможно придётся самому всё доделывать своими силами. Тогда там будет отказ от отвественности в T&Cs.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959932
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Правильно делать отдельные приложения для юзеров и отдельные для админов.
Потом окажется, что у пользователей существуют функциональные и организационные роли, для которых тоже "надо делать отдельные приложения"?Это улучшает качество кода, упрощает тестирование и внесение изменений.Ню-ню.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959933
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch
пропущено...

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


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

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


Вообще-то мой вопрос был в том, как это реализовать, базируясь на вашей системе. Видимо никак.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959935
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
Вообще-то мой вопрос был в том, как это реализовать, базируясь на вашей системе. Видимо никак.


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

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

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

Сорри пропустил этот комментарий. Для этого существует опциональный механизм Refresh, он нативно поддерживается в Ascend.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959937
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПотом окажется, что у пользователей существуют функциональные и организационные роли, для которых тоже "надо делать отдельные приложения"?

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

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

Т.е. Менеджер видит меню Старшего Менеджера - и может позвать его чтобы тот от своего имени провёл операцию.
Это - хорошая практика.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959950
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем полиморфирующий ГУЙ это неправильно концептуально.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959958
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch
Вообще-то мой вопрос был в том, как это реализовать, базируясь на вашей системе. Видимо никак.


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

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


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

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

На тему сравнения вашего решения со Spring Security: сравнение с Keycloak было бы более релевантно
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959962
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

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

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

validateUser/{guid}:

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

validateAdmin/{guid}

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

Proof of concept уже был сделан полностью и отлично работает.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959971
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch,

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

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

validateUser/{guid}:

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

validateAdmin/{guid}

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

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


При чем тут идентичность по ID?
Каким образом эта идентичность позволит мне проверить что пользователь не может сделать 11 скидку или для текущего действия надо обратиться для подтверждения к другому пользователю?
Пример посмотрел, API ужасен (метод принимает 2 мапы и возвращает 1 мапу). Привязаться к действию там тоже нельзя.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959975
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

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

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

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

Я оч. долго перебирал как это упаковать, но лучшего варианта не нашёл, чем в просто мамы.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959979
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch,

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

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

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

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


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

Или вы согласны, что ваше решение позволяет только проверить есть или нет доступа к конкретному ресурсу, больши ничего не умеет и ни для чего другого не предназначено.
В таком случае хотелось бы увидеть сравнение с другими решениями, которые тоже это умеют.
Например, можете сравнить с keycloak (по-моему, он это тоже умеет)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959990
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

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

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


Manager (3 скидки):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
{
      "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 скидок):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
{
      "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
}
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39959994
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ServerAuthorizationValidationService проверяется maxUsageCount.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960058
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Это чрезвычайно плохая практика менять ГУЙ в зависимости от "роли пользователя".
Когда я работал на терминале OS/400, то некоторое время удивлялся пустому пространству в менюшках. Пока не увидел эти же менюшки на терминале коллеги с ролью QSECOFR. Там были действия, недоступные для меня.
Ещё можно было получить пронумерованный список команд. И тоже с дырками в нумерации.
Если хоть чуть-чуть подумать, то это очень удобно: если вы помните, что у команды номер 231, то этот номер не будет зависеть от уровня ваших полномочий, хотя вы можете никогда не узнать, какие команды "скрыты" под номерами 230 или 232.
С терминалом тоже самое - вы можете быть уверены, что F16 это всегда одно и тоже действие и даже можете "тыкать мышкой" в одно и тоже место экрана, не опасаясь "неожиданной реакции".Древнее зло бизнес анализа, до сих пор живущее - при том по всему миру.Это вы ничего слаще морковки не пробовали.Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций."Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960063
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

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

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

P.S. Ваш подход теоретически возможен, но потребует передачи идентификатора заказа в url и сессии на be.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960077
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras,

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

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

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


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

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
{
      "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 при валидной авторизации.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960086
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

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

https://github.com/INFINITE-TECHNOLOGY/COBOL
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960087
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классное слово. Похоже от "распиливать" ?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960139
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.


Basil A. Sidorov
"Да за это убивать надо!" (ц) судья из анекдота про преферансиста.
+100500
это раскрытие всей структуры всем, даже тем кому и знать не положено/запрещено.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960144
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch
dakeiras,

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

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

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


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

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
{
      "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 ждать?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960146
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет?
Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960155
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
dakeiras
Надо показывать все существующие опции в теории доступные юзеру в его иерархии step up авторизаций.
Даже если он не является кем-то, кто имеет доступ до этих опций.


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

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

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

И т.д.

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

А делать кашу в общей вьюшке меняющуюся и скачущую - вот за это надо убивать.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960164
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Классное слово. Похоже от "распиливать" ?

Transpiler никогда не слышали? Babel там?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960166
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
Кстати, хотелось бы уточнить - в вашей реальности есть какой-то «офицер безопасности» который одновременно знает все урлы в приложении и умеет в регулярки. Мне интересно, в каком месте можно вообще найти человека с должностью «офицер безопасности»? Банки? Других задач и клиентов в природе нет?
Это намёк на то, что большинство клиентов хотят или все в одном, или интеграцию с чем-то стандартным и распространённым, например AD.


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

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

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

автор1) каким образом ресурсный сервис узнаёт роль пользователя, если ваша система ее не предоставляет. И в том числе не предоставляет api для ее получения?
2) то есть вы наконец признаёте, что «защитить» что-либо кроме «ресурсов» ваша система не может. И в сложную логику тоже не может. Из чего вытекает не «защитите своё приложение легко и бесплатно без регистрации и смс» а «слелайте так, чтобы обойти ограничения моего решения и может быть будет вам счастье (только не забудьте закинуть денег)»
3) сравнения с keycloak ждать?
Конечно признаю, я этого не отрицал а наоборот подчёркивал.
Система для контроля доступа к веб ресурсам (HTTP->REST, SOAP, HTML (?)).
Она простая как топор сама по себе.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960173
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. аналогия следующая: охранник (security) пускает вас в банковское хранилище, но он не знает сколько у вас на счету денег.
Это знает бухгалтер, который выдаст вам деньги уже в хранилище.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960186
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Раз вы работали на мейнфрейме
AS/400 - ни разу не мейнфрейм. Это миникомпьютер, в тогдашней терминологии.
Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960188
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
dakeiras
Раз вы работали на мейнфрейме
AS/400 - ни разу не мейнфрейм. Это миникомпьютер, в тогдашней терминологии.
Ну и кобола я не знаю. Не помню даже - был ли он в нашей системе. Даже RPG/400 не знаю, хотя он - точно был.

Да, почитал, это не мейнфрейм, другой тип компьютера. Кобол в нём кстати тоже поддерживался.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960189
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Кобол в нём кстати тоже поддерживался.
Я в курсе, что поддерживался, но не помню, был ли он у нас.
С другой стороны, примерно в это время, разработчики OS/400 мигрировали встроенную базу данных с "нативного" API на SQL, как основной язык манипуляции данными.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960221
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
Классное слово. Похоже от "распиливать" ?

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

Бабель? Читал Одесские рассказы Бабеля.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960404
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

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

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

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



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

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

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

Кстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960445
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)
оно очень похоже. ОЧЕНЬ похоже.

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

Собственно оно подтверждает полностью всё написанное мной в этом топике насчёт концепции веб безопасности и как её осуществлять. И правильность моего дизайна.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960447
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКстати, тупой вопрос - как в вашем решении вообще корректно перенаправить пользователя после входа на "правильный" url (пусть будет ваш любимый /user или /admin) ?:)
Это REST URLы.

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

https://mycoolsystem.com

https://admin.mycoolsystem.com или https://mycoolsystem.com/admin (без автоматической переадресации и без доступа к юзерскому бизнес функционалу)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960456
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И пара абстрактных моментов:
- 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 минут будет рецепт как сделать безопасность :)
Индусы свято верят в то что Спринг умеет вообще всё на свете.

Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960465
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS: только безопасникам это не говорите, пусть будут блаженны в своём неведении.

Ну и кому организации должны доверять веб безопасность? Чтобы философски осмыслить всё это, требуется годы.
Вы посадите человека реального эксперта по Яве, думаете он будет вникать в тонкости создания модели безопасности?
Любой человек поскорее накидает что-то в настройках, лишь бы QA прошло, и всё. И спит спокойно.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960483
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Страшно подумать сколько уязвимостей на этом уровне существует. Хакеры просто пока не дошли до этих атак.

Ну расскажи хотя-бы об одной атаке.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960506
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
авторСравнения с keycloak то ждать или нет?:) Или понимайте, что там без шансов?)

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

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


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

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

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

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

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


dakeirasЭто REST URLы.

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

https://mycoolsystem.com

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


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

Спасибо, хоть рассмешили:) Серьезно воспринимать это я больше не могу. Особенно после заявления о том, что keycloak не продуман, в отличии от вашего шедевра, который без спринга и чихнуть не может, в том числе на клиенте.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960539
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть если у меня пара десятков функциональных ролей я должен 20 интерфейсов нарисовать?
Да. При этом это хорошая практика.
Видите, Ascend вас заставляет следовать конвенции правильной.

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

Код: java
1.
2.
@GetMapping("/{userRole}/{user}/documents")
Document getDocuments(...) {...}



Т.е. предиката безопасности должна присутствовать на ифраструктурном уровне (на транспортном уровне - в URL).
Это именно то как задумывался изначально REST, и я вам более того скажу - это было специально изначально заложено в HTTP его создателями.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960604
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

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

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

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

dakeiras@GetMapping("/{userRole}/{user}/documents")
А если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно).
Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960634
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКстати, keycloak был выпущен в 2014 году
Это они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе).

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

авторА если у пользователя несколько ролей? В том числе зависящих, откуда он в систему заходит? (Да, такое бывает, в одном филиале ты менеджер, в другом - старший менеджер. Где находится АРМ в который входит пользователь - известно).
Хотя о чем я спрашиваю, вы опять будете что-то веселое рассказывать вместо ответов.
Основной юскейс Ascend - единственная роль пользователя + Step Up (многоуровневый: T&Cs + Privacy Policy + Login +SMS OTP + ...)

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

Всё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен.
Keycloak только подтвердил это.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960636
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное Вы хотите сказать:

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

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

Ascend здесь альтернатива Keycloak.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960650
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я по прежнему жду презнетацию по Робину-Бобину и по твоей супер-секюрной системе
которая порвет Spring Security методы как Тузик грелку.

Должок....
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960655
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeirasЭто они пусть не лечат. Может где-то в недрах Red Hat (который платный вполне себе).

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


dakeirasНету. Но согласитесь конвенция правильная?
Бредовая конвенция на мой вкус.
dakeirasВсё что я говорил - что Spring Security для наиболее частого юскейса веб приложений и мобильных приложений - неправилен.
Keycloak только подтвердил это.
Что именно keycloak и каким образом подтвердил? Имея в виду, что он тоже умеет "защиту ресурсов по url", просто помимо этого предоставляет, например, API для получения данных о пользователе?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960701
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Имея в виду, что он тоже умеет "защиту ресурсов по url
Именно эту идею он и подтвердил. То что она правильная.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960787
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
автор Имея в виду, что он тоже умеет "защиту ресурсов по url

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

А то что он позволяет делать не только по урлам - это вы видимо пропустили) Мысли "это подтверждает идею того, что урлов не достаточно" не возникло?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960794
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960798
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960800
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот когда автор доберётся до SpringWeb, SpringData... И окажется что под капотом - херовый томкат с хибером.

И тогда мы все узнаем какое говно этот Spring...
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39960856
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И тогда мы все узнаем какое говно этот Spring...

пфф...это и так всем известно
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961512
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вот когда автор доберётся до SpringWeb, SpringData... И окажется что под капотом - херовый томкат с хибером.

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


Ну почему сразу tomcat?!
Там где-то притаились jetty с netty. :-)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961518
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот именно что притаились.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961570
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

>Сравнивайте пожалуйста с другими решениями
+1
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961644
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вот именно что притаились.


Ну помниться во времена Spring Boot 1.2-1,4 с embadded Tomcat были проблемы, а вот Jetty нормально работал.
А для React Spring кроме netty вообще алтернатив нет. :-)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961649
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с год назад тестил (в этом же форуме) что собирается в сборку для Spring/Rest. Выяснили что tomcat.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961676
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я с год назад тестил (в этом же форуме) что собирается в сборку для Spring/Rest. Выяснили что tomcat.


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

В принципе из SpringBoot можно "выбросить" и Hibernate.
Можно использовать только Jdbc, через JdbcTemplate.
Норм в принципе. А используя лямбды, для RowMapping, вообще красота получается. :-)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961678
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что дефолтная поставка томката в качестве веб-контейнера - как-то связана
с сертификацией. Видимо он - более стандартный штоли. С Jetty - возможно есть какие-то
нестыковки.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961685
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
mayton
Я с год назад тестил (в этом же форуме) что собирается в сборку для Spring/Rest. Выяснили что tomcat.


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

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


Groovy SQL тоже посмотрите, если нужен чистый SQL.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961725
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я думаю что дефолтная поставка томката в качестве веб-контейнера - как-то связана
с сертификацией. Видимо он - более стандартный штоли. С Jetty - возможно есть какие-то
нестыковки.


jetty не менее стандартный чем tomcat.
А сейчас вообще, всех пересаживают потихоньку на netty (Spring React)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961726
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Groovy SQL тоже посмотрите, если нужен чистый SQL.


Прошу прощения, но нет. Мне больше Kotlin нравиться. :-)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961811
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
dakeiras
Groovy SQL тоже посмотрите, если нужен чистый SQL.


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

ни разу не пользовался kotlin, т.к. в Груди всё устраивает.
А чем он вам больше нравится?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961834
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mad_nazgul
пропущено...


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

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

Котлин относится к классу строго-типизированных. Значит ошибок рантайма в нем будет меньше чем в Groovy.
Кроме того его делает очень хорошая команда Jetbrains. Тоесть интеграция со средой будет на высоком уровне.
И в котлине есть полезный синтаксический сахар которого давно ждали в Java. И есть красивые конструкции
которые зашли из ФП.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961895
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
dakeiras
пропущено...

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

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

Всё это есть в Groovy.
Насчёт команды - да, отличная проприетарная команда :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961897
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
пропущено...

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

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

Groovy далеко не строготипизированный, ну как минимум не static
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39961979
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mad_nazgul
пропущено...


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

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


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

Много синтаксического сахара.
Корутины.
Команда Spring Framework работает над совместимостью с Kotlin.
В отличии от Scala, где с работой Spring'ом не очень.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
пропущено...

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

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

Да я уже видел твои Бобины на груви. Мне хватило
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962132
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот демо телеграм бот, построенный на моём стеке i-t.io:

http://t.me/david_it_bot

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

Новый сайт уже готовится (можно подглядеть тут как оно будет выглядеть: https://i-t.io/website ), как и гуй для Восхода.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962146
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моя реакция на Бобину
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962168
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Моя реакция на Бобину

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

Тогда Бобина покажется раем.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962205
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
Моя реакция на Бобину

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

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


Как минимум код logback содержит комментарии и unit-тесты)
Да и код бобины с публичными изменяемыми полями (или это свойства?) - тот еще адок. Как будто студент накидал.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962230
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras
пропущено...

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

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


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


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

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

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

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

А то что private стали использовать чтобы автокомплитом управлять в ide - ну чтош. :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962235
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

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

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

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


1) Чем приватные поля помогают не давать доступ к секретам?
2) Каким образом из вашего API (например, при создании "зависимой" работы) я должен понять, что Destination#bobbinEngine должен быть установлен до начала работы Destination?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962243
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras

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

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

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


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


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

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

Я имел в виду документацию кода (комментарии и Java doc).
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962245
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) Указанная документация не отвечает на поставленный мной вопрос
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962255
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962258
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch
пропущено...


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


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

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


Я специально написал - при создании зависимой работы. Например, хочу добавить свой Destination, который является оберткой для остальных Destination.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962299
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962307
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[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, всё примитивно:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
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)
    }
}
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962420
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

ясвой Destination, который является оберткой для остальных Destination.
https://ru.wikipedia.org/wiki/Декоратор_(шаблон_проектирования)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962424
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник
dakeiras
пропущено...

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

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


А как же https://docs.groovy-lang.org/latest/html/gapi/groovy/transform/CompileStatic.html ?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962425
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

предполагаю что Вы имеете в виду паттерн декоратор. Но это не точно.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962427
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
Lelouch,

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

Да, именно. Как я должен понять, что должен присвоить bobbinEngine внутренней реализации Destination?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962429
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot betelgeizex#22139976]

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

Нестрогая типизация это для SRE всяких и жир.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962432
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
mayton
Моя реакция на Бобину

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

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

У тебя - детские ошибки мультипоточности нашли. На первом-же review в этом форуме. Ты пофиксил нехотя. Еле-еле.
Как будто одолжение сделал. А должен был - стремительно набросится. И после этого доказать что "годен к строевой".
Должен был рвать и метать и ре-а-би-ли-ти-роваться. Бенчмарки. Презентация. И форки в гитхабе и репо.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962434
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch
dakeiras
Lelouch,

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

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


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

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

Но я похоже недопонимаю. Буду рад улучшить код или документацию.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962435
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тему не читал,так как времени нет

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

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

тоесть как я тебе в другой теме написал - ты явно упустил что то по теме interface
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962439
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
В чем смысл тогда?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962440
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot dakeiras#22139984]
betelgeizex
пропущено...


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

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


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

Прелесть Groovy именно в том, что он позволяет оба варианта типизации..
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962441
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник


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.
В чем смысл тогда?


Вот только что ответил :)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962447
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите мои репозитории.

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

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

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

Посмотрите мой проект @BlackBox - этот AST добавляет логирование в методы автоматически на этапе компиляции.
Экономлю 50% кода и времени.
Получая логирование высочайшего качества.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962451
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
тему не читал,так как времени нет

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

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

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

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

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

Т.е. когда нужно хитрые правила доступа реализовать (смешав с бизнес логикой) - Spring Security подойдёт. Например ERP.
Для юскейса веб приложение\мобильное приложение - Keycloak (и его альтернатива - Ascend).
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962452
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dakeiras
Посмотрите мои репозитории.

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

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

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

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


Смотрел уже...
Библиотека логирования, тянущая за собой Groovy runtime в каждый Java-проект - это лютый оверхед. Не интересно.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962453
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
betelgeizex
dakeiras
Посмотрите мои репозитории.

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

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

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

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


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

Вы путаете с Бобиной. BlackBox чисто Груви проект, в Java не работает.
Тут просто спрашивали какие фишки крутые в Груви.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962454
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаешь где заканчивается мета-программирование?

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

А так да... Конешно. Лупи больше минералов аннотаций !
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962455
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
Wrapper extends Destination {
   BobbinEngine bobbinEngine; <-- сюда поле будет присвоено
   Destination destination;

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



Проблема в том, что из конструктора SomeOtherDestination нельзя понять, что bobbinEngine необходим для его работы.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962457
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dakeiras
betelgeizex
пропущено...


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

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


А, прошу прощения, не понял. Тут не могу не согласиться - Groovy, как ЯП, намного мощнее, чем Java (да и чем Kotlin тоже, насколько мои знания позволяют сравнивать)
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962464
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

твой груви через пару лет будет там же где и все остальные поющие писуары- тоесть в писуаре)
а джава еще лет 20 протянет благодаря спринг
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962468
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

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


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

И да, постарайтесь понять разницу между "построенный на Java" и "построенный на JVM". Пригодится.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962471
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

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


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

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

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

Просто у Груви нету бабла за плечами и PR. Опен сорс он такой, как художник нищий его каждый может обидеть.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962474
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы тут сказал про Graal VM но уверен что Оракл и его засрёт.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962480
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема Spring-Security закончилась. Уже пошли непотребства. Пора закрывать.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962483
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dakeiras
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

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


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

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

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

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


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

PS. Android - это не Java
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962486
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Тема Spring-Security закончилась. Уже пошли непотребства. Пора закрывать.


Так давно уже

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

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

Да я уже видел твои Бобины на груви. Мне хватило
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962488
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андроид - вообще не показателен. Т.к. многие решения в его дизайне были сделаны под давлением
американских законов и судов. И для Google было выгодно завлечь аудиторию молодых разработчиков
уже знакомым языком. А потом - суды. С Oracle. Изменение спецификации байткода. По сути - новая виртуалка
которая бинарно вообще не похожа на JVM. И сегодня - у них уже есть возможность спокойно менять
языки т.к. lifecycle обычных приложений для телефонов - короткий. 3-5 лет и капец. Это же не сравнить
с банковским ПО которое живет по 20 лет и его не то что заменить ... на него дыхнуть боятся потому-то
24/7 и PO заинтересован чтоб оно просто жило себе и приносило прибыли. А о миграциях на Груви или
Котлин может думать только сумашедний. Ну не верите мне - спросите ваших знакомых архитекторов
которые сидят в ент.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962498
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Андроид - вообще не показателен. Т.к. многие решения в его дизайне были сделаны под давлением
американских законов и судов. И для Google было выгодно завлечь аудиторию молодых разработчиков
уже знакомым языком. А потом - суды. С Oracle. Изменение спецификации байткода. По сути - новая виртуалка
которая бинарно вообще не похожа на JVM. И сегодня - у них уже есть возможность спокойно менять
языки т.к. lifecycle обычных приложений для телефонов - короткий. 3-5 лет и капец. Это же не сравнить
с банковским ПО которое живет по 20 лет и его не то что заменить ... на него дыхнуть боятся потому-то
24/7 и PO заинтересован чтоб оно просто жило себе и приносило прибыли. А о миграциях на Груви или
Котлин может думать только сумашедний. Ну не верите мне - спросите ваших знакомых архитекторов
которые сидят в ент.

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

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

Так что такой вещи как миграция языков в банках нет вообще ( за исключением Кобола по вышеописанной причине). И архитекторы тут не причём.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962504
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это прекрасно. Раз жив кобол то по поводу Груви можно не беспокоиться.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962522
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
betelgeizex
asv79
betelgeizex,очень смешно читать такое) язык построеный на джава мощнее чем джава))

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


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

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

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

а вы продолжайте кушать кактусы
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962524
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Это прекрасно. Раз жив кобол то по поводу Груви можно не беспокоиться.

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

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

ну а инди проекты могут существовать и на чистом байт коде)))
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962534
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asv79
betelgeizex
пропущено...


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

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

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

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


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

Попробуйте хоть раз написать Unit Test'ы для Java-классов на Groovy (всё это прекрасно уживается в одном проекте)
Возможно, в вашей закостенелой конторе такие вещи не приветствуются - жаль...
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962541
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
betelgeizex
пропущено...


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

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

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

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

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

А истинная причина почему много core java - люди боятся "а как бы шо не вышло", это всё от незнания.
Я видел пример как не стали внедрять Котлин в андроид приложение "патамушта новый, стрёмно'
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962543
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И последнее, моё личное мнение: Груви это не язык, это SDK.
Такой же как например Apache Commons, только намного обширнее.

Глупо не пользоваться одним их крупнейших и продвинутых SDK, правильно?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras

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

Я очень хотел бы услышать стенограмму этого обсуждения. Впрочем ... очень
похоже на шутку. JetBrains им вообще не стрёмно использовать? И свои
воцапы и вайберы не стрёмно?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962566
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dakeiras
И последнее, моё личное мнение: Груви это не язык, это SDK.
Такой же как например Apache Commons, только намного обширнее.

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


Что вы скажете на то, что groovy в индексе tiobe занимает предпоследнее с конца место среди 5 известных jvm-based языков (Java, Kotlin, Scala, Groovy, Clojure)?
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962572
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если-б я был Дейкстрой то я-бы сказал что программирование
на Коболе калечит разум. А на Groovy - портит нрав. И приучает
к глупостям.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962596
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
dakeiras

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

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


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

В принципе понятна логика но получилось хуже только.
...
Рейтинг: 0 / 0
Spring Security имеет неверную архитектуру
    #39962599
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если-б я был Дейкстрой то я-бы сказал что программирование
на Коболе калечит разум. А на Groovy - портит нрав. И приучает
к глупостям.

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

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

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

Да тот же picocli.
...
Рейтинг: 0 / 0
172 сообщений из 172, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security имеет неверную архитектуру
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]