|
|
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть фильтр: public class MyFilter implements Filter { @Autowired private MyAuthService service; Есть несколько видов бизнес-объектов:Driver,Client,Admin В каждой сущности есть логин, пароль, id и т.д. Для того, чтобы сработал autowired в фильтре, я пишу: Код: java 1. В MyAuthService находится метод для получения юзера по логину и паролю, но, проблема в том, что я не знаю какой пользователь логинится, соответственно не понятно какой repository использовать: clientRepository.findByLoginAndPassword() или driverRepository.findByLoginAndPassword() или adminRepository.findByLoginAndPassword() Прокомментируйте пожалуйста. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2016, 11:29 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html мне это понравилось простотой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2016, 11:33 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понимаю, что спринговые интерцепторы, это по сути те же сервлет фильтры, с той лишь разницей, что интерцепторы работают в рамках спринг-контейнера(а значит имеем поддержку всяких @Autowire без костылей типа AutowireCapableBeanFactory), а фильтры в рамках веб-контейнера типа томкат, или джетти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2016, 18:50 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Если не ошибаюсь, то спринговый @Component можно пометить аннотацией @WebFilter и он автоматом засеттится как фильтр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2016, 20:31 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
pavel_nvЕсли не ошибаюсь, то спринговый @Component можно пометить аннотацией @WebFilter и он автоматом засеттится как фильтр Спасибо, но вопрос не об этом. Мне нужно понять разницу между фильтрами и интерцепторами, и при каких условиях использовать тот или иной механизм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2016, 22:18 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
вадя http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html мне это понравилось простотой А что в этом хорошего (ну кроме как учебного примера изпользования фильтров)? 1) маски URL захардкожены: private class Rule { public static final String USER_ANY = "*"; public static final String URL_ANY = "/*"; 2) файл с правами разположен в папке с классами (read-only? modify on redeploy?): @Override public void init(FilterConfig filterConfig) throws ServletException { BufferedReader res = new BufferedReader(new InputStreamReader(filterConfig.getServletContext().getResourceAsStream("/WEB-INF/classes/users.txt"))); 3) права заданы в файле, а не в БД; 4) не реализованы другие способы авторизации, как, н-р, LDAP или сторонний сервис; 5) не предусмотрены группы; 6) нет защиты против CSRF-аттак. А если всё это изправлять, то чем оно будет лучше изпользования Spring Security? По-моему, данная статья как нельзя лучше подтверждает тезис, который в автор пытается опровергнуть: "Нельзя делать свои велосипеды! Надо использовать проверенные и отлаженные библиотеки!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 19:38 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
7) форма захардкожена в фильтре: PrintWriter out = resp.getWriter(); out.print("<html><body><form method=\"POST\" action=\"" + uri + "\">\n" + "<input type=\"text\" name=\""+PARAM_LOGIN+"\" placeholder=\"Login\"><br/>\n" + "<input type=\"password\" name=\""+PARAM_PASS+"\" placeholder=\"Password\"><br/>\n" + "<input type=\"submit\" value=\"Login\" />\n" + "</form></body></html>"); out.flush(); out.close(); Это уже разместили на говнокод.ру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 19:42 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
skywriter1) маски URL захардкожены: 2) файл с правами разположен в папке с классами (read-only? modify on redeploy?) 3) права заданы в файле, а не в БД; 4) не реализованы другие способы авторизации, как, н-р, LDAP или сторонний сервис; 5) не предусмотрены группы; 6) нет защиты против CSRF-аттак. 7) форма захардкожена в фильтре Где-то на форуме я такой стиль уже видел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 20:16 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
skywriterвадя http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html мне это понравилось простотой А что в этом хорошего (ну кроме как учебного примера изпользования фильтров)? 1) маски URL захардкожены: private class Rule { public static final String USER_ANY = "*"; public static final String URL_ANY = "/*"; 2) файл с правами разположен в папке с классами (read-only? modify on redeploy?): @Override public void init(FilterConfig filterConfig) throws ServletException { BufferedReader res = new BufferedReader(new InputStreamReader(filterConfig.getServletContext().getResourceAsStream("/WEB-INF/classes/users.txt"))); 3) права заданы в файле, а не в БД; 4) не реализованы другие способы авторизации, как, н-р, LDAP или сторонний сервис; 5) не предусмотрены группы; 6) нет защиты против CSRF-аттак. А если всё это изправлять, то чем оно будет лучше изпользования Spring Security? По-моему, данная статья как нельзя лучше подтверждает тезис, который в автор пытается опровергнуть: "Нельзя делать свои велосипеды! Надо использовать проверенные и отлаженные библиотеки!" ты дурак. это предложена идея которую можно развить. выложи свою критику автору и не оффтопь здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:21 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakГде-то на форуме я такой стиль уже видел.. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:24 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
вадяты дурак. он не нарушил правила, а говорил техническим языком. Ты сказал языком кухарки. Т.е. перешёл на личности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:27 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Petro123вадяты дурак. он не нарушил правила, а говорил техническим языком. Ты сказал языком кухарки. Т.е. перешёл на личности. я так понимаю, что обсирать чужой код - это спецкурс при обучении java. и нетерпммость к чужому коду это верх. пусть он и техническим языком, но он обосрал, чужой код, чужое мнение, а это просто не прилично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 12:03 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
вадя! правила форума давно читал? Он так писать как ты может, а ты как он нет (я так подумал). Обсирай его код. Только техническим языком. Удачи! ЗЫ школьников после вуза всё больше...и критики тоже - имей ввиду). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 12:10 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
вадяты дурак. это предложена идея которую можно развить. выложи свою критику автору и не оффтопь здесь skywriterА если всё это изправлять, то чем оно будет лучше изпользования Spring Security? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 13:53 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
вадя...он обосрал, чужой код, чужое мнение, а это просто не прилично Не только прилично, но и необходимо . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 13:56 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
skywriterА что в этом хорошего (ну кроме как учебного примера изпользования фильтров)? 1) маски URL захардкожены: private class Rule { public static final String USER_ANY = "*"; public static final String URL_ANY = "/*"; 2) файл с правами разположен в папке с классами (read-only? modify on redeploy?): @Override public void init(FilterConfig filterConfig) throws ServletException { BufferedReader res = new BufferedReader(new InputStreamReader(filterConfig.getServletContext().getResourceAsStream("/WEB-INF/classes/users.txt"))); 3) права заданы в файле, а не в БД; 4) не реализованы другие способы авторизации, как, н-р, LDAP или сторонний сервис; 5) не предусмотрены группы; 6) нет защиты против CSRF-аттак. А если всё это изправлять, то чем оно будет лучше изпользования Spring Security? По-моему, данная статья как нельзя лучше подтверждает тезис, который в автор пытается опровергнуть: "Нельзя делать свои велосипеды! Надо использовать проверенные и отлаженные библиотеки!" человек привел пример что можно сделать... придираться - это не есть хороший тон. если тебе не нравится "маски URL захардкожены" это не означает, что это не правильно. где расположен файл- тебя не нравится - можешь , расположить там , где понравится... права заданы там , где автор посчитал для себя приемлимым, не нравится - ни кто не заставляет, используй свой вариант 4) а автору это надо было? 5) а автору это надо было? 6) нет и защиты от других атак. всё на уровне "мне не нравится" я не использую Spring Security, но на основании этого решения , сделал и защиту, и права из базы, и прочие вещи. и без Spring Security.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 14:46 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
JulTpavel_nvЕсли не ошибаюсь, то спринговый @Component можно пометить аннотацией @WebFilter и он автоматом засеттится как фильтр Спасибо, но вопрос не об этом. Мне нужно понять разницу между фильтрами и интерцепторами, и при каких условиях использовать тот или иной механизм IMHO тут важнее правило архитектуры - не мешать стили и технологии. - если есть в проекте спринг - делать на нём - нет спринга - делать на фильтрах которые маркируются в web.xml У меня один проект SSO от крупной компании. У них втрой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 15:06 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
вадячеловек привел пример что можно сделать... Нет, он не просто привёл пример, что можно сделать. Он начал с порицания практики отказа от "велосипедостроения" и сказал: автор...покажу решение, которое писать быстрее, проще и легче сопровождать, хотя оно и является классическим "велосипедом" :) Данное решение является классическим "велосипедом", а на этом форуме ссылка на данную статью встречается как минимум 3 раза. А способность фильтровать контент, как показывает практика, не у всех развита, так что весьма вероятно перетекание в производственную практику. Как "велосипед" оно годится, но... " проще и легче сопровождать "? Проще и легче для кого? Для автора велосипеда? Так велосипеды потому (а порой и для_того ) и пишут, что автору бывает их проще написать и/или сопровождать. Н-р, я однажды имел дело с падающим через несколько часов работы приложением, в котором был применён самописный логгер, который начинал тормозить при разрастании файла. Вопрос, будет ли "велосипеды" проще сопровождать команде? Сделает ли это продукт надёжнее? Для ответов на эти вопросы должны быть более веские аргументы, чем "я просто хочу запилить свой велосипед, just because I can". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 15:17 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Petro123JulTпропущено... Спасибо, но вопрос не об этом. Мне нужно понять разницу между фильтрами и интерцепторами, и при каких условиях использовать тот или иной механизм IMHO тут важнее правило архитектуры - не мешать стили и технологии. - если есть в проекте спринг - делать на нём - нет спринга - делать на фильтрах которые маркируются в web.xml У меня один проект SSO от крупной компании. У них втрой вариант. Спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 21:11 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
JulTПравильно ли я понимаю Servlet Filter - работает только с входящими запросами, а Interceptor - как паттерн , может перехватывать в обоих направлениях (идея Interceptor'ов используется шире, не только для HTTP-запросов) имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 07:24 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
Usman Servlet Filter - работает только с входящими запросами, а Interceptor - как паттерн , может перехватывать в обоих направлениях (идея Interceptor'ов используется шире, не только для HTTP-запросов) имхо А по той же ссылке: An example of implementation of this pattern is the javax.servlet.Filter interface, which is part of Java Platform, Enterprise Edition. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 08:25 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
JuITВ MyAuthService находится метод для получения юзера по логину и паролю, но, проблема в том, что я не знаю какой пользователь логинится, соответственно не понятно какой repository использовать: clientRepository.findByLoginAndPassword() или driverRepository.findByLoginAndPassword() или adminRepository.findByLoginAndPassword() Прокомментируйте пожалуйста. Спасибо Если это разные типы клиентов, то я бы попытался перед аутентификацией определить тип клиента: 1) по параметру запроса (если клиент шлёт специфический параметр запроса или если можно заставить его это делать); 2) по URL (н-р, /login1, /login2); 3) по IP-адресу или доменному имени клиента (если разные типы клиентов шлют запросы с разных доменов или с разных IP-адресов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 08:51 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
ТС, я тебя понимаю )) тоже по дурости один проект запилил с авторизацией на интерцепторах. это был такущий геморрой, с неясными и неочевидными глюками, бесконечная борьба с ними и ужасная конфигурация всей этой конструкции (хотя тут конечно же моя вина - сам дурак костылей понаделал). сразу скажу - забей на этот велосипед и пользуйся человеческими уже придуманными вещами навроде спринг сесурити. сэкономишь кучу нервов и времени. поверь, его освоить проще чем городить забор из интерцепторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 09:56 |
|
||
|
Autowire в Servlet filter
|
|||
|---|---|---|---|
|
#18+
по теме, я не совсем понял вопроса, но если хочешь автовайридь и речь о спринге то помечай интерцептор аннотацией компонент, оформляй его бином, а потом уже инжекти туда что хочешь. у меня было как то так: это конфиг: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. это интерцептор: Код: java 1. 2. 3. 4. 5. дальше уже там прехандлы-постхандлы потрошишь. по айпи авторизацию делать это тухлый номер сразу говорю. если из-под ната сидят у тебя будет 10 человек с 1 айпи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 10:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39194018&tid=2124263]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 435ms |

| 0 / 0 |
