|
|
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Всем привет! Пишу простое приложение - десктопное, которое дергает данные из базы данных, дополняет информационные справочники, делает некую аналитику, выводит отчет. На данном этапе хочу реализовать вход для пользователей и ограничение по функционалу например на уровне доступа к компонентам. По аутентификации набросал схемку: Просьба поправить если есть какие-то не точности, если кто считает что это ерунда предложите свой вариант решения или поделитесь своими мыслями. Либо наиболее простым работающим вариантом. По авторизации как думаете паттерн стратегия применим для ограничения пользователей или все таки нужно раздавать привилегии на уровне базы данных? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:29 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.HofmannПросьба поправить если есть какие-то не точности, если кто считает что это ерунда предложите свой вариант решения или поделитесь своими мыслями. Либо наиболее простым работающим вариантом. Ерунда, потому что... Существует два типа систем. Один, которые нужно обезопасить. В вашем сценарии клиентский код инструментируется и получает доступ без проверки паролей. Поэтому до безопастности вашей схеме ещё очень далеко. Второй, когда ввод пароля это условность. Например система работает в интранете клиента, и там нет ничего секретного, любой сотрудник может получить нужные данные в оффлайне. Для этого случая у вас слишком всё заморочено - соль, серверная проверка, временная таблица. Dr.HofmannПо авторизации как думаете паттерн стратегия применим для ограничения пользователей или все таки нужно раздавать привилегии на уровне базы данных? Я думаю, что вам нужно научится не тыкать паттерны куда попало. Особенно если вы не понимаете их назначения. И начать с каких-то базовых вещей, таких как Abstract Layer и Single Responsibility Principle. В 2-tier системах, обычно используюется Security на уровне БД. Зачем вам изобретать что-то своё, если можно в SQL Server 2008 создать юзеров, задать пароли и раздать права на таблицы и базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:41 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
А если писать приложение под винду, то я бы вообще делал SSO с ActiveDirectory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:43 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmannпаттерн стратегия прям паранойя какая-то) У нас есть что защищать, перед тем как систему строить? Может лучше трафик до БД шифровать? Чтобы ИС не трогать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:54 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторпрям паранойя какая-то) Ну хорошо хорошо это мое предположение не более того. авторМожет лучше трафик до БД шифровать? Чтобы ИС не трогать? Какие есть варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 16:00 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 16:00 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.HofmannКакие есть варианты? - их привели выше: - Win авторизация / SSO / IPSec - сначала сделать "ГУИ разное от роли", что сложнее. А все вызовы обернуть try чтобы юзверь увидел ошибку ОТ СЕРВЕРА - У вас недостаточно прав на данную операцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 16:05 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, по всей вуидимости у тебя двузвенка. Поэтому надо исходить из того что все бинари и исходники доступны пользователю на рабочей станции. Следовательно всю информацию о секретных ключах и хешах нужно убрать из клиента в вынести его в сервер. В роли этого сервера у тебя выступает БД (так сложилось) поэтому и аутентификацию надо реализовывать теми средствами что есть в БД. Выдумывать всякие соли и хеш даты нет никакого смысла. Заводи каждому пользователю учётку в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 16:29 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторВ 2-tier системах, обычно используюется Security на уровне БД. Зачем вам изобретать что-то своё, если можно в SQL Server 2008 создать юзеров, задать пароли и раздать права на таблицы и базы. авторВыдумывать всякие соли и хеш даты нет никакого смысла. Заводи каждому пользователю учётку в БД. Я правильно понимаю, Что просто делаю форму аутентификации и передаю логин пароль: Сюда: Код: java 1. 2. 3. Каждый раз когда это необходимо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 09:56 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.HofmannЧто просто делаю форму аутентификации и передаю логин пароль: Сюда: Код: java 1. 2. 3. Каждый раз когда это необходимо? Ну, грубо-говоря да. Не очень понятно про "каждый" раз. Обычно, DataSource создается единожды. Есть и альтернативные варианты, которые позволяют не хранить пароль в памяти. Но вам пока можно не заморчиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 10:02 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторНе очень понятно про "каждый" раз. Обычно, DataSource создается единожды. правильно понимаю он делается статическим. + создаем гетер на DataSource? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 11:11 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.HofmannавторНе очень понятно про "каждый" раз. Обычно, DataSource создается единожды. правильно понимаю он делается статическим. + создаем гетер на DataSource? У тебя - десктоп: 2 варианта - MS рекомендует коннект при создании окна - проще (я делал) коннект при открытии приложения + протаскивать коннект в каждое окно в конструкторе. А дальше уже по вкусу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 11:50 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Я-бы не стал дергать в каждой формочке коннект без крайней необходимости. Лучше попробовать isValid http://stackoverflow.com/questions/847246/what-is-the-best-way-to-ping-a-database-via-jdbc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 14:53 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторУ тебя - десктоп: 2 варианта - MS рекомендует коннект при создании окна - проще (я делал) коннект при открытии приложения + протаскивать коннект в каждое окно в конструкторе. А дальше уже по вкусу. Комрады мы говорим с вами про DriverManager: ??? или DataSource ??? Я так понял понял что для swing приложений используется DriverManager с jdbc url-ом, а DataSource jndi именами для EE? поправте если ошибаюсь. авторЯ-бы не стал дергать в каждой формочке коннект без крайней необходимости. Лучше попробовать isValid http://stackoverflow.com/questions/847246/what-is-the-best-way-to-ping-a-database-via-jdbc Такой ход мысли??? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 11:55 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, я пишу про использование метода isValid http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#isValid(int) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 12:04 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, - выше 20 строк абсолютно ничего не делают. - если у нас десктоп, то только ты своим кодом владеешь коннектом. Поэтому выключаем автокоммит, таймаут = длинные транзакции. БД и её возможности используем по полной. (чтобы не писать такой шум на 20 строк) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 12:17 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторDr.Hofmann, я пишу про использование метода isValid http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#isValid(int) авторDr.Hofmann, - выше 20 строк абсолютно ничего не делают. - если у нас десктоп, то только ты своим кодом владеешь коннектом. Поэтому выключаем автокоммит, таймаут = длинные транзакции. БД и её возможности используем по полной. (чтобы не писать такой шум на 20 строк) около??? Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 12:38 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, коннект это обычная переменная. Ты же все переменные на null не проверяешь? Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 12:53 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторконнект это обычная переменная. Ты же все переменные на null не проверяешь? автор- проще (я делал) коннект при открытии приложения + протаскивать коннект в каждое окно в конструкторе. ой я уже запутался если он создается при открытии приложения зачем его проверять? Уже каша в голове логика такая должна быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 14:23 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann , я тебя прошу не флудить картинками. Они безсмысенны т.к. ты используешь свою собственную систему обозначений flow алгоритма не совместимую с UML и непонятную для большинства. Пиши лучше кодом или текстом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 14:27 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, действительно. Твои картинки странные. В чём вопрос? .... Т.к. жизненный цикл всех окон я контролирую (закрытие и открытие). То, логично, в 3 класса окна, в конструкторе передать Conn. Что непонятно? При закрытии приложения прибить коннект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 14:33 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторDr.Hofmann, действительно. Твои картинки странные. В чём вопрос? .... Т.к. жизненный цикл всех окон я контролирую (закрытие и открытие). То, логично, в 3 класса окна, в конструкторе передать Conn. Что непонятно? При закрытии приложения прибить коннект. авторDr.Hofmann, я тебя прошу не флудить картинками. Они безсмысенны т.к. ты используешь свою собственную систему обозначений flow алгоритма не совместимую с UML и непонятную для большинства. Пиши лучше кодом или текстом. Извините пожалуйста что саботировал ваш мозг своими картинками. Я просто размышляю вслух и пытаюсь написать код наиболее приемлемым-подходящим образом: Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 15:35 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, ну дак, и пишите Приложение, а не класс MyConnection - он уже есть. Зачем вам геттер? Вместо 2-х строк стало 55. Вместо USER PASS тоже 2 класса будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 15:51 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
авторЗачем вам геттер? Чтоб не писать каждый раз, нечто подобное: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. а вызывать getanotherConnection когда это необходимо. авторВместо USER PASS тоже 2 класса будет? Я плохо понял вопрос честно говоря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 16:10 |
|
||
|
Аутентификация, авторизация в swing приложении: как реализовать?
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, я говорил про 2 варианта архитектуры: 1) передавать коннект в окно-контейнер 2) при создании окна-контейнера написать ЭТИ 2 строки. Окно контейнер ты неделю проектируешь. Про какой случай говорим? ЗЫ - В менюшках не нужен коннект. - "каждый раз" понятие относительное....оверхед - тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2014, 16:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38768109&tid=2126502]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 518ms |

| 0 / 0 |
