Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-1 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 17
1

Механизмы безопасности (и правила хорошего тона)

06.10.2017, 08:27. Показов 654. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день Уважаемые!

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

Так случилось что с java был знаком давно, и когда-то активно использовал ее в личных не корыстных целях, в основном учебных, так-как был студентом, и в большей степени в desktop'ном варианте. Тогда было время jdk 1.2 (или 1.4), и так случилось, что ввиду отсутствия практического применения интерес к ней постепенно угас.

Но вот ни так давно вновь возникла необходимость сотворить нечто как минимум для личного пользования (а если пойдет неплохо - то и служебного), потому как потребности есть, бюджет невелик, а коммерческие ценники заоблачны!

В перспективе нужно натянуть Web-морду на некую БД, и представить все это в виде подобия CRM, да еще и спроектировать все так, чтоб это в перспективе могло поддерживаться и развиваться другими людьми (который уже героически заслужили артрит пальцев рук).
После беглого осмотра многочисленных технологий - было принято решений идти путем самурая, т.к. Spring,Hiber и прочие представители заоблачных уровней программирования выглядят как трактор для муравья - решил остановиться на связке Wiket+MyBatis, благо с SQL уже очень неплохо знаком.

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

Во-первых, мне все же ближе методы раннего связывания, но беглый взгляд на рефлексию показывает, что поля типа
Java
1
private String usrPwd
уже не такие и приватные,
а придуманный сходу контроль доступа на основе Exception может получится громоздким(да и вообще google не подтвердил, что кто-то так делает).

Отсюда первый вопрос - как грамотные люди, обремененные опытом, реализуют контроль уровня доступа к объектам, не прибегая к помощи SpringSecurity и т.п., а может вообще стоит взглянуть на родные механизмы Java(которые как мне показалось плохо известны даже спецам из Oracle) или же никто уже не пешком не ходит - все любят летать.

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

P.S. вообще сложилось впечатление, что целовать (принцип KISS) в мире JAVA принято теперь либо в лоб либо, простите, в попу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2017, 08:27
Ответы с готовыми решениями:

Правила хорошего тона?
У меня есть много окон. Экземпляры моделей для них я храню в самом App. Пример: public partial...

Правила хорошего тона в программировании в VB (+++)
Господа программисты, давайте обсудим правила хорошего тона программирование в VB. Например у меня...

Правила хорошего тона (грамотный код)
Вопросы хорошего тона, грамотности и красоты кода. Лечение быдлокода. Лично у меня пока что...

Плагины и правила хорошего тона программирования
Доброе время суток! Пишу достаточно большую программу на C#.NET 3.5 Все пока получается но есть...

8
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
06.10.2017, 10:18 2
Цитата Сообщение от Intervent Посмотреть сообщение
контроль доступа на основе Exception
???
Цитата Сообщение от Intervent Посмотреть сообщение
реализуют контроль уровня доступа к объектам, не прибегая к помощи SpringSecurity
Уровень доступа в какой плоскости? В плоскости использования написаных Вами библиотек другими программистами, или доступа пользователя к определенным сегментам системы?

Выражайте свои мысли коротко и по делу, Вас трудно читать. До 11й строки читать вообще нет смысла, а после нее 50 на 50.
0
-1 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 17
06.10.2017, 11:21  [ТС] 3
Заранее извинился за многословность, думал, что это даст представление об уровне квалификации.

Речь идет о доступе к сегментам системы.

Идея в том, что методы которым требуются некие права вызывают нечто вроде
Java
1
currentUser.checkUserRight("какое-то там право")
, а он в свою очередь выбрасывает что-то вроде
Java
1
public class UserRightExcention extends Throwable {}
которые либо обрабатываются прям на месте или летят выше

Вопрос в том оправдана ли эта схема, или есть готовый механизм (по возможности без SpringSecurity)

