Софтуерно Инженерство
Loading...
+ Нов въпрос
and1teachera avatar and1teachera 19 Точки

Problem 5. SecurityFilter

Здравейте, колеги. Въпроса ми е свързан с последната задача от домашното към темата Containers, Filters and Sessions и по-скоро с условието на задачата.

The filter should take username and password from the request
      If they exists and are correct (compare them to some username and password in the code) – add the user to the session and redirect to the HomePage 

Някой може ли да ми обясни какво значи username and password да са correct? За мен това значи да се сравняват с регулярен израз ,но тук явно случая е друг?

Тагове:
0
Java Web Development
dim4o avatar dim4o 289 Точки

И аз се чудех на това и накрая реших, че трябва да си имаш хардкоднати някакви username и password и да правиш валидация спрямо тях. Може да пазеш няколко двойки в HashMap например. Все едно ги вземаш от базата, но понеже още не работим с db трябва да го имитираме. Така го разбрах аз поне.

3
RoYaL avatar RoYaL SoftUni Team Trainer 6845 Точки

Ако съдим по пояснението в скобите (compare them to some username and password in the code) то се има предвид точно това :)

1
TodorovH avatar TodorovH 216 Точки

Тук вторият филтър припокрива работата на първия, при положение, че името и паролата съвпаднат с хардкорднатите, се изисква да впишем името в сесията, тогава първото условие на вторият филтър ще е изпълнено, но пък ако няма името и паролата, тогава ще е изпълнено второто условие на втория филтър или втората проверка, и няма смисъл да редиректваме към Логин формата, след като сме вече на нея и тя не ни е пуснала към основната страница! Задачата е малко объркваща, но може и да е от мен! :)

0
03/02/2016 23:16:13
naskoni avatar naskoni 68 Точки

И аз мисля, че задачката е малко пообъркана - може би нарочно. :)

По-логично е: ако има username в сесията -> chain.dofilter();

ако няма -> проверяваме за credentials в request-а и опитваме логване;

т.е. наобратно - водещото е дали вече е authenticated, a не дали ни изпраща нови username & password.

 

0
TodorovH avatar TodorovH 216 Точки

Въобще когато нещо е извадено от контекста е трудно да се разбере веднага, затова и сега имаме малко извадена от контекста логика, която ако е част от по-обширна такава би била по-лесна за следване! :)

0
b.yordanov avatar b.yordanov 146 Точки

String username = "admin";

String password = "admin";

И аз си мислех за хешмап но в крайна сметка хардкоднах стрингове, изхождайки от това, че в базата данни търсим точно за определен юзърнейм и винаги имаме 1 резултат (освен ако не ни е кофти валидацията или настройките на дб-то)

0
TodorovH avatar TodorovH 216 Точки

Да и аз съм със същите хардкорднати стойности! Но нещо ми се бъгна Еклипса и до последно не искаше да ми редиректва, и се оказа, че е от екшъна на формата!

0
b.yordanov avatar b.yordanov 146 Точки

Как таака от екшъна на формата? Може ли да поясниш малко?

0