Code Monkey home page Code Monkey logo

softuni-feb2023's People

Contributors

luchob avatar rd-lachezar-balev avatar

Stargazers

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

Watchers

 avatar  avatar

softuni-feb2023's Issues

Проблем с login при използването на Spring Security

Здравейте,
Извинявам се, че Ви притеснявам, но когато се опитвам да логна потребител, нищо не се случва, също при подаването на грешни данни ни ми показва грешката за потребител или парола. Ще се радвам ако имате време да погледнете къде съм сбъркал. Благодаря Ви предварително, хубав и усмихнат ден!

https://github.com/StefanPYordanov/BookLibrary

Моля за Вашата помощ

Здравейте,

Бих желал да Ви помоля за малко помощ,
имам няколко проблема и към момента не мога да ги разреша.
При отиване на ендпойт на профил, ме редиректва към логин,
разрешил съм го за всички потребители, преди да вкарам принципал, си
работеше, но след това започна да редиректва.
Също когато подам две различни пароли на pass и repass при регистрация
не запазва данните в базата, но не дава и ерър, също така и при логин нито ми показва ерърите, нито че
потребителя вече съществува, или че има грешен потребител или парола.
При addbook в html имам поле option и искам да го направя да ми показва авторите от репозиторито, опитвам се да
го направя с th.each, но не ми се получава, явно не го правя праравилно, знам че трябва да направя лист с
findAllAuthors и да го покажа в options на html, но нещо не успявам да го направя.

Благодаря Ви изключително много. Пожелавам Ви прекрасен и усмихнат ден !

https://github.com/StefanPYordanov/BookLibrary

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

Днес успях да изгледам до края лекцията от понеделник. Понеже не съм минавала през модул JS исках да попитам, идеята ми е в моя проект да направя страница за админа, в нея да реждам всички продукти и всички поръчки, като продуктите да могат да се трият и редактират. Та това нещо как може да стане с JS да се вземат данните от базата а не от друг localhost. И проблем ли ще е ако е по този начин а не с Java? Дано да съм задала правилно въпроса си

А проблема с който се сблъсквам е че при products/add в web ми зарежда всички полета но ми дава грешка 404 в Network че не ми намира style и css файловете, мисля че някъде греша във securityConfiguration но не успях да се справя
https://github.com/ViliIlieva/MyKnitShop

Thyleaf/Spring security

and().
// configure login with HTML form
formLogin().
loginPage("/users/login").
// the names of the user name, password input fields in the custom login form
usernameParameter("username").
passwordParameter("password").
// where do we go after login
defaultSuccessUrl("/home").//use true argument if you always want to go there, otherwise go to previous page
failureForwardUrl("/users/login-error").
Това е кода за логване. Обаче незнам защо но при успешен вход ме праща на - > http://localhost:8080/main.js?continue
От къде може да идва проблема.

Thymeleaf Sec

org.thymeleaf.extras
thymeleaf-extras-springsecurity5
3.1.1.RELEASE

Както лектора така и аз ползвахме това дипендънси за таймлийф. Но когато написах sec:authorize="isAuthenticated()" § sec:authorize="isAnonymous()" § sec:authorize="hasRole('ADMIN'). нищо не работи като продължавам да виждам всички бутони на навигацията. Като изкопирах навигацията от pathFinder пак без резултат.

Търсих инфо из нета с различни дипендънси.... Е ето ме пак :–)

Environment variables

Здравей,

В лекцията от 13.03.2023 г. ни показа как да използваме Environment variables за да не публикуваме чувствителна информация в GitHub като пароли, потребителски имена и т.н., за което съм ти много благодарен, тъй като никой до момента не ни беше показал тази възможност. Мисля, че ще е добре ако остане малко време на следващата лекция да се допълни информацията, като се обърне внимание на една особеност, която може да обезсмисли това действие.

Тъй като ми стана интересно къде се съхранява конфигурацията на Environment variables, открих следната информация на сайта на JetBrains:

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000259664-Are-my-environment-variables-backed-up-to-Github

Всъщност за всеки проект информацията се съхранява в диркеторията на проекта в поддиректория .idea във файл workspace.xml.

Тази поддиректория никога не трябва да се къмитва, т.е. трябва да се внимава и винаги да се добавя във файл .gitignore на всеки проект.

file_path_problem

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

Имам технически проблем:

