Skip to content

Commit 279ccd2

Browse files
author
Eugen
committed
security and rest work
1 parent 66f6623 commit 279ccd2

7 files changed

Lines changed: 153 additions & 2 deletions

File tree

spring-security-rest/.settings/org.eclipse.jdt.core.prefs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
4242
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
4343
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
4444
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
45-
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
45+
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
4646
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
4747
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
4848
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning

spring-security-rest/pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@
8888
<scope>runtime</scope>
8989
</dependency>
9090

91+
<!-- util -->
92+
93+
<dependency>
94+
<groupId>com.google.guava</groupId>
95+
<artifactId>guava</artifactId>
96+
<version>14.0.1</version>
97+
</dependency>
98+
9199
<!-- test scoped -->
92100

93101
<dependency>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.baeldung.persistence.service;
2+
3+
import org.baeldung.web.dto.Foo;
4+
import org.springframework.stereotype.Service;
5+
6+
@Service
7+
public class FooService {
8+
9+
public FooService() {
10+
super();
11+
}
12+
13+
// API
14+
15+
public Foo getById(final Long id) {
16+
return null;
17+
}
18+
19+
public Long create(final Foo resource) {
20+
return null;
21+
}
22+
23+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.baeldung.spring.config;
2+
3+
import org.springframework.context.annotation.ComponentScan;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@ComponentScan("org.baeldung.persistence")
8+
public class PersistenceConfig {
9+
10+
public PersistenceConfig() {
11+
super();
12+
}
13+
14+
}
Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,50 @@
11
package org.baeldung.web.controller;
22

3+
import javax.servlet.http.HttpServletRequest;
4+
import javax.servlet.http.HttpServletResponse;
5+
6+
import org.baeldung.persistence.service.FooService;
7+
import org.baeldung.web.dto.Foo;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.context.ApplicationEventPublisher;
10+
import org.springframework.http.HttpStatus;
311
import org.springframework.stereotype.Controller;
12+
import org.springframework.web.bind.annotation.PathVariable;
13+
import org.springframework.web.bind.annotation.RequestBody;
14+
import org.springframework.web.bind.annotation.RequestMapping;
15+
import org.springframework.web.bind.annotation.RequestMethod;
16+
import org.springframework.web.bind.annotation.ResponseBody;
17+
import org.springframework.web.bind.annotation.ResponseStatus;
18+
19+
import com.google.common.base.Preconditions;
420

521
@Controller
622
public class FooController {
7-
//
23+
24+
@Autowired
25+
private FooService service;
26+
27+
@Autowired
28+
private ApplicationEventPublisher eventPublisher;
29+
30+
// API
31+
32+
@RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET)
33+
@ResponseBody
34+
public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) {
35+
final Foo resourceById = Preconditions.checkNotNull(service.getById(id));
36+
37+
eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response));
38+
return resourceById;
39+
}
40+
41+
@RequestMapping(value = "admin/foo", method = RequestMethod.POST)
42+
@ResponseStatus(HttpStatus.CREATED)
43+
public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) {
44+
Preconditions.checkNotNull(resource);
45+
final Long idOfCreatedResource = service.create(resource);
46+
47+
eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource));
48+
}
49+
850
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.baeldung.web.controller;
2+
3+
import javax.servlet.http.HttpServletRequest;
4+
import javax.servlet.http.HttpServletResponse;
5+
6+
import org.springframework.context.ApplicationEvent;
7+
8+
public class ResourceCreated extends ApplicationEvent {
9+
private final HttpServletResponse response;
10+
private final HttpServletRequest request;
11+
private final long idOfCreatedResource;
12+
13+
public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfCreatedResource) {
14+
super(source);
15+
16+
this.request = request;
17+
this.response = response;
18+
this.idOfCreatedResource = idOfCreatedResource;
19+
}
20+
21+
// API
22+
23+
public HttpServletResponse getResponse() {
24+
return response;
25+
}
26+
27+
public HttpServletRequest getRequest() {
28+
return request;
29+
}
30+
31+
public long getIdOfCreatedResource() {
32+
return idOfCreatedResource;
33+
}
34+
35+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.baeldung.web.controller;
2+
3+
import javax.servlet.http.HttpServletRequest;
4+
import javax.servlet.http.HttpServletResponse;
5+
6+
import org.springframework.context.ApplicationEvent;
7+
8+
public class SingleResourceRetrieved extends ApplicationEvent {
9+
private final HttpServletResponse response;
10+
private final HttpServletRequest request;
11+
12+
public SingleResourceRetrieved(final Object source, final HttpServletRequest request, final HttpServletResponse response) {
13+
super(source);
14+
15+
this.request = request;
16+
this.response = response;
17+
}
18+
19+
// API
20+
21+
public HttpServletResponse getResponse() {
22+
return response;
23+
}
24+
25+
public HttpServletRequest getRequest() {
26+
return request;
27+
}
28+
29+
}

0 commit comments

Comments
 (0)