@@ -31,6 +31,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.core.userdetails.User;
|
||||
import org.springframework.security.core.userdetails.User.UserBuilder;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
|
||||
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
||||
|
||||
/**
|
||||
@@ -88,10 +89,10 @@ public class Application {
|
||||
@Bean
|
||||
InMemoryUserDetailsManager userDetailsManager() {
|
||||
|
||||
UserBuilder builder = User.withDefaultPasswordEncoder();
|
||||
var builder = User.builder().passwordEncoder(PasswordEncoderFactories.createDelegatingPasswordEncoder()::encode);
|
||||
|
||||
UserDetails greg = builder.username("greg").password("turnquist").roles("USER").build();
|
||||
UserDetails ollie = builder.username("ollie").password("gierke").roles("USER", "ADMIN").build();
|
||||
var greg = builder.username("greg").password("turnquist").roles("USER").build();
|
||||
var ollie = builder.username("ollie").password("gierke").roles("USER", "ADMIN").build();
|
||||
|
||||
return new InMemoryUserDetailsManager(greg, ollie);
|
||||
}
|
||||
|
||||
@@ -26,6 +26,9 @@ import org.springframework.security.access.AccessDeniedException;
|
||||
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.fail;
|
||||
|
||||
/**
|
||||
* Collection of test cases used to verify method-level security.
|
||||
*
|
||||
@@ -96,7 +99,7 @@ class MethodLevelSecurityTests {
|
||||
|
||||
itemRepository.findAll();
|
||||
|
||||
Item item = itemRepository.save(new Item("MacBook Pro"));
|
||||
var item = itemRepository.save(new Item("MacBook Pro"));
|
||||
|
||||
itemRepository.deleteById(item.getId());
|
||||
}
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
*/
|
||||
package example.springdata.rest.security;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.MatcherAssert.*;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
||||
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*;
|
||||
@@ -85,7 +84,7 @@ class UrlLevelSecurityTests {
|
||||
@Test
|
||||
void allowsGetRequestsButRejectsPostForUser() throws Exception {
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
var headers = new HttpHeaders();
|
||||
headers.add(HttpHeaders.ACCEPT, MediaTypes.HAL_JSON_VALUE);
|
||||
headers.add(HttpHeaders.AUTHORIZATION,
|
||||
"Basic " + new String(Base64.getEncoder().encodeToString(("greg:turnquist").getBytes())));
|
||||
@@ -103,7 +102,7 @@ class UrlLevelSecurityTests {
|
||||
@Test
|
||||
void allowsPostRequestForAdmin() throws Exception {
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
var headers = new HttpHeaders();
|
||||
headers.set(HttpHeaders.ACCEPT, MediaTypes.HAL_JSON_VALUE);
|
||||
headers.set(HttpHeaders.AUTHORIZATION,
|
||||
"Basic " + new String(Base64.getEncoder().encodeToString(("ollie:gierke").getBytes())));
|
||||
@@ -115,20 +114,20 @@ class UrlLevelSecurityTests {
|
||||
|
||||
headers.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
|
||||
|
||||
String location = mvc.perform(post("/employees").//
|
||||
var location = mvc.perform(post("/employees").//
|
||||
content(PAYLOAD).//
|
||||
headers(headers)).//
|
||||
andExpect(status().isCreated()).//
|
||||
andReturn().getResponse().getHeader(HttpHeaders.LOCATION);
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
var mapper = new ObjectMapper();
|
||||
|
||||
String content = mvc.perform(get(location)).//
|
||||
var content = mvc.perform(get(location)).//
|
||||
andReturn().getResponse().getContentAsString();
|
||||
Employee employee = mapper.readValue(content, Employee.class);
|
||||
var employee = mapper.readValue(content, Employee.class);
|
||||
|
||||
assertThat(employee.getFirstName(), is("Saruman"));
|
||||
assertThat(employee.getLastName(), is("the White"));
|
||||
assertThat(employee.getTitle(), is("Wizard"));
|
||||
assertThat(employee.getFirstName()).isEqualTo("Saruman");
|
||||
assertThat(employee.getLastName()).isEqualTo("the White");
|
||||
assertThat(employee.getTitle()).isEqualTo("Wizard");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user