Зареждам проект с име "test" в който имам база с няколко ентитита, като таблици.
Проблемът е следния:
Ако директорията на проекта е например: Е:\SoftUni\All Projects\test  -> ми създава базата, но без таблиците в проекта.
Но ако директорията е Е:\SoftUni\Projects\test -> създава успешно всичко и установих, че проблема е в спейса на някоя от папките в пътя. 

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

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

Поздрави,
Росен

Spring Security Problem

Здравей Лъчо,
имам нужда от малко помощ или насоки.
имам два проблема със секюритито на приложението:

  1. когато сетна anyRequest().authenticated() и приложението ми седи на preloaderа и не се отваря, на permitAll се оправя и работи нормално;
  2. когато тръгна да се логвам мe насочва към failureForwardUrl като не виждам причина за това. Четох за проблемите на колегите с версиите но при мен мисля че са точните.

https://github.com/cUserd/finalProject_softUni_Model3d

тук е репото ако намериш време да погледнеш, Благодаря!

Проблем със секюрити в проекта за финал

Привет, вече леко отчаяна и объркана в кода си. Направих регистрацията и добавянето на нов юзър в репото като се регистрира. Обаче сега проблема ми е че паролата не се енкодва. Направих в конфиг папката трите важни неща за секюрити. Честно копирах от твоя код копирах initServise в моят userServiseImpl с надеждата да ми се кодира паролата. Обаче възникна друг проблем с който не знам как да се оправя Could not resolve placeholder 'app.default.password' in value "${app.default.password}" това от една страна и Error creating bean with name 'userServiceImpl' defined in file [C:\myProject\demo\target\classes\com\example\demo\service\impl\UserServiceImpl.class]: Unexpected exception during bean creation.
Сега в мен възниква двулменето това секюрити само за логване или и за регистриране трябва. Първоначално разбрах, че при логване трябва, сега се чудя с добавянето на ролите още при регистриране и енкодването трябва ли или не и как да го направя? Също се чудя и как трябва да направя ролите да се сменят когато се извърши някакво действие по сайта . Например искам като се отвори страницата в нав бара да пише гост, но като се регистрира вече да е купувач, като иде на бутон създай продукт да стане създател. Това наистина незнам къде в кода трябва да го напиша. Почват да изникват някакви стари спомени от курса по js, но съм много объркана.
С уважение М.
https://github.com/MariaBonkova/3D-printing-project/tree/master

Login

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

Искам да попитам нещо за Login, което ме мъчи от известно време.
Тъй като Spring Security извършва за нас @PostMapping за Login и не го пишем никъде ме притеснява следното:
Примерно имаме:

UserLoginDto {
   
   @NotBlank
   @Size(min = 5, max = 20)
   private String username;
    @NotBlank
   @Size(min = 8, max = 30)
   private String password;

 гетъри и сетъри
}

До този момент правихме Post-Redirect-Get и ако данните нещо сгафят с @Valid проверявахме за error-и и връщахме на същата форма със съответната грешка, не допускахме заявка до базата, запазвахме евентуално username във формата и тн.

Не мога да си обясня това нещо как се случва със Security.
Има ли как да стане по подобен начин, или вече изцяло тази валидация става на ниво клиент? И ако да, в случай на заобикаляне на клиента, как се предпазваме, ако изобщо има от какво в тази ситуация? Нещо изпускам по веригата, но не мога да се ориентирам кое точно.

Благодаря!

Поздрави,
Росен

Въпрос за индивидуалните проекти

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

Submit HTML form does not persist data in the database

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

Нуждая се от малко помощ за проекта ми, който разработвам. Та проблема е че когато събмитна Create Car Offer или Inquiry абсолютно нишо не се популира в базата данни, никакви ерори не ми излизат също и не мога да намеря каква точно е причината. С Login има проблем също. Всичко изглежда наред в структурата и кода на проекта и според мен не би следвало да има проблеми, но явно нещо аз пропускам предполагам.

Ще съм благодарен ако го погледнеш и ми дадеш някакви насоки.

Поздрави,
Ангел

403 CORS Error

Здрасти, Лъчо!

От доста дни се мъча с правенето на заявки от фронтенда ми на реакт (localhost:3000) към rest api-то ми (localhost:8080). Всичко е наред с GET и POST заявките, но стигне ли се до PUT, PATCH, DELETE, хвърля 403 CORS Error "Access to fetch at 'http://localhost:8080/admins/promote?userId=2' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled."

