Skip to content

Commit e878c50

Browse files
committed
Merge branch 'master' into spring-security-5.1
2 parents 16ac830 + 0c63116 commit e878c50

6 files changed

Lines changed: 29 additions & 10 deletions

File tree

app/src/GroupList.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class GroupList extends Component {
7676
<div className="float-right">
7777
<Button color="success" tag={Link} to="/groups/new">Add Group</Button>
7878
</div>
79-
<h3>Java User Groups</h3>
79+
<h3>My JUG Tour</h3>
8080
<Table className="mt-4">
8181
<thead>
8282
<tr>

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@
7272
<artifactId>spring-boot-starter-test</artifactId>
7373
<scope>test</scope>
7474
</dependency>
75+
<dependency>
76+
<groupId>org.springframework.data</groupId>
77+
<artifactId>spring-data-rest-core</artifactId>
78+
<version>3.0.8.RELEASE</version>
79+
</dependency>
7580
</dependencies>
7681

7782
<build>

src/main/java/com/okta/developer/jugtours/model/Group.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.okta.developer.jugtours.model;
22

3-
import lombok.*;
3+
import lombok.Data;
4+
import lombok.NoArgsConstructor;
5+
import lombok.NonNull;
6+
import lombok.RequiredArgsConstructor;
47

58
import javax.persistence.*;
6-
import javax.validation.constraints.NotBlank;
7-
import javax.validation.constraints.NotNull;
89
import java.util.Set;
910

1011
@Data
@@ -24,6 +25,8 @@ public class Group {
2425
private String stateOrProvince;
2526
private String country;
2627
private String postalCode;
28+
@ManyToOne(cascade=CascadeType.ALL)
29+
private User user;
2730

2831
@OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
2932
private Set<Event> events;

src/main/java/com/okta/developer/jugtours/model/GroupRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import org.springframework.data.jpa.repository.JpaRepository;
44

5+
import java.util.List;
6+
57
public interface GroupRepository extends JpaRepository<Group, Long> {
68
Group findByName(String name);
9+
List<Group> findAllByUserName(String name);
710
}

src/main/java/com/okta/developer/jugtours/model/User.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import lombok.NoArgsConstructor;
66

77
import javax.persistence.Entity;
8-
import javax.persistence.GeneratedValue;
98
import javax.persistence.Id;
109

1110
@Data
@@ -15,8 +14,7 @@
1514
public class User {
1615

1716
@Id
18-
@GeneratedValue
19-
private Long id;
17+
private String id;
2018
private String name;
2119
private String email;
2220
}

src/main/java/com/okta/developer/jugtours/web/GroupController.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@
22

33
import com.okta.developer.jugtours.model.Group;
44
import com.okta.developer.jugtours.model.GroupRepository;
5+
import com.okta.developer.jugtours.model.User;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
78
import org.springframework.http.HttpStatus;
89
import org.springframework.http.ResponseEntity;
10+
import org.springframework.security.core.context.SecurityContextHolder;
11+
import org.springframework.security.oauth2.provider.OAuth2Authentication;
912
import org.springframework.web.bind.annotation.*;
1013

1114
import javax.validation.Valid;
1215
import java.net.URI;
1316
import java.net.URISyntaxException;
17+
import java.security.Principal;
1418
import java.util.Collection;
19+
import java.util.Map;
1520
import java.util.Optional;
1621

1722
@RestController
@@ -26,8 +31,8 @@ public GroupController(GroupRepository repository) {
2631
}
2732

2833
@GetMapping("/groups")
29-
Collection<Group> groups() {
30-
return repository.findAll();
34+
Collection<Group> groups(Principal principal) {
35+
return repository.findAllByUserName(principal.getName());
3136
}
3237

3338
@GetMapping("/group/{id}")
@@ -38,8 +43,13 @@ ResponseEntity<?> getGroup(@PathVariable Long id) {
3843
}
3944

4045
@PostMapping("/group")
41-
ResponseEntity<Group> createGroup(@Valid @RequestBody Group group) throws URISyntaxException {
46+
ResponseEntity<Group> createGroup(@Valid @RequestBody Group group, Principal principal) throws URISyntaxException {
4247
log.info("Request to create group: {}", group);
48+
OAuth2Authentication authentication = (OAuth2Authentication) principal;
49+
Map<String, Object> details = (Map<String, Object>) authentication.getUserAuthentication().getDetails();
50+
User user = new User(details.get("sub").toString(),
51+
details.get("name").toString(), details.get("email").toString());
52+
group.setUser(user);
4353
Group result = repository.save(group);
4454
return ResponseEntity.created(new URI("/api/group/" + result.getId()))
4555
.body(result);

0 commit comments

Comments
 (0)