Google пока предлагает старые статьи на подобии этой https://habrahabr.ru/post/95920/ - на мой взгляд то-же самое но через рефлексию
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
06.10.2017, 11:42 4
Все зависит от логики работы, можно бросать ексепшены, можно возвращать статус коды.

Ексепшен требует больших затрат по сравнению со статус кодами, если система работает под нагрузкой то на это следует обратить внимание.

Если вы отбрасываете Spring Security по причине сложности, то работа с аспектами врядли покажется проще.

Если вы задействуете Spring в своем проекте то использование Spring Security вполне логичный вариант, он обеспечивает
тот функционал о котором Вы спрашиваете.
1
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.10.2017, 13:01 5
Цитата Сообщение от Intervent Посмотреть сообщение
решил остановиться на связке Wiket+MyBatis
Цитата Сообщение от Intervent Посмотреть сообщение
как грамотные люди, обремененные опытом, реализуют контроль уровня доступа к объектам, не прибегая к помощи SpringSecurity
вы сами себе создаете проблемы. Проекты подобного рода что нужен вам, создаются на Spring Boot за пару часов.
Пример демо проекта на Spring Boot и смежных технологиях вот стартер такого проекта например.
1
-1 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 17
06.10.2017, 13:30  [ТС] 6
Спасибо за ответ, наличие Spring в проекте не предполагается.

Изначально смотрел в сторону связки Spring+Hibernate, но понял, что на сколько-нибудь вменяемое изучение технологий уйдет времени больше чем на сам проект при текущем уровне знаний.

Насколько понял, основные затраты Exception связаны с формированием Stack trace. Однако это, по всей вероятности, можно обойти .

Буду разбираться дальше...
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.10.2017, 13:42 7
Цитата Сообщение от Intervent Посмотреть сообщение
Насколько понял, основные затраты Exception связаны с формированием Stack trace.
вам это должно быть абсолютно неважно. Шанс что вы в ближайшие 10 лет будете писать систему, у которой проблемой производительности будет формирование stack trace, с огромной скоростью стремится к нулю.

Hibernate вам никто не предлагает использовать в чистом виде. Свои велосипеды вы будите писать гораздо дольше чем понять что вам нужно на базовом уровне со spring boot.
1
-1 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 17
06.10.2017, 14:13  [ТС] 8
Spring boot, я смотрел, и это просто восхитительно, что для фреймворка в котором черт ногу сломит создали очередную надстройку, такими темпами скоро появится нечто вроде Simple String Boot))

На самом деле если бы я пророчил себе длительную карьеру JAVA разработчика и предполагал работу с тяжелыми проектами, то конечно начал бы разбираться со всей этой Весенней галимотьей, тут Spring boot был просто отличным началом.

А если нужно бы было очень быстро что-то сделать, то вообще обратил бы внимание на платформу Cuba. (может кстати так и поступлю).

Мое же положение где-то посередине, и вдобавок сильно раздражает использование технологий о механизмах работы которых я имею весьма отдаленное представление, которое скорее всего таким и останется. А вот опыт работы с MyBatis и Wicket - может пригодится(умирать эти фреймы вроде не собираются)
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
06.10.2017, 16:25 9
Если Вы хотите делать что то боевое с первого раза, особо не вникая в технологии, то это явно не про джаву.
0
06.10.2017, 16:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2017, 16:25
Помогаю со студенческими работами здесь

Оптимизация кода и правила хорошего тона
Доброе утро! Изучаю php и сразу пытаюсь делать все грамотно и не плодить лишнего. Так вот...

Подскажите новичку правила хорошего тона в вёрстке
Делаю сайт. В настоящий момент делаю так - верстаю "резиновый" макет на дивах, а внутрь каждого...

Правила хорошего тона при инициализации компонентов
Допустим есть форма и я хочу выполнить некоторые действия над группой компонентов в отдельном...

Правила хорошего тона при объединении php и html кода
Здравствуйте. Насколько мне известно, есть возможность встраивания в html страницу php кода, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru