Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
fca69af
"Pushing the data"
basnetaakash23 Jul 16, 2022
87a784d
Update README.md
basnetaakash23 Jul 16, 2022
dc0e18e
Merge branch 'master' into feature_branch
basnetaakash23 Jul 16, 2022
217ae6d
Update README.md
basnetaakash23 Jul 16, 2022
663025a
Merge branch 'master' into feature_branch
basnetaakash23 Jul 16, 2022
02025a4
Update README.md
basnetaakash23 Jul 16, 2022
292dfbe
Merge branch 'master' into feature_branch
basnetaakash23 Jul 16, 2022
d950b17
Update README.md
basnetaakash23 Jul 16, 2022
5d59197
Merge branch 'master' into feature_branch
basnetaakash23 Jul 16, 2022
f795d39
"Pushing some information in README.md"
basnetaakash23 Jul 16, 2022
e69a4e9
Update README.md
basnetaakash23 Jul 17, 2022
303742c
"Pushing the data"
basnetaakash23 Jul 16, 2022
4765b05
"Pushing some information in README.md"
basnetaakash23 Jul 16, 2022
09ba85f
Merge remote-tracking branch 'origin/master' into feature_branch
basnetaakash23 Jul 17, 2022
8b2e96b
Merge branch 'master' into feature_branch
basnetaakash23 Jul 17, 2022
074f9ce
Update README.md
basnetaakash23 Jul 17, 2022
aea7d3a
Merge remote-tracking branch 'origin/master'
basnetaakash23 Jul 17, 2022
19f4c0f
"Pushing some information in README.md"
basnetaakash23 Jul 17, 2022
4ed0021
Update README.md
basnetaakash23 Jul 17, 2022
df93155
Update README.md
basnetaakash23 Jul 17, 2022
9da170f
Merge branch 'master' into feature_branch
basnetaakash23 Jul 17, 2022
fbede19
"Pushing some information in README.md"
basnetaakash23 Jul 17, 2022
9b8962f
Update README.md
basnetaakash23 Jul 17, 2022
0ef729b
Merge branch 'master' into feature_branch
basnetaakash23 Jul 17, 2022
2a92f95
Update README.md
basnetaakash23 Jul 17, 2022
825aab6
Merge branch 'master' into feature_branch
basnetaakash23 Jul 17, 2022
2f2c864
"Pushing some information in README.md"
basnetaakash23 Jul 17, 2022
59627e6
Update README.md
basnetaakash23 Jul 17, 2022
922fb93
Update README.md
basnetaakash23 Jul 17, 2022
1cae0a2
Merge remote-tracking branch 'origin/master'
basnetaakash23 Jul 17, 2022
deb9070
Update README.md
basnetaakash23 Jul 17, 2022
fcd7c64
New change in readme
basnetaakash23 Jul 17, 2022
9e8a215
Update README.md
basnetaakash23 Jul 17, 2022
22e720b
"Pushing some information in README.md"
basnetaakash23 Jul 17, 2022
bfaa3b9
Merge remote-tracking branch 'origin/master'
basnetaakash23 Jul 17, 2022
8e9193f
Merge branch 'master' into feature_branch
basnetaakash23 Jul 17, 2022
bbe9656
"Pushing some information in README.md"
basnetaakash23 Jul 17, 2022
2ad76d4
Update README.md
basnetaakash23 Jul 17, 2022
ba12ca1
Merge pull request #1 from basnetaakash23/feature_branch
basnetaakash23 Jul 17, 2022
673d5ff
Update README.md
basnetaakash23 Jul 17, 2022
47f8fe2
Readme data
basnetaakash23 Jul 17, 2022
d895ea3
Update README.md
basnetaakash23 Jul 17, 2022
759b48a
Update README.md
basnetaakash23 Jul 17, 2022
25259d0
Line 54 changes
basnetaakash23 Jul 17, 2022
79451aa
Line 60
basnetaakash23 Jul 17, 2022
e543d7d
"Pushing some information in README.md"
basnetaakash23 Jul 20, 2022
d6cc479
just
basnetaakash23 Jul 28, 2022
769daee
"Pushing some information in README.md"
basnetaakash23 Jul 28, 2022
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,35 @@ Run both Back-end & Front-end in one place:
```
mvn spring-boot:run
```
Redoing it again using command line. ok lets do.

Working on a line 50.

Working on a line 52.
Working on a line 53 in master.
Working on line 54 for rebase.

Working on line 56 for a rebase.

Working on a line 54 on feature branch.

working on line 60.

Working on a line 54 on feature branch.

working on line 60.

Working on 62.

Working on line 68.
....
....
....
....
....
....





6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import javax.validation.Valid;

