[Java Web Development] Домашно за Topic 7 - Spring Security
Нещо не мога да разбера как трябва да се организира UI-я в домашното за лекция 7.
Пише, че трябва да се създаде нова Bank Rigister страница, в която има таблица с 4 колони и 2 бутона New Account & Operation.
Въпроса ми е:
Input полетата които трябва да се изведат от New Account & Operation бутоните в същото jsp ли трябва се изведат и различните колони като Initial Amount и Operation – deposit/withdraw да ги скриваме или показваме в зависимост от правата и всичко това да бъде в същото jsp или да създадем 2 допълнителни jsp-ta едното за нов акаунт и другото за извършване на операции и като се извършат операциите да се връща пак към главната Bank Register страница.
Ще съм благодарен ако някой даде повече информация
Благодаря за отговора Деян,
В случая не трябва ли да има в New Account екрана и username - това липсва в описанието на задачата. В реда на нещата е като се създава нов акаунт да се задава и username на потребителя? Никъде другаде не се въвежда този код, а ще трябва да го визуализираме в началната страница.
от домашното:
“New Account” button for creation of new accounts leading to page with the following:
Form for input:
Account Number
Initial Amount
Account Currency
Здравей,
като се комбинира със security частта потребителя ще се взема от SecurityContextHolder-a както показах в края на лекцията - т.е. username съответства на логнатия потребител.
Да това го знам за вземането на потребителя от SecurityContextHolder, но все отнякъде трябва да се въвете полето username i.e. ivan, pesho и тн. Идеята ми беше, че никъде в условието не видях да се въвежда username в New Account или в Operation екрана. Това поле го има само в
Table with columns:
Username
Account Number
Current Amount
Account Currency
А това доколкото разбирам, е readonly поле, което за да се визуализира трябва да се попълни от някъде.
Прав ли съм или изпускам нещо?
Здравей,
полето е read-only (всъщност цялата таблица). Това поле не се въвежда от потребителя, а при създаване на акаунт се извлича от логнията потребител. При deposit/withdraw също се взема от логнатия потребител.
Това което искам да питам всъщност е как мога да визуализарам username, което не се вкарва никъде? Какво username да визуализирам - session id или нещо друго?
Как да извлеча информация за логнатия потребител като при регистрацията му не вкарвам username?
Деян моля отвори pdf-a за домашно 7, защото има разлики с този на домашно 6 и си мисля, че е изпуснато нещо в домашно 7. В лекция 6 има поле за име, а тук го няма, това ли имаш предвид?
Здравей,
полето не е изпуснато, а е ненужно. В топик 6 нямахме понятие за логнат потребител и го въвеждахме ръчно. След топик 7 вече имаме логнат потребител и следва данните за него да се вземат по правилния начин (Principal от SecurityContextHolder).
Що се отнася до създаването на акаунт - следва да бъде след като потребителя се е аутентикирал и аутентизирал т.е. разполагаш с потребителя (username). Съответно регистровата страница няма да има данни при първо влизане - ще има след създаване на акаунт.
Ако пък искаш предварително да си създадеш map с account-и - въведи възможни потребители на системата и по този начин ще имаш таблица с първоначални данни.
Благодаря, сега вече е ясно!
Здравей,
И аз имам неясноти по условието.
“New Account” button can be seen and used only by users with ROLE_BANK_EMPLOYEE" - Тоест ROLE_USER не може да създава акаунти, а само да вижда вече готов, създаден от някой BANK_EMPOLEE.
"Users with ROLE_USER sees only their own accounts (accounts should be linked to users)" - този линк(между юзър и акаунт) не става ясно как се очаква да се направи.
Тук във форума пише: "Това поле не се въвежда от потребителя, а при създаване на акаунт се извлича от логнията потребител" - за username полето в таблицата. - Тоест аз виждам два варианта:
1. Таблицата показва не username на притежателя на акаунта, а username на този който го е създал. - Ако е така обаче, за стане линка между акаунт и username при добавянето на акаунта трябва да се добави и възможност за създаване на нов потребител (т.е. да се въведе и username + password с които въпросния акаунт да се достъпи)
2. Текущо логнатия юзър вижда всички акаунти, но може да прави акаунти само за себе си. - Тоест линкваме създавания акаунт към текущо логнатия юзър. - Ако е така обаче, как тогава се прави акаунт на user с "ROLE_USER" права?
Здравей,
благодаря за коментара - наистина има разминаване в изискванията. Ще коригирам леко условието на задачата:
1) Account да съдържа username за собственика и created by (username на този, който го е създал).
2) Полето username да се добави в екрана за създаване на account - ще се въвежда username, на когото принадлежи акаунта, а този който го е създал ще се извлича от сесията на потребителя.
3) Потребител с ROLE_USER може единствено да внася и тегли пари, но не и да създава нов акаунт, а в регистровата страница вижда само своите акаунти.
4) Потребителите на системата не се създават през интерфейса (за тази задача), а на практика само се използват за връзка между потребителя и неговите банкови акаунти.
Условието е коригирано и във файла за домашното.
Благодаря за бързият отговор и адекватната корекция на условието.
Благодаря и на Денка - :) и аз доста се бях умислил.....?