فهرست منبع

RIFFMASTER: fetching songs in frontend, login in backend still does not work

Kuba 2 سال پیش
والد
کامیت
5e0c7f503d
43فایلهای تغییر یافته به همراه271 افزوده شده و 161 حذف شده
  1. 39 27
      Backend/Spring/.idea/workspace.xml
  2. 1 0
      Backend/Spring/pom.xml
  3. 7 1
      Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.java
  4. 119 43
      Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/AuthController.java
  5. 5 1
      Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/ExampleController.java
  6. 32 7
      Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.java
  7. BIN
      Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.class
  8. BIN
      Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginRequest.class
  9. BIN
      Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginResponse.class
  10. BIN
      Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController.class
  11. BIN
      Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/ExampleController.class
  12. BIN
      Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.class
  13. BIN
      Backend/Spring/target/classes/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.class
  14. BIN
      Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginRequest.class
  15. BIN
      Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginResponse.class
  16. BIN
      Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController.class
  17. BIN
      Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/ExampleController.class
  18. BIN
      Backend/Spring/target/classes/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.class
  19. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/0.pack
  20. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/1.pack
  21. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/2.pack
  22. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/3.pack
  23. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/4.pack
  24. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/5.pack
  25. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/6.pack
  26. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/7.pack
  27. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/8.pack
  28. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack
  29. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack.old
  30. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/14c9ad60da80c5fe904df563577919e1c63435c47bc1340bb0df17d44b91d0bb.json
  31. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/1babe065fa711bf44201283b46d1879392a5355c5533727fda93e3f044680c5f.json
  32. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/29bbfdd5e880cc47a84976c55049a87149dd74265fb4e20845dc9b91bc0783ab.json
  33. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/4e9d435ac0b9c8029d5087cae1d3cb4c60872f584439e7d0bfcfaeef6203b859.json
  34. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/ae8aecff8b85c97da4f520fb725f340242c837940659c215ac0c15c339b6edc2.json
  35. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/b5cf494a2d09464e0b508b6972043ce72b2a2c7074e6bb71fc7c46bd7468dfca.json
  36. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/b94d8b85108c8525cb19252644448fe3f7ee42f4bfda753ec3e06935f9c27eed.json
  37. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/d71eb062af5f237707c7290a113391589baf459cdac537c42dbbe4024479324b.json
  38. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/f33bdeb33a2826b6aa9cf22a69640e0b3f39ad1113ad1e0a60f411de130d6512.json
  39. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/f39f12350bde1e69bde5a2d2b61c403a61d9bdd090e5cb6af5a4109e0cf9510d.json
  40. 11 10
      Frontend/RiffMasterFront/.idea/workspace.xml
  41. 8 19
      Frontend/RiffMasterFront/src/app/Services/auth.service.ts
  42. 48 52
      Frontend/RiffMasterFront/src/app/login-page/login-page.component.ts
  43. 1 1
      Frontend/RiffMasterFront/src/app/main-page/main-page.component.html

+ 39 - 27
Backend/Spring/.idea/workspace.xml

@@ -10,24 +10,20 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="8315de53-8c15-472c-a710-45938463dc02" name="Changes" comment="RIFFMASTER: add frontend files">
-      <change afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/proxy.conf.json" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/0.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/0.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/1.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/1.pack" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/10.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/10.pack" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/11.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/11.pack" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/2.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/2.pack" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/3.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/3.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/4.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/4.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/5.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/5.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/6.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/6.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/7.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/7.pack" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/8.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/8.pack" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/9.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/9.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack.old" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack.old" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/Services/auth.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/Services/auth.service.ts" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/login-page/login-page.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/login-page/login-page.component.ts" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/main-page/main-page.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/main-page/main-page.component.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/main-page/main-page.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/main-page/main-page.component.ts" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -38,8 +34,8 @@
     <option name="RECENT_TEMPLATES">
       <list>
         <option value="Interface" />
-        <option value="Class" />
         <option value="Jsp File" />
+        <option value="Class" />
       </list>
     </option>
   </component>
@@ -66,26 +62,26 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "RunOnceActivity.OpenProjectViewOnStart": "true",
-    "RunOnceActivity.ShowReadmeOnStart": "true",
-    "SHARE_PROJECT_CONFIGURATION_FILES": "true",
-    "WebServerToolWindowFactoryState": "false",
-    "last_opened_file_path": "C:/Users/Kuba/Desktop/studia/WPFt/inne/oslo_boating_project/boat-reservation-logic",
-    "node.js.detected.package.eslint": "true",
-    "node.js.detected.package.tslint": "true",
-    "node.js.selected.package.eslint": "(autodetect)",
-    "node.js.selected.package.tslint": "(autodetect)",
-    "nodejs_package_manager_path": "npm",
-    "project.structure.last.edited": "Artifacts",
-    "project.structure.proportion": "0.15",
-    "project.structure.side.proportion": "0.2",
-    "settings.editor.selected.configurable": "reference.settings.project.maven.repository.indices",
-    "spring.configuration.checksum": "38008dd81c2f4d7985ecf6e0ce8af1d1",
-    "vue.rearranger.settings.migration": "true"
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
+    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+    &quot;last_opened_file_path&quot;: &quot;C:/Users/Kuba/Desktop/studia/WPFt/RiffMaster web application/Backend/Spring&quot;,
+    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
+    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
+    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
+    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
+    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
+    &quot;project.structure.last.edited&quot;: &quot;Artifacts&quot;,
+    &quot;project.structure.proportion&quot;: &quot;0.15&quot;,
+    &quot;project.structure.side.proportion&quot;: &quot;0.2&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;reference.settings.project.maven.repository.indices&quot;,
+    &quot;spring.configuration.checksum&quot;: &quot;38008dd81c2f4d7985ecf6e0ce8af1d1&quot;,
+    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
   }
-}]]></component>
+}</component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
       <recent name="C:\Users\Kuba\Desktop\studia\WPFt\RiffMaster web application\Backend\Spring\src\main\java\pl\dmcs\jwoszczyk\RiffMaster" />
@@ -226,7 +222,9 @@
       <workItem from="1686678540338" duration="5114000" />
       <workItem from="1686746351506" duration="5669000" />
       <workItem from="1686758960546" duration="5072000" />
-      <workItem from="1686767581715" duration="4619000" />
+      <workItem from="1686767581715" duration="5877000" />
+      <workItem from="1686820558130" duration="622000" />
+      <workItem from="1686836941887" duration="13975000" />
     </task>
     <task id="LOCAL-00001" summary="add basic hello world and transfering data to server">
       <created>1679575346987</created>
@@ -469,6 +467,20 @@
           <line>88</line>
           <option name="timeStamp" value="1" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.java</url>
+          <line>38</line>
+          <option name="timeStamp" value="11" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-method">
+          <url>file://$PROJECT_DIR$/src/main/java/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.java</url>
+          <line>34</line>
+          <properties class="pl.dmcs.jwoszczyk.service.MyAppUserDetailsService" method="loadUserByUsername">
+            <option name="EMULATED" value="true" />
+            <option name="WATCH_EXIT" value="false" />
+          </properties>
+          <option name="timeStamp" value="9" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>

+ 1 - 0
Backend/Spring/pom.xml

@@ -106,6 +106,7 @@
         </dependency>
 
 
+
         <!--################################################################_boosstrap & RestController-->
         <dependency>
             <groupId>com.fasterxml.jackson.dataformat</groupId>

+ 7 - 1
Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.java

