|
|
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Начал знакомиться с Spring Security, прочел примерно половину документации и меня не покидает ощущение, что в этом пакете все как-то угловато, нет гибкости. Так как опыт работы с пакетом отсутствует, надеюсь я ошибаюсь. Насколько удобно использовать, если основной функционал, который требует аутентификации/авторизации работает через ajax? Гибкая настройка модели в зависимости от прав доступа (т.е. какие данные будут отображать на странице, а какие нет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 16:53:30 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Да, ошибаешься, причем, конкретно. Очень гибкая штука. Позволяет создать любую кастомную авторизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:17:09 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckДа, ошибаешься, причем, конкретно. Очень гибкая штука. Позволяет создать любую кастомную авторизацию. Тогда имеет смысл продолжить чтение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:20:09 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Не думаю. Документация - это только помощник, но не учебник. Надо на реальном проекте пробовать. Или реальные примеры рассматривать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:21:23 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckНе думаю. Документация - это только помощник, но не учебник. Надо на реальном проекте пробовать. Или реальные примеры рассматривать. У меня изначально было желание ради практики сделать небольшой велосипед на AOP, но сначала все таки решил ознакомиться с тем что уже имеется. Примеры я просмотрел, они как обычно не особо подробные. Базовые вещи из документации понятнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:23:53 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, а легко ли реализуется контроль доступа к странице, если к странице иметь доступ должен только один пользователь или группа пользователей? Например страница "Редактирование профиля", к которой доступ должен иметь только один конкретный пользователь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 00:21:44 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
rdm, мега легко, тегом одним ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 00:40:36 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
забыл никrdm, мега легко, тегом одним А можно ссылочку, я нагуглить не могу такой пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 00:46:51 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
rdmА можно ссылочку, я нагуглить не могу такой пример. Почитайте SPRING SECURITY 3.1 И купите её , если ответит на ваши вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:01:13 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
dmitriycherdmА можно ссылочку, я нагуглить не могу такой пример. Почитайте SPRING SECURITY 3.1 И купите её , если ответит на ваши вопросы. К сожалению, я не настолько хорошо владею английским) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:02:58 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Думаю, developer-friendly способ - это указать пользователю его Authority из энума, реализующего интерфейс GrantedAuthority, и создать авторизационный объект (сущность, бин), реализующий интерфейс UserDetails, который и скармливать реализации Authentication и/или AuthenticationProvider. А дальше в конфиге спринга (в springmvc-servlet.xml вроде должно) прописать: Код: xml 1. И уже в контроллере использовать аннотации типа Код: java 1. Вроде как у Spring Security по дефолту уже есть свой набор типа USER, ADMINISTRATOR, ANONYMOUS, но я с базовой настройкой имел дело несколько лет назад, поэтому не подскажу. Но если использовать, то не надо переопределять соответствующие классы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:12:01 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckДумаю, developer-friendly способ - это указать пользователю его Authority из энума, реализующего интерфейс GrantedAuthority, и создать авторизационный объект (сущность, бин), реализующий интерфейс UserDetails, который и скармливать реализации Authentication и/или AuthenticationProvider. А дальше в конфиге спринга (в springmvc-servlet.xml вроде должно) прописать: Код: xml 1. И уже в контроллере использовать аннотации типа Код: java 1. Вроде как у Spring Security по дефолту уже есть свой набор типа USER, ADMINISTRATOR, ANONYMOUS, но я с базовой настройкой имел дело несколько лет назад, поэтому не подскажу. Но если использовать, то не надо переопределять соответствующие классы. Мне кажется вы меня не совсем поняли. Я говорю не про роли, о которых обычно идет речь в примерах(ROLE_*). Допустим имеется 1000 пользователей, каждому из которых нужно предоставить доступ к определенным, но разных адресам. Например local/user/rdm, local/user/IDVsbruck. Создавать для каждого пользователя отдельную роль(ROLE_rdm)? Наверно это не правильный подход, и роли о которых вы говорите используются для более общего разделения (администраторы, пользователи, анонимы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:19:35 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Думаю, тут уже надо играться с mapping'ом. К примеру, у меня была похожая ситуация в проекте, правда, там учавствовали рассматриваемые данные, а не полномочия пользователя, но все же схожая: Код: java 1. 2. 3. 4. 5. то есть по условному имени компании в URL можно попасть в профиль. В твоем случае получать в @PathVariable псевдоним пользователя и по нему уже делать манипуляции (проверять полномочия, отдавать требуемые данные или страницу). Правда, данный способ лишь косвенно может касаться Spring Security. Если же надо при переходе по одной и той же ссылке получать разный контент, то играться уже внутри метода контроллера с authentication и в зависимости от полученного пользователя отдавать требуемые данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:41:26 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, я надеялся, что такая функциональность доступна без моих дополнительных манипуляций) В таком случае особых преимуществ этого пакета, перед своим велосипедом я не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:45:08 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckДумаю, тут уже надо играться с mapping'ом. К примеру, у меня была похожая ситуация в проекте, правда, там учавствовали рассматриваемые данные, а не полномочия пользователя, но все же схожая: Код: java 1. 2. 3. 4. 5. то есть по условному имени компании в URL можно попасть в профиль. В твоем случае получать в @PathVariable псевдоним пользователя и по нему уже делать манипуляции (проверять полномочия, отдавать требуемые данные или страницу). Правда, данный способ лишь косвенно может касаться Spring Security. Если же надо при переходе по одной и той же ссылке получать разный контент, то играться уже внутри метода контроллера с authentication и в зависимости от полученного пользователя отдавать требуемые данные. В вашем примере как я понял к профилям компаний опять же имеют все пользователи с ролью "USER". Я бы хотел что-то вроде Код: java 1. 2. 3. 4. 5. если скажем разных {name} у нас тыща) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 01:49:47 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Spring Security не оперирует именами и никами, он оперирует ролями. Опять-таки, я уверен, что гибкость SS позволит реализовать кастомную авторизацию с переопределенными кастомными условиями для входа, но чего-то мне кажется, что это неправильное, тупиковое и некошерное решение. Что мешает пойти по простому пути? Код: java 1. 2. 3. 4. 5. 6. 7. Просто надо убедиться, что Вася - это Вася, и что права у него есть, и учетка в базе ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 02:09:15 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckSpring Security не оперирует именами и никами, он оперирует ролями. Опять-таки, я уверен, что гибкость SS позволит реализовать кастомную авторизацию с переопределенными кастомными условиями для входа, но чего-то мне кажется, что это неправильное, тупиковое и некошерное решение. Что мешает пойти по простому пути? Код: java 1. 2. 3. 4. 5. 6. 7. Просто надо убедиться, что Вася - это Вася, и что права у него есть, и учетка в базе ... Не проще ли тогда будет без ss Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 02:20:16 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
p.s. Я баиньки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 02:22:56 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
То есть, если я - это я, но зашел с другого компа, то я не попаду на страницу? Или смысл в том, чтобы устанавливать куку при авторизации? Никто не мешает так делать; если все применение Spring Security базируется на таком доступе, то естественно, можно пренебречь фреймворком, хотя такой подход сомнителен. Мне казалось, преимущества использования фреймворка очевидны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 02:44:07 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckТо есть, если я - это я, но зашел с другого компа, то я не попаду на страницу? Или смысл в том, чтобы устанавливать куку при авторизации? Никто не мешает так делать; если все применение Spring Security базируется на таком доступе, то естественно, можно пренебречь фреймворком, хотя такой подход сомнителен. Мне казалось, преимущества использования фреймворка очевидны. Вот я что-то пока их для себя не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 10:20:35 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Есть ли какие-нибудь популярные аналоги/конкуренты ss? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 18:06:29 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Все привет. Хотел писать свой топик, но раз тут обсуждают Spring Security, задам по нему свой вопрос здесь. Все что я видел про SS, оно было в контексте страничек и доступа к ним. А что делать если у меня проект на Vaadin, и страничка всегда одна? А мне надо в зависимости от роли выводить или не выводить некоторые объекты. Или же надо разделить такие возможности как сохранение сущности, изменение ее или удаление. Т.е. чтобы обычный пользователь мог сохранить сущность в базе, но изменить ее после сохранения уже не мог. Сейчас сделал по простому, есть класс в котором много методов вроде Код: java 1. 2. 3. 4. В которых проверяется, какие роли и имеет пользователь и могут ли они выполнить данное действие. И далее вроде такого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. В такой ситуации SS вообще поможет? И имеет ли смысл использовать его для таких простых проверок? Будет ли с ним проще работать чем с моим простым, как палка, великом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2013, 15:58:18 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияА что делать если у меня проект на Vaadin, и страничка всегда одна? как показывает практика, многие фреймворки имеют интеграцию с какой-то секьюрити. гуглил по ваадину? Ищущий ЗнанияА мне надо в зависимости от роли выводить или не выводить некоторые объекты. как правило решается на уровне фреймворка написанием копонентов/миксинов, которые опрашивают security framework например Код: html 1. 2. 3. Ищущий ЗнанияИли же надо разделить такие возможности как сохранение сущности, изменение ее или удаление. Т.е. чтобы обычный пользователь мог сохранить сущность в базе, но изменить ее после сохранения уже не мог. можно интерсепторы на методы сохранения,изменения,удаления повесить. можно сложную логику принятия решения прикрутить. Ищущий ЗнанияВ такой ситуации SS вообще поможет? тебе видней. зависит от сложности требуемого решения и удобности интеграции в фреймворк Х. Ищущий Знания И имеет ли смысл использовать его для таких простых проверок? Будет ли с ним проще работать чем с моим простым, как палка, великом? являются ли специализированные фреймворки более универсальными и надежными чем велосипед? - как правило да. проще ли с ними работать, чем со своим велосипедом? - зависит от. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2013, 16:23:29 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, дочитал в документации до Код: java 1. 2. кажется это то, что мне надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2013, 17:35:02 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Ну, супер. Не видел, не использовал - не было необходимости. Буду тоже знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2013, 17:52:46 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияА что делать если у меня проект на Vaadin, и страничка всегда одна? почему она одна? Их надо несколько делать на Роли. Даже если onLoad одна и точка входа одна. Т.е. всё равно проектируем АРМ уборщицы и АРМ главбуха. Где всё Окно со своим дизайном и доступом. Так должно быть классически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2013, 18:34:10 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Petro123Ищущий ЗнанияА что делать если у меня проект на Vaadin, и страничка всегда одна? почему она одна? Их надо несколько делать на Роли. Даже если onLoad одна и точка входа одна. Т.е. всё равно проектируем АРМ уборщицы и АРМ главбуха. Где всё Окно со своим дизайном и доступом. Так должно быть классически. Кому должно-то? Вроде уже 2013 год идет... html не самая продвинутая технологтя)) И нафига мне плодить какие-то странички? Нафига еще и каждому свою страничку выдумывать? Еще и дизайн каждому выдумывать и каждому свою инструкцию индивидуально писать? Все гораздо проще, там АРМ строится на ходу, в соответствии с ролью. Общий интерфейс, в котором пункты появляются в соответствии с ролью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2013, 22:36:32 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, Ты написать можешь всё. Даже то, что ИС-ресторан в динамике преобразуется в ИС-авиабилеты. Но: - дизайн надо выдумавать для роли. Как же без него) - на выходе, например в Яндекс-кэш, ты всё рано отдаёшь странички - рессурс по урл. Хотя, если у тебя ваадин а-ля десктоп - делай что угодно для своих пользователей. Даже трансформер. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2013, 13:11:37 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Petro123Ищущий Знания, Ты написать можешь всё. Даже то, что ИС-ресторан в динамике преобразуется в ИС-авиабилеты. Но: - дизайн надо выдумавать для роли. Как же без него) - на выходе, например в Яндекс-кэш, ты всё рано отдаёшь странички - рессурс по урл. Хотя, если у тебя ваадин а-ля десктоп - делай что угодно для своих пользователей. Даже трансформер. Удачи! У меня приложение как раз "а-ля десктоп". Интерфейс строится по таким же принципам. Поэтому странички не катят. Web, это далеко не только хомяки и магазины в инете ) Дизайн далеко не всегда надо выдумывать. В суровом ынтырпрайзе очень часто дизайн один для всех, АРМ отличаются только набором пунктов. Есть конечно исключения, вроде кассира в супермаркете, но там вебом и не пахнет даже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 03:32:59 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
OFF Ищущий ЗнанияВ суровом ынтырпрайзе очень часто дизайн один для всех, всё верно. Значит у тебя роль - Одна для всех. Ищущий ЗнанияАРМ отличаются только набором пунктов. это как? Тебе повезло. У твоих проектов нет ТЗ с прототипами интрфейсов, и....возможно....документации. Т.к. рисует интерфейс - не программист. Ему плевать, что тебе удобнее сделать Visible = False. .... Ещё раз IMHO. Политика Ролей предпочитает строить интрйейс сразу на большую группу людей. А не на одного юзверя. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 10:09:14 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Petro123 Ищущий ЗнанияАРМ отличаются только набором пунктов.это как? Тебе повезло. У твоих проектов нет ТЗ с прототипами интрфейсов, и....возможно....документации.Мдя ... Не видели вы OS/400 ... Хорошо продуманный и документированный интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 10:22:33 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Petro123 Ищущий ЗнанияАРМ отличаются только набором пунктов. это как? Тебе повезло. У твоих проектов нет ТЗ с прототипами интрфейсов, и....возможно....документации. Ну во первых, давай не будем говорить за все проекты скопом) А во вторых, достаточно посмотреть на ту же 1С, которая мягко говоря имеет хождение по РФ )) У нее дизайна для АРМ как такового нет. Есть стандартные менюшки и формы, которые в зависимости от доступа отображаются или нет. Это я конечно утрированно написал, нюансы есть везде. Но в целом так и есть. АРМ продавца принципиально не отличается от АРМ закупщика, от АРМ кладовщика, от АРМ бухгалтера и т.д. Повторюсь, единственный АРМ который сильно отличается от всех, это кассир в супермаркете на кассе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:06:20 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Ищущий ЗнанияАРМ продавца принципиально не отличается от АРМ закупщика, от АРМ кладовщика, от АРМ бухгалтера и т.д. круто. А 1С:ТиС и 1С:Бухгалтерия различаем? Конечно я не про все проекты). Пусть будут такте как у тебя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:11:13 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Ищущий Знания, ну, и не забывай, про декларативное описание интерфейса \ разметки \ XAML и т.д. Это проектируется в статике...описательно... Не важно на каком ЯП или DSL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 17:13:48 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
Возникло несколько вопросов. 1. За регистрацию нового пользователя, в т.ч. добавление информации в БД отвечает программист, тут ss ничего не предлагает так? 2. При использовании контроля доступа на основе аннотаций, что делать с блоком <http auto-config= ...>? Как я понял есть несколько способов сделать одно и тоже используя ss. Если говорить про авторизацию с помощью аннотаций, блок <http> будет отвечать только за формы, и параметры авторизации нужно удалить из него? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 20:16:26 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
И еще, в каких случаях использовать ACL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 22:50:00 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
rdmВозникло несколько вопросов. 1. За регистрацию нового пользователя, в т.ч. добавление информации в БД отвечает программист, тут ss ничего не предлагает так?Spring Security - не ORM, почему он должен что-то предлагать по сохранению в БД? Это механизм авторизации, а не сохранения данных. rdm2. При использовании контроля доступа на основе аннотаций, что делать с блоком <http auto-config= ...>? Как я понял есть несколько способов сделать одно и тоже используя ss. Если говорить про авторизацию с помощью аннотаций, блок <http> будет отвечать только за формы, и параметры авторизации нужно удалить из него?Если нужна авторизация по http (т.е. в основном для веб-приложений), то этот блок обязателен. Если установлен параметр auto-config в true, то настройки дефолтовые, если false, то настраиваемые. И отвечает не только формы, но еще много других параметров, к примеру, сессии, remember me, фильтры, конкурирующие запросы. А в целом, вопрос не понятен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 23:21:46 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
IDVsbruckrdmВозникло несколько вопросов. 1. За регистрацию нового пользователя, в т.ч. добавление информации в БД отвечает программист, тут ss ничего не предлагает так?Spring Security - не ORM, почему он должен что-то предлагать по сохранению в БД? Это механизм авторизации, а не сохранения данных. rdm2. При использовании контроля доступа на основе аннотаций, что делать с блоком <http auto-config= ...>? Как я понял есть несколько способов сделать одно и тоже используя ss. Если говорить про авторизацию с помощью аннотаций, блок <http> будет отвечать только за формы, и параметры авторизации нужно удалить из него?Если нужна авторизация по http (т.е. в основном для веб-приложений), то этот блок обязателен. Если установлен параметр auto-config в true, то настройки дефолтовые, если false, то настраиваемые. И отвечает не только формы, но еще много других параметров, к примеру, сессии, remember me, фильтры, конкурирующие запросы. А в целом, вопрос не понятен. JdbcUserDetailsManager есть поля, которые принимаю String для разнообразных запросов, включая createUserSql и прочее. Вопрос в том, как создавать(как правильно) нового пользователя. Средствами ss или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2013, 23:42:50 |
|
||
|
Spring Security
|
|||
|---|---|---|---|
|
#18+
А, понял, о чем ты ... Помню, что было описана структура таблицы БД (кажется, 3 поля) с названиями полей, к которой может обращаться по дефолту SS. Конечно, решение "из коробки", но очень сомнительное решение, так как надо подстраиваться под требования ... зачем, когда можно реализовать самому таблицы и вычитку так, как это удобно. Хотя, кто что ищет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2013, 02:16:42 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2129539]: |
0ms |
get settings: |
15ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
51ms |
get topic data: |
18ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 315ms |
| total: | 527ms |

| 0 / 0 |