През Postman всичко е наред с всеки вид заявка, но в бразузъра - гърми винаги при всякаква конфигурация.
Опитах с:

  • @CrossOrigin(origins="http://localhost:3000")
  • CorsConfigurationSource бийн в SecurityConfig
  • CorsRegistry
  • имплементация на CorsFilter
  • добавяне и махане на .cors().and() в SecurityFilterChain бийн
  • микс от различни подходи...
    Но все едно и също в браузъра :(

https://pastebin.pl/view/7c6bed22 -> SecurityConfig
https://pastebin.pl/view/a99856db -> AdminController

Моля те за помощ с CORS. Честно казано, много ме отчайва вече.
Поздрави.

Проблем с финалният проект.

Привет, започнах да пиша логиката по проекта си, но още в началото започват гърмежите, с който не мога да се справя. Опитвам се да направя логиката за регистриране. В applicationBeanConfiguration се опитах да сложа валидацията от лекциите където са спринг секюрити. Проблема е , че като рънна проекта зарежда моят проект, но като дам на home и ми изкарва логина са спринг секюрити, иначе регистрация и вход ми зарежда мойте страници. И допълнително в конзолата ми изписва Using generated security password: 00e87e41-daa7-48ca-823e-bd69eb4cd2b1

This generated password is for development use only. Your security configuration must be updated before running your application in production.
Но въпреки това върви за сега.
Ще бъда благодарна, ако може жокер как да го оправя.
Мария
https://github.com/MariaBonkova/3D-printing-project/tree/master

Problem with registration

Привет, Лъчо!
Мъча го този проблем от доста време и не мога да разбера защо не иска да ми регистрира потребител. Нито някаква грешка хвърля, нищо. Просто като стигнем до регистрирането на потребителя и приложението овисва?? Мисля си, че може да има нещо общо с енкодера на пароли, но не съм сигурен. Честно казано вече нямам идея. :(

Ще съм благодарен ако успееш да му хвърлиш едно око и да дадеш някакъв съвет. :)

Линк към репо: https://github.com/Paytakov/mobilele-app

Хубав ден и поздрави!

Помощ за снимките :'(

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

Аз мисля че трябва да приема някакъв Set за да се запази в базата множество снимки за един продукт.
И точно там удрям на камък, както после и при визуализацията.
Дали това е по- добре всичко това да го направя на отделен controller & service.

Може ли да хвърлите едно око над проекта и да споделите мнение. Благодаря! :-)
https://github.com/IvailoB/SoftUni-Java-WEB/tree/main/CarWeb/CarWeb

Проблем със качване на снимка и друг файл

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

имам два проблема които не успявам да разреша и ще съм благодарен за малко съвети и помощ.
проблем 1 : в приложението ми искам да може да се качва снимка. качвам я записвам я в папката (вижда се) има си я в базата като стринг, но когато се мъча да я визуализирам с tymeleaf ми гърми. Доколкото четох и разбрах се използва
th:src="|data:image/jpeg;base64,+${model.image}|
обаче не ми я визуализира

проблем 2: в приложението ми искам да мога да качвам файл към базата отново като стринг . Тук още на ниво база не мога да го кача. Четох че трябва да е BLOB пробвах и различни варианти но базата не иска да го приеме. Също бих те помолил за съвет какво трябва да потърся и прочета за да мога да го сваля в един момент от някакъв бутон примерно download object
или стъпките са както съм го вкарал с input stream да го обърна с output stream.

тук е приложението ми ако намериш малко време да погледнеш.

https://github.com/cUserd/finalProject_softUni_Model3d/tree/master

Моля за помощ

Здравей, би ли ми помогнал къде греша -> https://github.com/lamenco/Window-Shopper изтегледет PVC9.rar
При вас интересептора работи а при мен не, дали може да ми кажете къде да погледна, единствено ми се променя e
"??fragment_language_en_US??" и дори не знам защо не пише Language или Език.

И втория ми проблем, бихте ли ми казали къде греша при теста testDelete-> "/cart/deleteWindow/{id}", гледам внимателно клипа ви от миналото издрание и не разбирам защо ми излиза грешка ->
detached entity passed to persist: com.example.demo.models.entity.User

Благодаря!

Теми за лекциите, ако остане време:

Здрасти, Лъчо,

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

  1. Асинхронно взимане на данни с FETCH - това същото, което ни показа на 27.2 ли е или има нещо по-специално в асинхронността? Това е изискване за финалния ни проект, затова питам.
  2. Пак като изискване за проекта - да се ползва минимум един интерсептор. Виждам отново, че не съм само аз, масово чудене е - дай ни идея за реално използваем интерсептор - и като идея, и като начин на писане и имплементация. Всички примери, които виждам онлайн, дават само някакви dummy примери с трите метода и това е. Никаква реална usecase ситуация.
  3. Третата точка, която е масов леш е темата с Принципала - понеже реално в спринг секюрити контекста единственият юзър, който живее в сесията е инстанцията на User класа, който си идва от Спринг секюрити, и който има в UserDetails единствено username, password и id. Има ли начин без ходене до базата да си взимаме от реалното ентити на юзъра и други данни, като например firstName, lastName и т.н.?

Предварително благодаря!

настройки на базата?

не съм сигурен дали това е настройка на базата или не, но от workshopa последния път,
когато качваме снимките на cloudinary.
При мен се появяват в профила ми но не ги виждам в базата.
А когато се опитам да запазя в базата имам следната грешка ->
object references an unsaved transient instance - save the transient instance before flushing
.........
Та идеята ми е как от cloudinary се запазват нещата в базата. Може да съм пропуснал нещо.

Имам проблем със стартирането на проекта ми.

Здравей,
Проекта който смятам да правя е за прогнози за ФОРЕКС и се казва Trading Forecasts. Прогнозите ще бъдат за валутните двойки евро/долар, евро/паунд, злато и индексите Dax, Dow Jones и Nasdaq които са в ентити Category което от своя страна се състои от енъм. Всяка една прогноза ще бъде или дълга позиция (long) или къса позиция (short) които са също енъми. Имам и енъми за UserRole и накрая когато се опитам да стартирам проекта си ми излиза грешка "The dependencies of some of the beans in the application context form a cycle:" и че трябва да направя това "Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true."
Четох в Baeldung, че това се получава, защото имам много навързани bean-ове и когато имаме Constructor injection, Spring се чуди при стартиране кое да инициализира първо :) Пробвах с това "spring.main.allow-circular-references=true" което сложих в application.properties, но проблема си оставаше и затова когато добавих @lazy в Конструктора на ForecastServiceImpl и приложението ми тръгна :)
Вчера те питах в началото на лекцията дали това би било проблем за моето приложение и ти ми каза да напиша issue тук за да ми помогнеш :)
Благодаря ти предварително за отделеното време!

Github URL: https://github.com/GeorgiPetrov4400/Trading-Forecasts/tree/main/TradingForecasts/TradingForecasts

Въпрос относно първата лекция.

В следния мапинг от първата лекция:

@GetMapping("/{id}")
public ResponseEntity getBookById(@PathVariable("id") Long id) {
Optional book = this.bookService.getBookById(id);

    return book
            .map(ResponseEntity::ok)
            .orElseGet(() -> ResponseEntity.notFound().build());
}

Когато връщаме ResponseEntity::ok, това ли е метода, в който ще се осъществи проверка дали дадената книга съществува или не. Разбирам какво прави цялото нещо абстрактно, но в конкретика не съм точно сигурен, къде точно се разбира книгата дали е Null или не.

Проблем финален проект CSS

Здравей имам следният проблем с изтеглен темплейт съм и ми работят както трябва някой страници но някой се чупят
знам че е някъде в пътищата на скриптовете, както и че една колежка имаше същият проблем, но вече няколко дни съм забил и оправия няма :( Ако може някакви напътствия ще съм благодарен

https://github.com/cUserd/SingleModuleFixedCss

Security Login not work

Благодаря за отделеното време, някой неща се оправиха обаче логина все така ме хвърля в failureForwardUrl при положение, че юзера го има в базата виждам и през f12 че се пращат правилните username и password. от базата си вадя правилният юзер с findByEmail но какво се случва в секюрити не ми е много ясно :(
просто ме препраща всеедно е грешен потребител. във логин формата всичко е както трябва поне според мен.

иначе за папка libs реших да използвам:
@bean
public WebSecurityCustomizer webSecurityCustomizer(){
return web -> web.ignoring()
.requestMatchers("/css/","/js/","/images/","/libs/");
}

Originally posted by @cUserd in #27 (comment)

Сетване на модератор и админ

Здравей, интересно ми е относно начина който ни показа сетването на админа и модератора на лекцията за секюритито, дали може да си сетнем примерно така два админа и три модератора примерно и как трябва да стане?
Благодаря предварително!

cloudinary SunCertPathBuilderException: unable to find valid certification path to requested target

Привет :)
Имплементирам cloudinary в моят проект и имам един проблем
При качване и триене на снимка излиза тази грешка PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Успях да кача SSL сертификата, но днес при стартиране отново излезе това. Има ли начин веднъж щом се качи този сертификат в “%JAVA_HOME%/jdk-18.0.2.1/lib/security/cacerts, повече да не се налага да го правя ?

Използвам тази команда:
keytool -importcert -file ‪C:\Projects_.cloudinary.crt –alias dinardap –keystore C:\Program Files\Java\jdk-18.0.2.1\lib\security\cacerts

Благодаря !

Receptaria - map arbitrary number of ingredients in controller

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

Изпращам линк до репото на проекта си: https://github.com/thrako/receptaria

Моля за съвет как да си реформатирам кода, така че при няколко динамично добавени съставки от формата за добавяне на рецепта в контролера в @PostMapping("/recipes/add") да получавам готово намапено RecipeDto, в което да се съдържа List<IngredientDto>, а ако това не е възможно - някакъв по-елегантен начин, чрез който да постигна същия резултат.

Имам подобен проблем със снимките като описания по-горе относно съставките.
Освен това, в допълнение, при добавяне на няколко снимки, бих искал потребителят да има възможност да избере, коя от тях е "primary" и съответно именно тази снимка да се показва като thumbnail в списъка с всички рецепти. Сложих radio бутони във формата, но информацията, която получавам от тях в multipartRequest.getParameterMap() не е достатъчна, за да идентифицирам снимката.

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

Благодаря за времето ти!

Поздрави,
Траян

Проблем с type=Not Found, не ми взема id-то

https://github.com/ViliIlieva/MyKnitShop.git
Каква може да е причината да не взема Id при този метод
опитах да редиректва и към "redirect:/product/edit/" + productId;
Метода се намира в ProductControler

@PatchMapping("/product/edit/{id}")
public String editProduct(@PathVariable("id") Long productId,
@Valid EditProductDTO editProductDTO,
BindingResult bindingResult,
RedirectAttributes redirectAttributes){

    if(bindingResult.hasErrors()) {
        redirectAttributes.addFlashAttribute("editProductDTO", editProductDTO);
        redirectAttributes.addFlashAttribute(
                "org.springframework.validation.BindingResult.editProductDTO", bindingResult);
        return "redirect:/product/edit/{id}";
    }

    this.productService.editProduct(productId, editProductDTO);
    return "redirect:/user/admin";
}

Отново имам нужда от помощ

https://github.com/ViliIlieva/MyKnitShop
Да помоля да погледнеш във html shopping-card защо не ми засича ДТО-то.
Също искам да попитам в OrderControlera направих Гет и Пост заявка с идеята че когато изпълнявам products/order т.е. html order-details (когато клиент си потвърждава поръчката) очаквам пост заявка защото попълвам две полета с данни които идват с тази заявка, а в Network виждам че заявката всъщност е Get, това защото не ми е засякло ДТО-то и защото нямам th:field във htmla ли се получава.
Май доста объркано си зададох въпроса дано да съм успяла да обясня.
Благодаря предварително!

DeleteMapping

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

Стигнах до работещо решение за DeleteMapping / deleteById(bookId), но не съм сигурен дали е правилно.


Стъпка 1:
Създаване на наш exception -> EntityNotFoundExceptionById


@ResponseStatus(HttpStatus.NOT_FOUND) ****(като тук се чудих дали да сложа NO_CONTENT)
public class EntityNotFoundExceptionById extends RuntimeException {
public EntityNotFoundExceptionById(String message) {
super(message);
}
}


Стъпка 2:
Обработка на service ниво:


public void deleteById(Long bookId) { ****(тук опитах с try/catch, но нещо не се получи - но с тази проверка работи)
    if (!this.bookRepository.existsById(bookId)) {
        throw new EntityNotFoundExceptionById("Invalid id was provided");
    }
    this.bookRepository.deleteById(bookId);
}

На ниво контролер го оставих, както го написахме по време на лекцията.


@DeleteMapping("/{id}")
public ResponseEntity<BookDto> deleteBookById(@PathVariable("id") Long id) {
    this.bookService.deleteById(id);
    return ResponseEntity
            .noContent()
            .build();
}

Като допълнение прилагам и снимка на заявките в Постман :)

delete mapping requests

Два въпроса относно проекта

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

Имам два въпроса и мисля че ща са доста лесни :)

  1. Имплементирах си качването на снимка и файл за което много благодаря, но се чудя как бих могъл да вкарам multipart file
    в init service или с други думи когато запали приложението да си направи нови готови модели за да не седи празен сайта. Как се задава от къде да вземе снимка статично(от папка) без да се ъплодва от форма.

  2. в controllera имам pathvariable да кажем /detail/{id} и като се се зареди в браузера всички ресурси и фрагменти започват да се търсят от /detail вместо от стандартната локация static/.../ и доста се измъчих, но неможах да го докарам да ги търси от правилното място опитах с "../" , с абослютен път и още импровизирани варианти, но без успех.

Проблем с BindingResult

Здравей Лъчо,
Срещам голям проблем с BindingResult, при регистриране изобщо не ми отчита валидациите. BindingResult винаги показва 0 errors.
https://github.com/msaeva/MMusic

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

Имам нужда от помощ - IDE-то спря да създава таблици

Здрасти, Лъчо. Знам, че питането ми звучи абсурдно, но вече часове се боря и без резултат.

Правех си моя проект и му прилагах секюритито от последната лекция. В един момент видях, че не работи, както се очаква - нещо каквото и да правех, както го правиш ти в лекцията, не ми се криеха примерно бутоните, според ролята на потребителя. В един момент осъзнах, че съм на таймлийф-екстрас-секюрити5, вместо на 6, смених го и привидно тръгнаха нещата, но в един момент на localhost:8080 спря да ме пуска на индекс странцата, а започна да ми иска юзър и парола - този стандартния прозорец на секюрити. Реших да дропна базата и да я вдигна отначало, пре-импортнах всички депендънсита и тогава установих, че таблиците не се създават. В момента положението е такова, че дори ето това приложение, не вдига двете прости таблички в базата:
https://github.com/borisboev79/Proba

Всякаква помощ ще е добре дошла. Благодаря!

Проблем със spring security

Здравейте, ако имате време може ли да погледнете проекта ми [https://github.com/ivadar/Vandi-gym-project], имам проблем след добавяне на спринг секюрити, не ми визуализира табовете за регистрация, логин и др., както аз искам и винаги ме препраща към логин независимо къде кликна. Home html-a въобще не се показва, все едно го няма.
Ще се радвам на отговор, благодаря!

Защо не ми излиза Invalid username or password?

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

Пробвах да дебъгна, кодът въобще не стига до този метод в контролера, кактно и th:if="${bad_credentials}" не разпознава изобщо този атрибут.

https://github.com/borisboev79/CGM-Project.git

Мерси предварително!

Благодаря

Здравей Лъчо, съжaлявам че въпросите са 3, но когато имаш време ще се раздвам ако може да ми помогнеш, Имам проблем като пускам тестовете, че получавам грешка "java: illegal character: '\ufeff'" И " java: class, interface, enum, or record expected".

Втория ми проблем е, че не разбирам защо интересептора ми не работи. Не ми се сменя езика на навигацията.
Всичко ми е на UTF-8 и с BOM или без BOM нищо не се получава.

И третия ми проблем е, че се опитвам да сложа на всеки нов потребител роля USER Още на регистрация с кода
" List userRoles = new ArrayList<>();

if(userRegisterDto.getUsername().equals("lambo")){
userRoles.add(new UserRole().setUserRole(UserRoleEnum.ADMIN));
}else{
userRoles.add(new UserRole().setUserRole(UserRoleEnum.USER));
}
newUser.setUserRole(userRoles);"
но ми дава грешка.

Ще оставя линк към проекта -> https://github.com/lamenco/Window-Shopper , изтегли PVC7.rar
Нещо още не мога да се ориентирам добре как се качва в репозиторито.

Благодаря!

PVC

Здравей, като направих нов файл в messages.properties , и всичко вече излиза на български, но нищо не се променя като езика.
Единствено ако добавя classpath в " resourceBundleMessageSource.setBasename("classpath:i18n/messages");", започват да ми излизат пак думите с въпроси отпред и отзад, но тогава поне се сменят. Не знам гледах и рових къде ли не в интернет и не разбирам защо не ми се сменя.
Относно тестовете, не разбирам защо не може да ме допусне за заявки след като използвам
@beforeeach
void setUp() {
testUser = new User("admin", "Admin", "a@a", "123",
List.of(new UserRole().setUserRole(UserRoleEnum.USER),
new UserRole().setUserRole(UserRoleEnum.ADMIN)));

    testOffer = new Window(111,125,new Model(ModelEnum.VIVAPLAST),new Colors(ColorsEnum.WHITE),
            new Chambers(ChamberEnum.FIVE_CHAMBER), BigDecimal.valueOf(12),testUser);
}

Ако можете изтегледете файла PVC.rar и да погледнете заяките testLoginDelete() и testAddWindow()
https://github.com/lamenco/Window-Shopper

Съжалявам че ви занимавам толкова често.

Достъп до cloudinary проект

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

В момента гледам първият Workshop от изданието на курса, започнал септември месец 2021 и там видях, че си направил cloudinary проект, които би ни бил полезен и за нашите проекти. Проблемът е в това, че не го намирам в github-a ти (не изключвам и нещо аз да не довиждам). Workshop-a се е провел на 05.11.2021.

Поздрави!

Проблем със search bar

Здравей, Лъчо. От известно време имам проблем със сърч бара. Прегледах няколко пъти записа от миналогодишното издание на курса, но не се получава филтрацията. Когато филтрирам по някаква цена, излизат всички резултати.
https://github.com/KristiyanVasilev96/LaptopFinder

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

Привет, реших да направя темплейти на head, navbar and footer. Но когато ги риплейснат на index стрницата и ми я счупи по този начин по, който излиза. Пробвах варианти, но незнам от къде дойде това нещо. Ще съм благодарна за помоща ви!
https://github.com/MariaBonkova/3D-printing-project/tree/master

Synchronization of constraints

Здравей Лъчо,
Не съм сигурен, че ми разбра въпроса относно синхронизацията на validation constraints между backend и frontend по време на днешната лекция. Имах предвид следното: например в backend-а съм задал на полето password @Size(min = 5) и подобно във frontend-а извеждам съобщение с JS, ако паролата е по-къса от 5 символа. По-късно обаче променям изискването в backend-а да е @Size(min = 8) и пропускам да си ъпдейтна frontend-a. Получава се неприятна ситуация, потребителят въвежда парола, която според frontend-а е с допустима дължина, но backend-а не я допуска. За да не се случва това искам тези числа, regex-и и т.н. ("constraints") да ги залагам на едно единствено място, от което да си ги вземат и backend-a и frontend-а. По същия начин мисля да процедирам и със съобщенията, за да са идентични, независимо дали се генерират от frontend-а или от backend-а. Начините, по които съм открил, че може да се имплементира са: (1) script таг, в който подавам данните чрез Thymeleaf variable като тук хубавото е, че мога да подам Map; (2) hidden input field, но трябва да правя отделно поле за всеки constraint (или поне аз така си мисля); (3) REST Controller + Fetch заявка -> не съм сигурен, че е ОК да го ползвам за такива "служебни" данни, макар да не виждам друга очевидна причина защо би било грешно. Вероятно има и други начини, за които аз не се сещам. Та... въпросът ми е, кой е препоръчителният начин да го имплементирам?

trying to fix some issues

Здравей Лъчо,
Не мога да намеря правилният път за разрешаването на някои неща в проекта. Голяма каша, не съм рефракторирал още за да добие приличен вид. Ще се радвам, ако можеш да ми дадеш някакви насоки, ако не може решение на следните неща:

  1. Page “my-pets” искам да бъде видима само за логнатият нормален юзер, да не се вижда от модератори и админи. Какво ли не правих и въртях и не можах да стигна до решение.
  2. На page “price-list” не мога да си заредя с fetch цените по манипулации през бутона. Гледах видеото и ползвах стъпките, които показа, но не става, имам съмнение, че бъркам с js т.к. го знам като basics само.
  3. Не мога да разреша как да зареждам в базата новите pets. Метода ми .addPet в PetService явно не работи.

Link : https://github.com/PlamenPeev/adorablePet
Би трябвало да имаш достъп, ако съм уцелил настройките.
Благодаря предварително!

Частично изолирах проблема, мисля, че е полезно

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

След пълна преинсталация на системата от format C:, в момента съм на гол Уиндоус 11, IntelliJ последна версия, Java SDK 17.06 директно от Оракъл и последните версии на MySQL сървър и J Connection - 8.0.32

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

  1. Първоначалните версии депендънситата, с които бях почнал разработката, бяха съответно, на Spring Boot - 3.0.2, а на Thymeleaf Security - 5.
  2. След като установих, че ограничаването на достъпа до меню елементите в navbar с .isAuthenticated() метода от таймлийф секюрити не работят, смених версията на 6 и привидно за малко тръгнаха, но след рестарт на приложението, директно ми изкара дефолтния логин екран на Спринг Секюрити. Затова питах как се маха.
  3. Оказа се, че спринг секюрити буквално не вижда нищо от кода на тема секюрити, който съм написал и си пляска дефолтната страница, вероятно оттам и не вдига базата.
  4. Отделно се оказа, че някъде между версиите на Спринг буут, подаването на данните от ентититата към mySQL е претърпяла известна разлика.
  5. При мен на macBook Air M1, нещата тръгват от раз от грейдъл репото, което качих в гитхъба си, както и при теб вървят. Проблемът е, че като го клонирам на прясната инсталация на Windows 11 машината, стигам до същата задънена улица - приложението стартира, но изкарва дефолтния логин екран на секюрити и нищо повече, без да създаде таблиците.
  6. Създадох чисто нов грейдъл проект със съответните депендънсита, директно от сприн инишълайзъра онлайн и довечера сядам да пиша по него. Ще създам съвсем базова структура с юзър, роли и секюрити, преди да продължа нататък, и ще ти пиша, ако има проблем.

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

Въпрос за Thymeleaf достъп до Модел атрибут

Имам заявка с която взимам всички order от базата данни.
Като в клас Order имам

@manytomany(fetch = FetchType.EAGER)
private List orderedProducts = new ArrayList<> ();

@mantoone
private User client;

Как със Таймлийф мога да достъпя полето клиент и листа от продукти към всяка поръчка.
Направила съм си th:each="order : ${allOpenOrders}", но имам достъп само до базовите полета

Моля за помощ с проекта

https://github.com/ViliIlieva/MyKnitShop.git
Здравей отново, на мен май ми е най труден таймлийфа.
В OrderControler съм направила два метода за cart, гет и пач, с идеята че пач метода приема данни за юзъра които трябва да бъдат допълнени във вече създадения такъв.
Направих и страницата след потвърждаване на поръчката и тя е order-details като в контролера създадох метод и за нея,
ако самостоятелно заредя страницата localhost:8080/order/details/5 ми зарежда страницата и ми издърпва всички необходими данни.
Но не успявам от cart.html когато събмитна "Потвърди Поръчката" да ме прехвърли към localhost:8080/order/details/{id} уж в пач метода съм задала да презареди order-details
Да помоля да погледнеш

security

Здрасти Лъчо, пак съм аз :)

По време на лекцията, мисля ще не успях да си задам въпроса правилно относно UserEntity със Security.

Ситуацията е следната:
Създава се наш JpaUserDetailsService и се импплементира UserDetailsService по този начин:

@Service
public class JpaUserDetailsService implements UserDetailsService {

    private final UserRepository userRepository;

    @Autowired
    public JpaUserDetailsService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

        var user = this.userRepository.findFirstByUsername(username);

        return user.map(SecurityUser::new)
                .orElseThrow(() -> new UsernameNotFoundException("Username not found " + username));
    }
}

Също така се създава наш клас SecurityUser, който имплементира UserDetails по следния начин:

public class SecurityUser implements UserDetails {

    private final UserEntity user;

    public SecurityUser(UserEntity user) {
        this.user = user;
    }

    @Override
    public String getUsername() {
        return this.user.getUsername();
    }

    @Override
    public String getPassword() {
        return this.user.getPassword();
    }

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        //not implemented
        return List.of(() -> "read");
    }


    @Override
    public boolean isAccountNonExpired() {
        return true;
    }

    @Override
    public boolean isAccountNonLocked() {
        return true;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }

    @Override
    public boolean isEnabled() {
        return true;
    }
}

И така вместо да подаваме отделните полета, да го направим с цялото ентити. Въпросът ми е дали по този начин да подадем цялото UserEntity е напълно грешно?
Или ако е много лоша практика да се инжектира по този начин, възможно ли е в метод "loadUserByUsername" да се трансформира ентитито в ДТО и след това в SecurityUser да подадем въпросното UserDto?

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

        var user = this.userRepository.findFirstByUsername(username);

    тук с мапър да го преобразувам в DTO и да го подам него на SecurityUser като  private final UserDto userDto;
     UserDto userDto = this.modelMapper.map(user, UserDto.class);
     
        return userDto .map(SecurityUser::new)
                .orElseThrow(() -> new UsernameNotFoundException("Username not found " + username));
    }

Четох, че подобден подход се нарича adapter/decorator pattern, но може и да бъркам.

И като допълнение къде би било подходящо да се вкарат всички филдове от UserDetails -> isAccountNonExpired, isAccountNonLocked и тн. В UserEntity предполагам и да се пази true/fasle, като статус в базата или?

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

Поздрави,
Росен

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.