Code Monkey home page Code Monkey logo

softuni-spring-may-2024's People

Contributors

luchob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

roskonenov

softuni-spring-may-2024's Issues

Въпрос относно избора на entity за RestController

Линк към github проекта ми: https://github.com/SavinaDzhenimova/HomeDeliveryApp

Здравей! Относно RestController-а реших да изнеса entity-то Restaurant в отделен проект и за него да взимам информацията, но искам да попитам дали е удачен избор понеже ресторантите в проекта ми са 3, които се записват в базата чрез RestaurantsInit класа. Създала съм repository, service и controller за това entity, но контролерът няма PostMapping и DeleteMapping, а само GetMapping. В изискванията за проекта не е споменато, че RestController-а трябва да съдържа и трите endpoint-а, но все пак не съм сигурна дали е подходящ избор. Другият вариант, за който съм си мислила, е да използвам Comment entity-то за RestController-а, но то има поле User addedBy и не съм сигурна как точно да подходя при изнасянето му в отделен проект. Има ли вариант, при който да изнеса само полетата, които не зависят от друго entity и в реалния проект да разширя Comment entity-то като му добавя User addedBy или не е това идеята? Бих искала да помоля за съвет как да постъпя. Благодаря предварително!

Проблем с ъплоуд на картинка

Връзка към проекта:
https://github.com/IvanRusenov/Online-Shop

Кратко описание:

  1. Опитвам се да ъплоудна картинка

  2. Файлът се ъплоудва там, където искам, данните се запазват в базата, но картинката не се показва. Показва се след рестарт на приложението (не винаги, понякога се показва веднага).

Стъпки за репродуциране:

  • регистрация
  • логин
  • add

и виждаме поблема, информацията е там, но картинката я няма. След рестарт на приложението картинката се рендерира успешно.

Проблем с вложени JSON полета, които не се попълват правилно в DTO

responseOmegron.json
OmegronIssue

URL за postman:
https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Drenov/2024-07-08/2024-07-22?unitGroup=metric&elements=datetime%2Cname%2Caddress%2Clatitude%2Clongitude%2Ctempmax%2Ctempmin%2Ctemp%2Csunrise%2Csunset%2Cconditions%2Cdescription%2Cicon%2Csource&include=fcst%2Cobs%2Cremote%2Cdays&key=NGSRXC2QYU6X2Q6BJ7R2WBMA8&contentType=json

https://github.com/hoollender/Omegron-Project/tree/master

  1. Здравейте, очаквам след като използвам fetchWeatherData(), полученият JSON да се запише в WeatherResponseDTO. Притеснява ме това, че когато има nested елементи, не мога да ги запиша правилно. В json-а имам основна информация като адрес, координати, времева зона, описание (и други), но най-важното в случая е, че има и лист с дни. Идеята е с една заявка да получа за всеки ден каква ще бъде мин./макс. температура, кога е изгрев/залез и други. Първоначално даже исках да има и още едно ниво навътре - за всеки ден да има информация по часове, какви ще бъдат температурите.

  2. Какво всъщност се случва - При извикване на метода fetchWeatherData(), основната информация, която не е nested, се мапва правилно в WeatherResponseDTO, а листът с дните показва, че има 15 дни (колкото искам със заявката), за които обаче липсва информация. Пълни са с нули или null стойности.

  3. (Желателно) Какво опитахте - Първо се съмнявах, че имам проблем със самата заявка и начина, по който я викам с RestClient, но JSON-а, който получавам е правилен. Тествах го като записах response-а в String.class, който после изпринтирах и ми показа абсолютно всичко, което искам. За съжаление нямам кода, защото беше борба 3 дена и беше голямо триене и мазане, докато не развях белия байряк :) Първият request беше със страшно много информация и реших да го намаля до максимално малко, за да проследявам по-лесно какво се случва. Опитах да използвам jackson, проверих всички полета на DTO-тата и имената в json, опитах с RestTemplate да поискам заявката, но винаги всичко работеше, без да ми попълва информацията за всеки един от дните.

Стъпки за репродуциране:
При празна база, слагам debug на 62ри ред в WeatherServiceImpl (Weather weather = new Weather();)
Така мога да видя веднага какво има в WeatherResponseDTO, защото следващите стъпки са ръчното мапване от ДТО-то към ентити-то.

П.С
От снимката, 3-те удивителни знаци за bindingResult, weatherResponseDTO.currentConditions и jsonResponse нямам идея защо се появяват. В старите заявки имах currentConditions, но не същестува никъде вече. Постарах се всичко да е максимално изчистено.

Много Ви благодаря, предварително!

How to convert our Spring project [.jar] to .war file and deploy it on Apache Tomcat 9

Как да деплойнем .jar проекта като .war file и да го стартираме на Apache Tomcat? Is the server port in application.yaml corresponding to Apache Tomcat server port? Трябват ли някакви допълнителни настройки.

Когато си тествах .jarът с java -jar project.jar командата си бачка без проблеми но неможах да го стартирам на Apache Tomcat...

Мерси.

Какви Unit Test-ове могат да се направят за Helper Service? Допълнителен въпрос свързан с GitHub.

Връзка към проекта:
https://github.com/ChrisHartarski/MagnaTechnica-WebShop-SoftUniProject

Кратко описание:

Възможно най-накратко опишете:

  1. Unit Test-ове
    Не знам какви тестове мога да направя за UserHelperService класа. Всички методи са обвързани с класове, които идват от Spring, което прави ситуацията доста оплетена за Unit тестове.
    UserHelperService-a се намира в service/helper/
    UserHelperService-а се използва предимно, за да извличам повече информация за логнатия user и да я подавам към други service-и и thymeleaf.
    Може ли идеи какви тестове могат да се направят и как да се направи Mock-не principal-а, защото той присъства навсякъде?

  2. GitHub
    Предстои ми да направя допълнителен service, който да е на отделен сървър и да си комуникират с REST. Този допълнителен проект знам как да го направя в ново репозитори в GitHub. Има ли начин да направя parent folder в сегашното ми GitHub repository, който folder да съдържа и двата проекта.
    Ако може, как точно трябва да се изпълни това, без да губя commit-ите към момента.

Стъпки за репродуциране:

Опишете възможно най-лесните стъпки, с помощта на които бързо може да се репродуцира проблемът.

Проблем с UserDetails

*Връзка към проекта:

https://github.com/NikolaySHA/ExclusiveService

Кратко описание:

Здравей, тотално се омазах при рефакторирането на ExclusiveUserDetails и сървиза за него. Сега когато съм логнат все още мога да достъпя адреса на логин формата, както и юзър, който не е АДМИН, може да достъпи до адреса на admin-panel. В предишни комити си работеше добре, но имах един UserDetailsHelperService, който беше в повече мисля. Моля за съдействие. Благодаря!

Pageable

Връзка към проекта:
връзка

Кратко описание:

Здравейте , имам въпрос относно как точно мога да направя pageable . В about-us страницата дърпам от рест , който аз съм направил , 3 евента . Това което искам да направя , е да дръпна всички евенти и да направя Pageable , за да може всеки да вижда всички от тях , като искам да се показват на всяка страница по 3 евента.
Така изглежда метода , който взима всички евенти от реста.
Screenshot (82)

Така изглежда и самия респонсе , който връща реста :
Screenshot (83)

Трябва ли да направя самия рест да връша Pageable или мога някак си когато дърпам бодито на респонса да направя нещо друго ? В интернет видях като идея да сменя самия респонс в реста , но след това не знам как точно трябва да обработя данните които дръпна от там. Бихте ли ми казали кой би бил най-лесният начин в този случай да направя Pageable на евентите в about-us страницата ?
Благодаря предварително за помощта !

Rest заявка, която проверка дали даден обект съществува в Rest Server-а>

Попълнете отделните секции отдолу и изтрийте упътванията.

Връзка към проекта: Human Resource Managements - Rest Client -https://github.com/mr-pachev/human-resource-managements.git
HRM-Users - Rest Server - https://github.com/mr-pachev/hrm-users.git

Кратко описание -> Верификация на данните при регистрация на нов потребител. Не знам как да направя заявка към Rest Server-а и съответно как да проверя отговора в Rest Client-a, дали изпратеният обект е записан или вече съществува такъв.

Операция -> създаване на нов потребител.

Стъпки -> минала проверка на за валидация на полетата от формата,
направена проверка дали въведените пароли в полетата password и confirm password са едентични,
булев отговор от сървиса дали потребителя е създаден (направена проверка дали вече съществува потребител)

Опишете възможно най-лесните стъпки, с помощта на които бързо може да се репродуцира проблемът.

  • изпращам заявка към Rest servera за създаване на новия клиент:
    може би нещо такова
    usersRestClient
    .post()
    .uri("http://localhost:8081/users")
    .body(addUserDTO)
    .retrieve();
  • проверка на отговор от Rest server-а дали има такъв потребител вече и респективно дали се е създал такъв
  • връщане на булев резултат в контролера на Rest Client-а, за да изпише на страницата или не, съобщение, че потребителя съществува вече

Благодаря предварително ако все пак имаш възможност да поразгледаш какви съм ги сътворил.

Проблем при нанасяне на данни в DB.

Попълнете отделните секции отдолу и изтрийте упътванията.

Връзка към проекта:
https://github.com/YoanMarinov17/Rent-Vehicle-Final-Project

Кратко описание:
Здравей Лъчо ! Темата на проекта е приложение за отдаване под наем на превозни средства като даден user може да отдава под наем кола/ван/камион, а в същото време друг юзър може да ги взима под наем.
Понеже имам основен клас Vehicle и подкласове Car, Van,Truck, които го наследяват, искам да добавям Vehicle заедно с подкласовете в базата данни, но когато тръгна да добавям дадено превозно средство и нищо не се случва. (Целта е да вкарам превозното средство и неговия подтип (например кола) на user-a, който иска да отдаде превозно средство под наем в DB.) Моля за помощ !

Възможно най-накратко опишете:

  1. Какво очаквате да се случи
  2. Какво всъщност се случва
  3. (Желателно) Какво опитахте

Стъпки за репродуциране:

Опишете възможно най-лесните стъпки, с помощта на които бързо може да се репродуцира проблемът.

Прикачване на файл/снимка

Здравей, Лъчо, имам няколко проблема с проекта:

  1. Опитвам се да направя така, че в RecipeControllera да мога да прикачвам снимка при добавянето на рецепта, но дори да избера файл ми дава грешка, че не съм избрала. Изписва ми проблем, че не може да конвертира Multipart file to String, каквото реално ми е полето за image. Следвам инструкциите, които Банкин ни беше показал в предния курс, но не сработва.
  2. Интересува ме също така ако искам да си напълня базата с рецепти в data.sql файла как трябва да вкарам картинките? Пробвах с LOAD_FILE('/images/example.png), но не сработва
  3. На nav bar-a имам линкове към логин и реджистър. Ако натисна register ме препраща към register формата, след това ако натисна логин ме препраща на логин формата и като отново опитам да достъпя register не ме препраща, а си оставам на login. Каква е причината?

https://github.com/BogoevaPetya/DeliciousRecipes

Поздрави,
Петя

Failed to load ApplicationContext Integrational Test

Попълнете отделните секции отдолу и изтрийте упътванията.

Връзка към проекта:

baldzhiyski/Crossfit-Web-App@5b07e73

Също теста за rest api файлва със същата грешка : baldzhiyski/Crossfit-Web-App@36ac00b

Кратко описание:

Здравейте , изгледах лекцията от септември 2023 за тестовете и направих същия integration test 1:1 с малки промени в yaml файла за exchange rates , но не може да loadne АpplicationContexta . Ако може да ми кажете къде греша ? Изписва също , че като иска да направи GET заявна към API няма такова url . Но нали трябва да пишем тестови url и а не истинския , защо тогава изписва това съобщение ( по точно : I/O error on GET request for "https://dummy/second": null ) . Благодаря за помощта предварително !

Как да приложа Spring Security в Rest Client-а, когато базата данни с users е в Rest Server-a?

Попълнете отделните секции отдолу и изтрийте упътванията.

Връзка към проекта:
Rest Client -> https://github.com/mr-pachev/human-resource-managements.git
Rest Server -> https://github.com/mr-pachev/hrm-users.git

Кратко описание:

Възможно най-накратко опишете:

  1. Какво очаквате да се случи - проверка от Spring Security (проверява в базата дали съществува такъв потребител).
  2. Какво всъщност се случва - нищо :-D
  3. (Желателно) Какво опитахте - когато данните за users са записани в Rest Clienta всичко работи, както трябва, но не знам как да използвам Spring Security, когато данните са в Rest Server-a.

Стъпки за репродуциране:

Нямам идея.

Дано да не досаждам прекалено. Боря се да изпълня изискването за ползването на Rest във финалният проект и последно реших users да се пазят в Rest Server-a.

Благодаря предварително.

MobileleUserDetails продължение

Привет отново,

мисля, че не ми разбра предния въпрос.
Ясно ми е защо използваме MobileleUSerDetailsService, въпроса ми е относно класа MobileleUserDetails, който екстендва User.
Не може ли да си ползваме UserEntity-то, кое налага създаването на този клас MobileleUserDetails?

Бъг относно IT за REST API

Връзка към проекта:

връзка

Кратко описание:

Здравейте, след като изгледах лекцията за тестовете , реших да направя няколко , но изникна проблем. Когато се опитна в самия тест да персистна дадено ентити ми излиза следната грешка :

Screenshot (68)

Това се случва като използвам следния yaml в ressources в папката test :
Screenshot (66)

В интернет намерих нещо , с което успяха да проработят нещата , но нямам идея защо и как при вас няма нужда от такова нещо. За да проработи това персистване промених yaml по следния начин :
Screenshot (65)

Може ли да обясните защо проблема с персистването на ентити се получава без тези допълнителни неща в yaml файла ? Този проблем се случи и в другия проект . Оставил съм урл към комита . Там съм сложил новия yaml file .

Проблем номер 2 :
Също още един проблем при ИТ тестовете , опитвам се да дествам например пост заявка , за която трябва някой да бъде логнат и да има роля USER , например в WorkoutControllerTestIT се опитвам да нарпавя тест за писането на коментар. Бихте ли погледнали двете ми идеи за имплементация на теста ? И двете обаче редиректват към /access-denied страницата вместо към определената от мен. Оставям линк към този комит тук : baldzhiyski/Crossfit-Web-App@b83d722

Проблем със Spring Config

Връзка към проекта:

https://github.com/baldzhiyski/Crossfit-Web-App

Кратко описание:

Здравейте , създадох custom страница за Access Denied. Идеята ми е когато някой опита да достъпи по урл страница , за която няма права , да бъде пренасочен към тази страница. Проблема е че винаги ме пренасочва към /login страницата. Създадох custom AccessDeniedHandler и го запизах като биин , но нищо не се получава. Четох в доста сайтове , но не знам защо не става. Ако може да ми дадете някакви насоки защо не проработва ще бъда много благодарен. В последния ми комит са нещата , които съм направил за да постигна това. Главно промените са в SprinSecurityConfig класа .

Също друг малък проблем , който не мога да разреша е , че когато маркирам remember me в лог ин страницата , винаги ме препраща към нея със съобщението invalid username or pass макар че успешно логва usera . На какво би се дължало това ?

Стъпки за репродуциране:

Опишете възможно най-лесните стъпки, с помощта на които бързо може да се репродуцира проблемът.

Проблем с файла за интернациолизацията.

Здравейте,

Имам проблем с интернациолизацията на проекта ми, всичко работи, настроила съм всичко да е с UTF8, но най-отодолу, в Intellij ми показва че UTF8 e (disabled for properties), но реално си разпознава българските символи в messages_bg.properties
и си работи, когато сменям езика, но когато push-на промените, файла ми се кодира и в github изглежда така:
"offer.emergencyCare=\u0421\u043F\u0435\u0448\u043D\u0430 \u043C\u0435\u0434\u0438\u0446\u0438\u043D\u0441\u043A\u0430 \u043F\u043E\u043C\u043E\u0449"
След това се променя и в проекта ми, като продължава да си работи, но излиза по този начин, а ако ръчно променя файла в гитхъб няма проблем и си изглежда нормално с български символи. Също ако не го push-на пак си седи с българските символи, тоест променя се след push и изглежда по този начин и локално и в github.

The bean 'localeResolver', defined in class path resource

https://github.com/NikolayGeorgievv/BudgedTrackerProject

Здрасти Лъчо.
Бях се опитвал да правя интернационализация преди време, като следвах стъпките от Baeldung: https://www.baeldung.com/spring-boot-internationalization

Първо го тествах, като си направих един нов проект и всичко си тръгна нормално, както е в гида. После, реших да го направя същото нещо и в моят проект, но получих следният ерор:

"The bean 'localeResolver', defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [com/burdettracker/budgedtrackerproject/config/I18NConfig.class] and overriding is disabled."

Пробвах различни неща от нета, не сработи и реших да го оставя и да видя как ще го направиш ти.
Сега като следвах твоите стъпки, получавам същият проблем. Ако преименувам бийна получавам друг ерор:

"Request processing failed: java.lang.UnsupportedOperationException: Cannot change HTTP Accept-Language header - use a different locale resolution strategy"

Четох някъде, че може би се получава от различни версии на депенданситата, но не съм сигурен как да проверя или дебъгна такова нещо. Позволяването на пренаписването на бийнове, както е предложено в ерор съобщението до колкото разбрах е лоша практика и предпочитам да не го правя.

За да придобиеш по-добра представа, разкоментирай "@configuration" анотацията в I18NConfig и LocaleChangeInterceptor-a в WebConfig класа и стартирай приложението.
Моля те, дай акъл. Благодаря,
Поздрави,
Николай.

Проблем с multiply selector и показване на дата

Връзка към проекта:

https://github.com/4ukNoris/Spring-Project/tree/master

Кратко описание:

Здравей, Лъчо
Имам следния проблем: Не знам как да взема избрана дата от program страницата и да се покаже на същата страница на полето което и е отредено да се показва.
Другия проблем е: бях те питал в sli.do за multiply селектор дали може да се направи по елегантно от това което съм направил аз в темплийта add-movie!

Възможно най-накратко опишете:

  1. Какво очаквате да се случи
  2. Очаквам датата да се показва в полето
  3. Какво всъщност се случва
  4. Нищо не се случва
  5. (Желателно) Какво опитахте
  6. Не съм опитвал нищо.

Стъпки за репродуциране:

За сега това което ми идва на ум е да взимам дата с post и да я връщам с get но това е най - крайния вариант който според мен ще е много грозен и не ми се иска да го правя.

Използване на Java Script + Rest API ( Желание )

Здравейте , ако в някоя от лекциите остане време бихте ли показали още някой пример с java script и фечване с js , както направихме със смяната на стойностите спрямо избраната валута ? Аз разбрах начина , по който се прави , но би било полезно да видя още някой пример. Благодаря предварително !

IT изтрива базата данни?

Връзка към проекта: - https://github.com/mr-pachev/hrm-users.git

Кратко описание:
Здравей, Лъчо.

Днес се опитах да приложа показаните от теб integration testing за тест на Rest Controller в моят проект. Мисля че стана, НО с един нежелан ефект -> след страртиране на ItelliJ в тест режим и приключването й, базата данни се занулява.
Насочих вниманието си към: @AfterEach
public void tearDown() {
employeeRepository.deleteAll();
}
но без нея се получава дублиране на резултатите и теста не минава.

След съвет от ChatGPT-то направих следното:

  • премахнах @AfterEach
    public void tearDown() {
    employeeRepository.deleteAll();
    }
  • добавих към @SpringBootTest
    @AutoConfigureMockMvc
    и
    @transactional на самият клас.

Не знам дали е удачно, но тестовете митават без да изтриват базата.
Ако може да погледнеш и да дадеш становище по въпроса, защо отново при мен не се получава :-D

Отново благодаря предварително.

JS timer issue and weird browser behaviour

Връзка към проекта:

https://github.com/ttheconjuring/TestingEz

Имам страничка, която представлява въпрос с отговори за избиране. Всеки въпрос има време за реакция от страна на потребителя. Ако не отговори сам, отговорът му се записва автоматично и се преминава към следвашия въпрос. При презареждане на страницата, таймерът се рестартира, а това не трябва да се случва. Също така има и логика за превенция срещу връщане към вече отговорен въпрос, но винаги след 3-4 опита за връщане назад, логиката започва да се игнорира и сякаш браузърът започва да действа на своя глава и ме връща не страничката, от която мога да стартирам теста и да отговарям на въпросите.

  1. Какво очаквам да се случи
  • Очаквам да не мога да се върна назад или където и да било, докато не отговоря и на последния въпрос от теста.
  • Очаквам таймера да не се рестартира, всеки път като страницата се презареди или ме redirect-не към нея.
  1. Какво всъщност се случва
  • При повече от 3-4 опита за достъпване на вече отговорен въпрос, контролерите, които контролират процеса, започват да се игнорират. (при първите два опита, успешно се проверява дали потребител вече е отговорил на въпрос, към които се опитва да отиде, а после се игнорира и ме връща на страница, различна от тази за въпросите)

Описвам възможно най-лесните стъпки, с помощта на които бързо може да се репродуцира проблемът:

  1. Регистрация
  2. Логване
  3. Създаване на тест
  4. Присъединяване към тест
  5. Отговаряне на първи въпрос
  6. Опит за връщане към първи въпрос 3-4 пъти

Въпрос относно Post Request към Rest Api

Опишете грешката

Здравейте , за моя проект съм направил рест , в който се запазват различни crossfit - events и всеки user на сайта може да прави пост заявка , за да добавя event. Проблема обаче е , че ако искам да пазя евентите с id UUID при пост заявката получавам грешка , която не мога да разбера защо става : Incorrect string value: '\xCC\xF8B\x9F\xD2\xC3...' for column 'id' . Заявката стига до реста , но при персиста на самото ентити в базата излиза тази грешка. Пробвах да сетвам и рандом ууид на ентито , което ще подавам към реста , но нищо не стана. Успях все пак да фиксна нещата , като направих идто да е Long , но може ли да обясните защо това се получава с UUID ? Четох и в stackoverflow , но там предложенията също не оправиха проблема. Благодаря предварително за отговора !

Проблем с валидиране на парола

https://github.com/SavinaDzhenimova/HomeDeliveryApp

Здравейте! Опитвам да валидирам паролата, която се въвежда при регистрацията на потребител като условията са тя да съдържа поне една главна буква, поне една малка буква, поне една цифра и да е най-малко 8 символа. Опитах с @pattern(regexp = "^(?=.[0-9])(?=.[a-z])(?=.[A-Z])(?=\S+$).{8,}$") анотация над полетата за парола, но при използването и въвежданата от мен парола Savina2001 хвърля следната грешка:
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='must match "^(?=.
[0-9])(?=.[a-z])(?=.[A-Z])(?=\S+$).{8,}$"', propertyPath=password, rootBeanClass=class com.homedelivery.model.entity.User, messageTemplate='{jakarta.validation.constraints.Pattern.message}'}
]] with root cause

jakarta.validation.ConstraintViolationException: Validation failed for classes [com.homedelivery.model.entity.User] during persist time for groups [jakarta.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='must match "^(?=.[0-9])(?=.[a-z])(?=.*[A-Z])(?=\S+$).{8,}$"', propertyPath=password, rootBeanClass=class com.homedelivery.model.entity.User, messageTemplate='{jakarta.validation.constraints.Pattern.message}'}
]
При въвеждане на regex-а за паролата в Regex101 паролата Savina2001 отговаря на изискванията. Опитах и да създам собствена анотация @validpassword и PasswordConstraintValidator, но приложението гърми със същата грешка. При пускане на debug, когато стигне до ред 51 в UserServiceImpl: user.setPassword(this.passwordEncoder.encode(userRegisterDTO.getPassword())); приложението зависва и не продължава debug режима. Не мога да разбера къде е проблемът.

LoggedUser

Привет Лъчо,

след въвеждането на Spring Security функцията на LoggedUser отпада, но как да го заместим, от къде да вземем логнатия в момента потребител.
Например ако в Mobilele при добавянето на оферта искам да задам и кой потребител я е добавил как да го взема?

Поздрави,
Петя

Не ми логва User-a след имплементиране на Spring Security

Попълнете отделните секции отдолу и изтрийте упътванията.

Връзка към проекта:

https://github.com/tony9701/propertiesApp

Кратко описание:

  1. Какво очаквате да се случи

Очаквам да мога да се логна с вече регистриран юзър

  1. Какво всъщност се случва

Не се логва

  1. (Желателно) Какво опитахте

Дебъгвах и до колкото видях винаги имам ауторити anonymous тоест предполагам проблема
ми е нещо със ролите

Стъпки за репродуциране:

пробвах да проследя целия процес, но всичко изглежда наред..
прегледах и вашия код не виждам някаква разлика съществена.

Gradle проблем

Capture

Здравей, Лъчо,

всеки път когато създам проект с gradle ми излиза грешката от снимката.
С pom нямам този проблем.
Пробвах всякакви начина, за да го оправя, но не работят, дори от настройките опитвах.
Имаш ли идея какво да оправя.
Снимката специално е скрийншот от мобилето, което си свалих от твоето репо и при мен не работи.
Създавам си и нови проекти от spring intialzr, но пак като го отворя ми дава същата грешка. Версията на gragle ми е най-новата 8.8

Validation Via Custom Annotation

Връзка към проекта: https://github.com/ttheconjuring/TestingEz

Кратко описание:
Направих си custom annotation "NotTaken", която просто проверява дали даден username, email или phone вече съществува в базата. Поставям я на полета "username", "email", "phone" в DTO-то за регистрация на потребител.

Възможно най-накратко опишете:

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

Въпроси:
Трябва ли да има анотация или не?
Така ли се имплементира custom анотация?
Защо в клас NotTakenValidator.java @AllArgsConstructor не ми маха конструктора, а във всеки друг клас го прави?

Благодаря предварително!

Въпрос отностно Docker

Кратко описание:

Възможно най-накратко опишете:

Здравейтте , в момента гледам и лекциите от миналото издание на курса и в лекцията за Event Handling от ноември 2023 използваме MailHog за да тестваме изпращането на confirm-имейлите. Аз успях да го направя , всеки път стартирам mailhog.exe и всичко става , но може ли да обясните какво точно е Docker , тъй като видях , че вие го използвате ? Не мога много да разбера как точно се работи с него и как трябва да го използваме. Също за примера с redis отново се използва Docker , възможно ли е това да бъде направено без него ? Благодаря предварително за отговора и съжалявам , ако не съм задал достатъчно добре въпроса , но нямам никакви познания за Docker.

failureForwardUrl VS failureUrl(Spring Security)

Здравейте, може ли кратко обяснение за разликата между failureForwardUrl и failureUrl(Spring Security), понеже се опитвах да
покажа съобщение, когато потребителят се логне, но въведе грешно потребителско име или парола. Аз бях използвала failureForwardUrl и нищо не се показваше, след доста мъчене да разбера от къде идва грешката, разбрах че трябва да е failureUrl и така се получи, но не разбрах каква е разликата между двете и защо с failureForwardUrl не можеш да покажеш грешката. Благодаря предварително!

Достъп до НЕ разрешена страница

Привет!

Имам следните проблеми:

  1. Имам достъп до offers/add като НЕлогнат потребител. Не съм разрешавала страницата в SecurityConfiguration файла.
  2. След като добавих Spring Security нямам достъп до детайлите на офертата. Излиза следната грешка: Offer.getSeller()" is null.
    Може ли да удариш едно рамо как да го фиксна, че сама не успях :)
    Ето линк към репозиторито: https://github.com/MileneAngelova/MobiLeLe

THANK YOU!

Как може да се достъпи информация за логнатия user от navbar-a?

Връзка към проекта:
https://github.com/ChrisHartarski/MagnaTechnica-WebShop-SoftUniProject

Кратко описание:

  1. Какво очаквате да се случи
    В navbar имам 3 места, на които имам нужда от информация за логнатия user.
    = Когато user се логне в навбара се появява Welcome, {user full name}
    = В dropdown менюто като се кликне на "Welcome..." има Update profile където имам нужда от id (желания линк е /users/edit/{id})
    = Когато логнатия user е с USER роля се появява иконка с количка в която в кръгче има броя на артикулите в количката (за по-кратко cartSize). Тази информация я имам в UserEntity и в CurrentUserDetails(implementing UserDetails).

Целта е в template-а на navbar-а да мога да достъпя тази информация. Тъй като нямам GetMapping за navbar няма как да създам модел в който да подам информация за @AuthenticationPrincipal.

  1. Какво всъщност се случва

  2. (Желателно) Какво опитахте
    Пробвах да достъпя чрез principal, но ми връща грешка, че principal.username е null.

Стъпки за репродуциране:
Admin user credentials:
email: admin@mail
pass: asdasd

User user credentials:
email: user01@mail
pass: asdasd

За генериране на продукти в Spare Parts:
login с ADMIN user -> Admin Panel -> Initialize Mock DB button

За добавяне на продукти в количката:
login С USER user -> Spare Parts -> добавяте количество на част и Add to Cart бутон.

Благодаря!

MobileleUserDetails

Здравей, Лъчо,

на последната лекция не разбрах каква е идеята на класа MobileleUserDetails.
Защо го създаваме и в практиката ползва ли се? Прилича ми малко на класа LoggedUsser, който създавахме със @SessionScope.
Има ли как да се избегне?

Unit and Integration testing

Здравей Лъчо,
Имам питане отностно тестването с UnitTest. Когато се опитам да тествам void метод не се получава нищо, както и такъв който е зависим от друг като например в моя случай: имам метод createOrder(createOrderDto, username)-> когато се опитам да намеря user с този username ми гърми теста с nullUser, можеш ли да ме ориентираш как да тествам войд методи?

Също за integration testing, само на рест контролери ли се прави или може и на нормални контролери? Ако е възможно да се тестват нормални контролери ще можеш ли да покажеш един пример за тях?

https://github.com/4ukNoris/Spring-Project/tree/master

Използване на RestController

Здравей! Нямам конкретен въпрос към част от моя проект. Въпросът ми е свързан с едно от изискванията за финалния проект. В една от подточките пише: "Include logic in a separate service with a Rest Controller, consumed by another service via a Rest Client."
След като изгледах лекцията от четвъртък вечер, където показваш как да създадем RestController и след това да си дръпнем информацията с помощта на RestClient стигам до извода, че трябва да изкарам поне едно entity от проекта си, да го направя на отделно приложение с Repostiory, Service и RestController и след това във финалния си проект просто чрез RestClient в един от сървисите (този за конкретното entity, което съм изкарала в отделен проект) да си взимам информацията и чрез обикновен Controller да я подавам към html страницата, в която я използвам. Правилно ли съм разбрала каква е идеята понеже за момента този RestController е единствената част от проекта, която ме затруднява и не мога да схвана какво точно трябва да се направи.

Задаване на роля

Имам въпрос относно ролите, ще имаме ли възможност на някоя лекция да отделим време за тях?
Как да задам роли в проекта: с sql ли да ги напълня или има и по-добър начин.?
Освен това в някои проекти забелязвам, че като ги дръпна и в базата данни винаги стои един потребител, който е админ, но него не виждам как сме го задали като такъв, поне в data.sql-a не е със сигурност. Може ли да обясниш как да си създам такъв потреител, който винаги да е в базата и да е админ.

Въпрос относно mobilele-то

Зравей, Лъчо!
Аз имам един въпрос относно mobilele-то. На офертите не трябва ли да имам поле User addedBy или нещо от сорта, за да знаем кой е създал офертата. Нали искам в allOffers страницата да даваме въжможност на този, който е създал офертата да може да я изтрие. Как ще стане това?

Как да изкараме съобщение в логин формата, че комбинацията от username и парола не съвпадат

Привет, Лъчо,

забелязах, че в Mobileto не сме оправили напълно логин формата след вкарването на security.
Не ми е ясно и в моя проект как да го направя, тъй като преди за изкарването на съобщение, че усернейм и пасуорд не съвпадат правехме проверка по ДТО-то, което вече не ползваме.
Това написах в контролера, но без DTO няма как да проверя параметрите:

image

Проблем при логване

https://github.com/SavinaDzhenimova/HomeDeliveryApp

Премахнах валидацията за парола от миналото issue, което публикувах, за да успея да запиша потребител в базата данни и да изпробвам логването в системата. Оказа се, че при логване с правилни username и password получавам следната грешка:

org.springframework.security.authentication.InternalAuthenticationServiceException: Error creating bean with name 'spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties': Could not bind properties to 'DataSourceProperties' : prefix=spring.datasource, ignoreInvalidFields=false, ignoreUnknownFields=true
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:110)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:93)

Като грешката завършва с това:
2024-07-01T13:50:09.162+03:00 ERROR 13488 --- [nio-8090-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception

java.lang.StackOverflowError: null
at jakarta.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:368) ~[tomcat-embed-core-10.1.25.jar:6.0]
at jakarta.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:368) ~[tomcat-embed-core-10.1.25.jar:6.0]
at jakarta.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:368) ~[tomcat-embed-core-10.1.25.jar:6.0]
.....

Търсих в интернет решения и най-честото предложение беше създаване на AuthenticationManager, но и това не помогна да отстраня проблема.

Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING

Здрасти Лъчо,
Извинявай, че не можах да ти отговоря в лекцията, просто ми се наложи да стана по спешност.
https://github.com/NikolayGeorgievv/BudgedTrackerProject Това е линка към проекта. Няколко изречения за повече контекст:
Използвам кажи-речи един и същ подход да визуализирам данни от базата в приложението: с таблици. Имам таблица с акаунти, която работи, таблица със сметки, която също работи. 3тата таблица, където е проблема е с "Goals". Там ми визуализира може би само 1вото ентити или нищо. Даже понякога не се рендерират други части от страницата, като сайдбар-а. Както каза на лекцията, едва ли е от размера на хедъра, понеже данните, които реално се опитвам да предам на другите ендпоинти са по-големи(например разходите) и съм нямал проблеми.
Благодаря за съдействието,
Поздрави!

Идея за Prometheus Grafana

Здравейте , изгледах видеото от миналото издание за Deployment Hosting Monitoring и ми стана интересно ако използваме реално grafana и prometheus и искаме да следим например колко често се разглежда дадена страница или колко често някой се регистрира в системата как може ако имаме дадена html страница , например dashboard , която ще е предназначена за админ , и да визуализираме резултатите от графана. Ако остане време би било добре ако може да ни покажите някое кратко демо за въведение. Също в лекцията за Deployment ще бъде ли възможно ако използваме Azure за deploymenta както в миналото издание да ни покажете как реално можем да свържем и докер файла , който имаме ?

Стилизация на страница

Привет, Лъчо,