import com.bezkoder.spring.security.mongodb.payload.response.JwtResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseCookie;
Expand Down Expand Up @@ -63,17 +64,16 @@ public ResponseEntity<?> authenticateUser(@Valid @RequestBody LoginRequest login

UserDetailsImpl userDetails = (UserDetailsImpl) authentication.getPrincipal();

ResponseCookie jwtCookie = jwtUtils.generateJwtCookie(userDetails);
String jwtCookie = jwtUtils.generateJwtCookie(authentication);

List<String> roles = userDetails.getAuthorities().stream()
.map(item -> item.getAuthority())
.collect(Collectors.toList());
// List<String> roles = userDetails.getAuthorities().stream()
// .map(item -> item.getAuthority())
// .collect(Collectors.toList());

return ResponseEntity.ok().header(HttpHeaders.SET_COOKIE, jwtCookie.toString())
.body(new UserInfoResponse(userDetails.getId(),
userDetails.getUsername(),
userDetails.getEmail(),
roles));
return ResponseEntity.ok(new JwtResponse(jwtCookie,
userDetails.getId(),
userDetails.getUsername(),
userDetails.getEmail()));
}

@PostMapping("/signup")
Expand All @@ -95,37 +95,37 @@ public ResponseEntity<?> registerUser(@Valid @RequestBody SignupRequest signUpRe
signUpRequest.getEmail(),
encoder.encode(signUpRequest.getPassword()));

Set<String> strRoles = signUpRequest.getRoles();
Set<Role> roles = new HashSet<>();

if (strRoles == null) {
Role userRole = roleRepository.findByName(ERole.ROLE_USER)
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
roles.add(userRole);
} else {
strRoles.forEach(role -> {
switch (role) {
case "admin":
Role adminRole = roleRepository.findByName(ERole.ROLE_ADMIN)
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
roles.add(adminRole);

break;
case "mod":
Role modRole = roleRepository.findByName(ERole.ROLE_MODERATOR)
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
roles.add(modRole);

break;
default:
Role userRole = roleRepository.findByName(ERole.ROLE_USER)
.orElseThrow(() -> new RuntimeException("Error: Role is not found."));
roles.add(userRole);
}
});
}

user.setRoles(roles);
// Set<String> strRoles = signUpRequest.getRoles();
// Set<Role> roles = new HashSet<>();
//
// if (strRoles == null) {
// Role userRole = roleRepository.findByName(ERole.ROLE_USER)
// .orElseThrow(() -> new RuntimeException("Error: Role is not found."));
// roles.add(userRole);
// } else {
// strRoles.forEach(role -> {
// switch (role) {
// case "admin":
// Role adminRole = roleRepository.findByName(ERole.ROLE_ADMIN)
// .orElseThrow(() -> new RuntimeException("Error: Role is not found."));
// roles.add(adminRole);
//
// break;
// case "mod":
// Role modRole = roleRepository.findByName(ERole.ROLE_MODERATOR)
// .orElseThrow(() -> new RuntimeException("Error: Role is not found."));
// roles.add(modRole);
//
// break;
// default:
// Role userRole = roleRepository.findByName(ERole.ROLE_USER)
// .orElseThrow(() -> new RuntimeException("Error: Role is not found."));
// roles.add(userRole);
// }
// });
// }
//
// user.setRoles(roles);
userRepository.save(user);

return ResponseEntity.ok(new MessageResponse("User registered successfully!"));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package com.bezkoder.spring.security.mongodb.controllers;public class TodoController {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package com.bezkoder.spring.security.mongodb.models;public class Todo {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package com.bezkoder.spring.security.mongodb.payload.response;public class JwtResponse {
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class UserInfoResponse {
private String email;
private List<String> roles;

public UserInfoResponse(String id, String username, String email, List<String> roles) {
public UserInfoResponse(String id, String username, String email) {
this.id = id;
this.username = username;
this.email = email;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package com.bezkoder.spring.security.mongodb.repository;public interface TodoRepository {
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;

import com.bezkoder.spring.security.mongodb.security.services.UserDetailsServiceImpl;
Expand Down Expand Up @@ -50,7 +51,11 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
}

private String parseJwt(HttpServletRequest request) {
String jwt = jwtUtils.getJwtFromCookies(request);
return jwt;
String headerAuth = request.getHeader("Authorization");
if (StringUtils.hasText(headerAuth) && headerAuth.startsWith("Bearer ")) {
return headerAuth.substring(7, headerAuth.length());
}
return null;
}
}
}

10 changes: 5 additions & 5 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
spring.data.mongodb.database=bezkoder_db
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.uri=mongodb+srv://aakash23:imesh100@mycluster.ixv47ta.mongodb.net/?retryWrites=true&w=majority
spring.data.mongodb.database=todos
spring.mvc.dispatch-options-request=true

# App Properties
bezkoder.app.jwtCookieName= bezkoder
bezkoder.app.jwtSecret= bezKoderSecretKey
bezkoder.app.jwtCookieName= aakash23
bezkoder.app.jwtSecret= springbootversion2
bezkoder.app.jwtExpirationMs= 86400000