@@ -3,6 +3,7 @@ package pl.dmcs.jwoszczyk.configuration;
 import jakarta.annotation.Resource;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
 import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@@ -25,11 +26,14 @@ public class SecurityConfiguration {
     @Resource(name="myAppUserDetailsService")
     private UserDetailsService userDetailsService;
 
+
+
     @Bean
     public PasswordEncoder passwordEncoder() {
         return new BCryptPasswordEncoder();
     }
 
+
     @Bean
     DaoAuthenticationProvider authProvider(){
         DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
@@ -41,6 +45,7 @@ public class SecurityConfiguration {
         return authProvider;
     }
 
+
     //###############################################################################################
     @Bean
     public InMemoryUserDetailsManager userDetailsService() {
@@ -74,7 +79,8 @@ public class SecurityConfiguration {
 
         http.cors().and().csrf().disable()
                 .authorizeHttpRequests((authz) -> authz
-                        .requestMatchers("/song**").hasAnyRole("ADMIN", "USER")
+                        .requestMatchers("/riffmaster/login*").permitAll()
+                        .requestMatchers("/song**").permitAll()
                         .requestMatchers("/appUsers*").hasAnyRole("ADMIN", "USER")
                         .requestMatchers("/appUserRole*").hasRole("ADMIN")
                         .requestMatchers("/exampleOne*").hasAuthority("ROLE_USER")

+ 119 - 43
Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/AuthController.java

@@ -1,65 +1,141 @@
 package pl.dmcs.jwoszczyk.controller;
 
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import pl.dmcs.jwoszczyk.domain.AppUser;
-import pl.dmcs.jwoszczyk.repository.IAppUserRepository;
-import pl.dmcs.jwoszczyk.service.IAppUserRoleService;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import pl.dmcs.jwoszczyk.domain.LoginForm;
+
+
+import org.springframework.security.authentication.AuthenticationManager;
+import pl.dmcs.jwoszczyk.service.IAppUserService;
+import pl.dmcs.jwoszczyk.service.MyAppUserDetailsService;
+
 
 @RestController
-@RequestMapping("auth")
+@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
 public class AuthController {
 
-    //@Autowired
-    //private AuthenticationManager authenticationManager;
-
+    //#########################################################################_Dependency Injection
+    private UserDetailsService myAppUserDetailsService;
     @Autowired
-    private IAppUserRepository userRepository;
+    public AuthController(UserDetailsService myAppUserDetailsService) {
+        this.myAppUserDetailsService = myAppUserDetailsService;
+    }
+    //#########################################################################_
 
-    @Autowired
-    private PasswordEncoder passwordEncoder;
 
-    //@Autowired
-    //private TokenProvider tokenProvider;
+//    private MyAppUserDetailsService userDetailsService;
+//    private AuthenticationManager authenticationManager;
 
-//    @PostMapping("/login")
-//    public ResponseEntity<?> authenticateUser(@RequestBody LoginRequest loginRequest) {
-//        // Perform authentication
-//        Authentication authentication = authenticationManager.authenticate(
-//                new UsernamePasswordAuthenticationToken(loginRequest.getUsername(), loginRequest.getPassword()));
-//
-//        SecurityContextHolder.getContext().setAuthentication(authentication);
-//
-//        // Generate token
-//        String token = tokenProvider.generateToken(authentication);
-//
-//        // Return the token
-//        return ResponseEntity.ok(new JwtAuthenticationResponse(token));
+//    @Autowired
+//    public AuthController(MyAppUserDetailsService userDetailsService, AuthenticationManager authenticationManager) {
+//        this.userDetailsService = userDetailsService;
+//        this.authenticationManager = authenticationManager;
 //    }
 //
-//    @PostMapping("/register")
-//    public ResponseEntity<?> registerUser(@RequestBody SignUpRequest signUpRequest) {
-//        // Check if the username is already taken
-//        if (userRepository.existsByUsername(signUpRequest.getUsername())) {
-//            return ResponseEntity.badRequest().body("Username is already taken!");
-//        }
+//    @PostMapping("/riffmaster/login")
+//    public String login(@RequestParam("username") String username, @RequestParam("password") String password) {
+//        UserDetails userDetails = userDetailsService.loadUserByUsername(username);
 //
-//        // Create a new user
-//        AppUser user = new AppUser(signUpRequest.getUsername(), signUpRequest.getPassword());
-//        user.setPassword(passwordEncoder.encode(user.getPassword()));
+//        UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userDetails, password);
+//        Authentication authentication = authenticationManager.authenticate(authenticationToken);
 //
-//        // Save the user
-//        userRepository.save(user);
+//        SecurityContextHolder.getContext().setAuthentication(authentication);
 //
-//        return ResponseEntity.ok("User registered successfully!");
+//        // Perform any additional actions after successful login
+//        // ...
+//
+//        return "redirect:/dashboard"; // Redirect to the dashboard page after login
 //    }
+
+
+
+    @PostMapping("/riffmaster/login")
+    @ResponseBody
+    public ResponseEntity<?> login(@RequestBody LoginRequest loginRequest) {
+
+        System.out.println(" * login works (rest) login:" + loginRequest.getUsername() + " pass:" + loginRequest.getPassword());
+        //boolean loginSuccessful = performAuthentication(loginRequest); // Implement your authentication logic
+
+
+        myAppUserDetailsService.loadUserByUsername(loginRequest.getUsername());
+        LoginResponse loginResponse = new LoginResponse("session-id");
+        return ResponseEntity.ok(loginResponse);
+
+//        if (loginSuccessful)
+//        {
+//            LoginResponse loginResponse = new LoginResponse("session-id");
+//            return ResponseEntity.ok(loginResponse);
+//        }
+//        else
+//        {
+//            // Return unauthorized status and error message
+//            return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid username or password");
+//        }
+    }
+
+    // Other endpoints...
+
+    private boolean performAuthentication(LoginRequest loginRequest) {
+        String username = loginRequest.getUsername();
+        String password = loginRequest.getPassword();
+
+        // Example authentication logic
+        if(username.equals("admin") && password.equals("admin")){
+            return true;
+        }
+        else{
+            return false;
+        }
+    }
+
+    private static class LoginRequest {
+        private String username;
+
+        public String getUsername() {
+            return username;
+        }
+
+        public void setUsername(String username) {
+            this.username = username;
+        }
+
+        public String getPassword() {
+            return password;
+        }
+
+        public void setPassword(String password) {
+            this.password = password;
+        }
+
+        private String password;
+
+        // Getters and setters
+    }
+
+    private static class LoginResponse {
+        private String sessionId;
+
+        public String getSessionId() {
+            return sessionId;
+        }
+
+        public void setSessionId(String sessionId) {
+            this.sessionId = sessionId;
+        }
+
+        public LoginResponse(String sessionId) {
+            this.sessionId = sessionId;
+        }
+
+        // Getters and setters
+    }
 }

+ 5 - 1
Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/ExampleController.java

@@ -25,10 +25,14 @@ public class ExampleController {
 
     @RequestMapping(value = "/exampleThree")
     public String exampleThree() {
+
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        if (!(authentication instanceof AnonymousAuthenticationToken)) {
+
+        if (!(authentication instanceof AnonymousAuthenticationToken))
+        {
             System.out.println(authentication.getName());
         }
+
         return "exampleThree";
     }
 }

+ 32 - 7
Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.java

@@ -28,24 +28,45 @@ public class MyAppUserDetailsService implements UserDetailsService {
 	}
 	//#########################################################################_
 
+
+
 	@Transactional(readOnly=true)
 	@Override
-	public UserDetails loadUserByUsername(final String login) throws UsernameNotFoundException {
- 
+	public UserDetails loadUserByUsername(final String login) throws UsernameNotFoundException {//1
 		AppUser appUser = appUserService.findByLogin(login);
+
+		System.out.println("1) loadUserByUsername, login=" + login	);
+		System.out.println("                       appUser.login=" + appUser.getLogin());
+		System.out.println("                       appUser.role=" + appUser.getAppUserRole());
+
 		List<GrantedAuthority> authorities = buildUserAuthority(appUser.getAppUserRole());
 		return buildUserForAuthentication(appUser, authorities);
 	}
- 
+
+
+
+
+
 	// Converts AppUser user to org.springframework.security.core.userdetails.User
-	private User buildUserForAuthentication(AppUser appUser, List<GrantedAuthority> authorities) {
+	private User buildUserForAuthentication(AppUser appUser, List<GrantedAuthority> authorities) {//3
+
+		System.out.println("3) buildUserForAuthentication");
+		System.out.println("                       appUser.login=" + appUser.getLogin());
+		System.out.println("                       appUser.role=" + appUser.getAppUserRole());
+
+
 
 		return new User(appUser.getLogin(), appUser.getPassword(), appUser.isEnabled(),
 				true, true, true, authorities);
 	}
- 
-	private List<GrantedAuthority> buildUserAuthority(Set<AppUserRole> appUserRoles) {
- 
+
+
+
+
+
+	private List<GrantedAuthority> buildUserAuthority(Set<AppUserRole> appUserRoles) {//2
+		System.out.println("2) buildUserAuthority");
+
 		Set<GrantedAuthority> setAuths = new HashSet<GrantedAuthority>();
 		// Build user's authorities
 		for (AppUserRole appUserRole : appUserRoles) {
@@ -54,5 +75,9 @@ public class MyAppUserDetailsService implements UserDetailsService {
 		List<GrantedAuthority> result = new ArrayList<GrantedAuthority>(setAuths);
 		return result;
 	}
+
+
+
+
 }
 

BIN
Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.class


BIN
Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginRequest.class


BIN
Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginResponse.class


BIN
Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController.class


BIN
Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/ExampleController.class


BIN
Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.class


BIN
Backend/Spring/target/classes/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.class


BIN
Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginRequest.class


BIN
Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController$LoginResponse.class


BIN
Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController.class


BIN
Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/ExampleController.class


BIN
Backend/Spring/target/classes/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.class


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/0.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/1.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/2.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/3.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/4.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/5.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/6.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/7.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/8.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack.old


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/14c9ad60da80c5fe904df563577919e1c63435c47bc1340bb0df17d44b91d0bb.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/1babe065fa711bf44201283b46d1879392a5355c5533727fda93e3f044680c5f.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/29bbfdd5e880cc47a84976c55049a87149dd74265fb4e20845dc9b91bc0783ab.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/4e9d435ac0b9c8029d5087cae1d3cb4c60872f584439e7d0bfcfaeef6203b859.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/ae8aecff8b85c97da4f520fb725f340242c837940659c215ac0c15c339b6edc2.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/b5cf494a2d09464e0b508b6972043ce72b2a2c7074e6bb71fc7c46bd7468dfca.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/b94d8b85108c8525cb19252644448fe3f7ee42f4bfda753ec3e06935f9c27eed.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/d71eb062af5f237707c7290a113391589baf459cdac537c42dbbe4024479324b.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/f33bdeb33a2826b6aa9cf22a69640e0b3f39ad1113ad1e0a60f411de130d6512.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/f39f12350bde1e69bde5a2d2b61c403a61d9bdd090e5cb6af5a4109e0cf9510d.json


+ 11 - 10
Frontend/RiffMasterFront/.idea/workspace.xml

@@ -7,15 +7,14 @@
     <list default="true" id="d91bc08d-d968-4797-8fb3-ef602a37db2a" name="Changes" comment="RIFFMASTER: add frontend business logic (riff, song)">
       <change beforePath="$PROJECT_DIR$/../../Backend/Spring/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Backend/Spring/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/SongController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/SongController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/domain/Song.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/domain/Song.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/repository/IAppUserRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/repository/IAppUserRepository.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/SongController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/SongController.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/domain/Song.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/domain/Song.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/repository/IAppUserRepository.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/repository/IAppUserRepository.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/SongController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/SongController.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/domain/Song.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/domain/Song.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/repository/IAppUserRepository.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/repository/IAppUserRepository.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/configuration/SecurityConfiguration.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/AuthController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/AuthController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/ExampleController.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/controller/ExampleController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/src/main/java/pl/dmcs/jwoszczyk/service/MyAppUserDetailsService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/AuthController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/SpringSecurityCustomPagesController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/Spring-1.0-SNAPSHOT/WEB-INF/classes/pl/dmcs/jwoszczyk/controller/SpringSecurityCustomPagesController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/AuthController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/SpringSecurityCustomPagesController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../Backend/Spring/target/classes/pl/dmcs/jwoszczyk/controller/SpringSecurityCustomPagesController.class" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -102,7 +101,9 @@
       <workItem from="1686688295465" duration="464000" />
       <workItem from="1686746338385" duration="4134000" />
       <workItem from="1686758969361" duration="2784000" />
-      <workItem from="1686767850103" duration="2712000" />
+      <workItem from="1686767850103" duration="4090000" />
+      <workItem from="1686820564623" duration="521000" />
+      <workItem from="1686836939723" duration="2058000" />
     </task>
     <task id="LOCAL-00001" summary="RIFFMASTER: add frontend project">
       <created>1685976235580</created>

+ 8 - 19
Frontend/RiffMasterFront/src/app/Services/auth.service.ts

@@ -1,28 +1,17 @@
-import { HttpClient, HttpErrorResponse } from '@angular/common/http';
+import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 import { Observable, throwError } from 'rxjs';
 import { catchError, tap } from 'rxjs/operators';
 
 @Injectable({ providedIn: 'root' })
 export class AuthService {
-  private baseUrl = 'http://localhost:8080'; // Replace with your backend URL
+  private loginUrl = 'http://localhost:8080/login'; // Replace with your server login URL
 
-  constructor(private http: HttpClient) {}
+  constructor(private http: HttpClient) { }
 
-  login(email: string, password: string): Observable<any> {
-    const url = `${this.baseUrl}/login`;
-    const body = { email, password };
-
-    return this.http.post(url, body).pipe(
-      tap((response) => {
-        // Handle successful login, if needed
-        console.log('Logged in successfully.', response);
-      }),
-      catchError((error: HttpErrorResponse) => {
-        // Handle login error
-        console.error('Error while logging in:', error.error);
-        return throwError('Invalid username and password');
-      })
-    );
+  login(username: string, password: string) {
+    const headers = new HttpHeaders({ Authorization: 'Basic ' + btoa(username + ':' + password) });
+    console.log("logged in service");
+    return this.http.post(this.loginUrl, {}, { headers });
   }
-}
+}

+ 48 - 52
Frontend/RiffMasterFront/src/app/login-page/login-page.component.ts

@@ -10,49 +10,58 @@ import { HttpClient } from '@angular/common/http';
   styleUrls: ['./login-page.component.css']
 })
 export class LoginPageComponent{
-
-  //authService: any;
-
-
   userLogin: string = '';
   password: string = '';
-
-  // constructor(private injector: Injector, private router: Router) {
-  //   this.authService = this.injector.get(AuthService);
-  // }
-
-  // constructor(private authService: AuthService, private router: Router) {
-  // }
-
-  constructor(
-    private router: Router,
-    private http: HttpClient
-  ) { }
-
-  //#######################################################################
-
-  model: any = {};
-  sessionId: any = "";
+  constructor(private authService: AuthService, private router: Router) {
+  }
 
   login() {
-    let url = '/api/login';
-    this.http.post<any>(url, {
-      username: this.model.username,
-      password: this.model.password
-    }).subscribe(res => {
-      if (res) {
-        this.sessionId = res.sessionId;
-
-        sessionStorage.setItem(
-          'token',
-          this.sessionId
-        );
-        this.router.navigate(['']);
-      } else {
-        alert("Authentication failed.")
-      }
-    });
+    console.log('logowanie')
+    this.authService.login(this.userLogin, this.password)
+      .subscribe(
+        (response) => {
+          this.router.navigate(['/main']);
+          console.log('logged in successfully')
+        },
+        (error: string) => {
+          // Handle login error, e.g., display an error message
+          console.log('error')
+        }
+      );
   }
+  //#######################################################################
+
+  // constructor(
+  //   private router: Router,
+  //   private http: HttpClient
+  // ) { }
+  //
+  //
+  // model: any = {};
+  // sessionId: any = "";
+  //
+  // login() {
+  //
+  //   console.log('login from component');
+  //
+  //   let url = 'http://localhost:8080/login';
+  //   this.http.post<any>(url, {
+  //     username: this.model.username,
+  //     password: this.model.password
+  //   }).subscribe(res => {
+  //     if (res) {
+  //       this.sessionId = res.sessionId;
+  //
+  //       sessionStorage.setItem(
+  //         'token',
+  //         this.sessionId
+  //       );
+  //       this.router.navigate(['']);
+  //     } else {
+  //       alert("Authentication failed.")
+  //     }
+  //   });
+  // }
 
 
 
@@ -60,20 +69,7 @@ export class LoginPageComponent{
 
   //#######################################################################
 
-  // login() {
-  //   console.log('logowanie')
-  //   this.authService.login(this.userLogin, this.password)
-  //     .subscribe(
-  //       (response) => {
-  //         this.router.navigate(['/main']);
-  //         console.log('logged in successfully')
-  //       },
-  //       (error: string) => {
-  //         // Handle login error, e.g., display an error message
-  //         console.log('error')
-  //       }
-  //     );
-  // }
+
 
 
 }

+ 1 - 1
Frontend/RiffMasterFront/src/app/main-page/main-page.component.html

@@ -22,7 +22,7 @@
         <div class="song-list">
           <mat-list>
             <mat-list-item *ngFor="let song of songs" (click)="displaySongInformation(song)">
-              {{ song }}
+              {{ song.name }}
             </mat-list-item>
           </mat-list>
         </div>

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است