имам проблем със стилизирането на една от страниците на проекта.
Искам да излиза по този начин:
Capture
тоест да се появява отделно скролерче, когато имам повече добавени елементи.
А всъщност ми се получава така, че трябва да скролвам самата страница, и съдържанието ми излиза извън фона за backgroun.
Capture2
Някакви идеи как да го оправя?

Поздрави,
Петя

Валидация на pop-up form.

Попълнете отделните секции отдолу и изтрийте упътванията.

Връзка към проекта:

Линк към проекта

Кратко описание: Здрасти Лъчо, пак съм аз. Понеже вчера беше лекцията за валидация и Thymeleaf, та един бърз въпрос по темата: Има ли начин да валидирам pop-up форма и как да върна темплийта?

Възможно най-накратко опишете:
На кратко: Юзъра ползва pop-up форми за различни цели(напр. създаване на expense).По default формата е скрита(display="none") и чрез бутон се визуализира. Валидацията си работи и като трябва да върна същата страница, я връщам без формата да е display-ната. (стайлинга се ресетва). В момента съм го подкарал, като съм направил копие на страницата, и по default формата в копие-страницата е display="block", и така, като я върна си показва формата с ерор съобщенията. Мога ли някак да го подкарам това чудо без екстра файла или някакъв бесен JS и Spring микс(нямам идея дали е възможно, търсих самостоятелно, но не ми излезе нищо конкретно). Притеснява ме изпитващите да не го отчетат за грешка, а аз просто искам да направя по-хубав UI.(поне за мен, иначе е доста по-лесно да се направи с отделни странички)

Стъпки за репродуциране: В момента по този начин работи само добавянето на "Expense"(account и goal съм ги валидирал само на фронт-енд-а). Можеш лесно да видиш за какво говоря и да се ориентираш, като просто се опиташ да добавиш expense и оставиш едно от полетата празно.

Благодаря за отделеното време,
Поздрави,
Николай.

Error messages

Привет,

имам едно питане относно error-ите, които се изписват при логин и регистрейшън формите.
Аз си задавам собствени месиджи от типа "Password length must be between 2 and 20 symbols", но след това освен тази грешка ми се появява още една "must not be blank".
Пробвах да махна @notblank анотажията от полето, но тази грешка отново излиза.
Как мога да я огранича да не се показва, тъй като по условие на изпитните задачи не трябва да я има. а и няма логика веднъж да изписвам, че паролата не трябва да е празна и втори път, че трябва да е между 2 и 20 символа.
Прикачвам скрийншот на начина, по който ми излиза, а това е линк към репото на задачата: https://github.com/BogoevaPetya/DictionaryApp-Skeleton/tree/master/src/main/java/com/dictionaryapp
Capture1

Проблем с DeleteMapping

https://github.com/reniangelovaa/BookWorld/tree/master
Кратко описание:
В ShoppingCartController, който съм анотирала с @RestController, имам метод анотиран с DeleteMapping за премахване на даден продукт от количката. В HTML-a cart.html също съм сложила метод DELETE, опитах и th:method="delete". Но когато натисна бутона Remove, при инспектиране в браузъра получавам:

1 requests
361 B transferred
Request URL:
http://localhost:8080/api/cart/remove/1
Request Method:
POST
Status Code:
204 No Content
Remote Address:
[::1]:8080
Referrer Policy:
strict-origin-when-cross-origin

В IntelliJ не ми гърми нищо.

Pathfinder

Привет, Лъчо,

на упражнението вчера с Pathfinder-a правихме валидации на логин формата, ако не се предоставят правилни username и парола да пренасочим към login-error страница и да изпище съобщение във формата, но при мен не се получават нещата.
Би ли погледнал и да ме насочиш къде греша?
https://github.com/BogoevaPetya/Pathfinder

Поздрави,
Петя

i18n не работи?

Връзка към проекта:
https://github.com/mr-pachev/human-resource-managements.git

Кратко описание:

Възможно най-накратко опишете:

  1. Създаден и конфигуриран I18NConfig
  2. Създаден и конфигуриран WebConfig
  3. Създадена папка i18n съдържаща двата файла: messages.propetries и messages_bg.propetries в resources
  4. В template-a по шаблон от вчерашната лекция добавени thymeleaf компонентите

Стъпки за репродуциране:
При стартиране на приложението се показва само българската версия на надписите. При проверка в добавката на браузъра - EdithThisCookies - бисквитките се сменят bg_BG и en_US.

Следвах стъпка по стъпка показаното на вчерашната лекцията, но при мен нещо не разпознава може би lang.
Нямам идея защо не сработва при мен.

Много ще съм благодарен за насоки относно решение на проблема.
Благодаря предварително.

Проблем със Spring Security в проект

Връзка към проекта:

https://github.com/pako8101/HistoryAppNewSpring2024

Кратко описание:

Привет, имам проблем със Security в моя проект, преди да вкарам Spring Security всичко работеше перфектно, имплементирах го както сте показали в предния курс всичко направих както казвате, но не сработва регистрацията и съответно логина. Това е от два месеца иначе вече щях да съм готов с крайния проект.
Благодаря

p.s.
Изгледатл съм всички курсове назад, и съм направил всики проекти, но нещата се закучиха на Секюритито :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.