Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 16cc2a7

Browse files
author
Ivan Franchin
committed
Project update
- use PasswordEncoderFactories.createDelegatingPasswordEncoder(); instead of new BCryptPasswordEncoder(); - rename WebSecurityConfig to SecurityConfig; - remave public keyword from Beans; - update README.
1 parent 0d88bfc commit 16cc2a7

File tree

9 files changed

+22
-42
lines changed

9 files changed

+22
-42
lines changed

‎README.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ On [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-C
99
## Additional Readings
1010

1111
- \[**Medium**\] [**Implementing A Full Stack Web App Using Spring-Boot and React**](https://medium.com/@ivangfr/implementing-a-full-stack-web-app-using-spring-boot-and-react-7db598df4452)
12-
- \[**Medium**\] [**Implementing Social Login in a Spring Boot and ReactApp**](https://medium.com/@ivangfr/implementing-social-login-in-a-spring-boot-and-react-app-6ce073c9983c)
12+
- \[**Medium**\] [**Implementing Social Login in a Spring Boot and ReactApp**](https://medium.com/@ivangfr/implementing-social-login-in-a-spring-boot-and-react-app-6ce073c9983c)
1313
- \[**Medium**\] [**Building a Web Chat with Social Login using Spring Boot: Introduction**](https://medium.com/@ivangfr/building-a-web-chat-with-social-login-using-spring-boot-introduction-644702e6be8e)
1414
- \[**Medium**\] [**Building a Single Spring Boot App with Keycloak or Okta as IdP: Introduction**](https://medium.com/@ivangfr/building-a-single-spring-boot-app-with-keycloak-or-okta-as-idp-introduction-2814a4829aed)
1515

@@ -59,7 +59,7 @@ On [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-C
5959

6060
## Start Environment
6161

62-
- In a terminal, make sure you are inside `springboot-react-basic-auth` root folder;
62+
- In a terminal, make sure you are inside the `springboot-react-basic-auth` root folder;
6363

6464
- Run the following command to start docker compose containers:
6565
```
@@ -70,7 +70,7 @@ On [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-C
7070

7171
- **book-api**
7272

73-
- Open a terminal and navigate to `springboot-react-basic-auth/book-api` folder;
73+
- Open a terminal and navigate to the `springboot-react-basic-auth/book-api` folder;
7474

7575
- Run the following `Maven` command to start the application:
7676
```
@@ -79,7 +79,7 @@ On [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-C
7979
8080
- **book-ui**
8181
82-
- Open another terminal and navigate to `springboot-react-basic-auth/book-ui` folder;
82+
- Open another terminal and navigate to the `springboot-react-basic-auth/book-ui` folder;
8383
8484
- Run the command below if you are running the application for the first time:
8585
```
@@ -184,7 +184,7 @@ On [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-C
184184
185185
- **Automatic Endpoints Test**
186186
187-
- Open a terminal and make sure you are in `springboot-react-basic-auth` root folder;
187+
- Open a terminal and make sure you are in the `springboot-react-basic-auth` root folder;
188188
189189
- Run the following script:
190190
```
@@ -235,14 +235,14 @@ On [ivangfr.github.io](https://ivangfr.github.io), I have compiled my Proof-of-C
235235
236236
- To stop `book-api` and `book-ui`, go to the terminals where they are running and press `Ctrl+C`;
237237
238-
- To stop and remove docker compose containers, network and volumes, go to a terminal and, inside `springboot-react-basic-auth` root folder, run the command below:
238+
- To stop and remove docker compose containers, network and volumes, go to a terminal and, inside the `springboot-react-basic-auth` root folder, run the command below:
239239
```
240240
docker compose down -v
241241
```
242242
243243
## How to upgrade book-ui dependencies to latest version
244244
245-
- In a terminal, make sure you are in `springboot-react-basic-auth/book-ui` folder;
245+
- In a terminal, make sure you are in the `springboot-react-basic-auth/book-ui` folder;
246246
247247
- Run the following commands:
248248
```

‎book-api/src/main/java/com/ivanfranchin/bookapi/config/ErrorAttributesConfig.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class ErrorAttributesConfig {
1515

1616
@Bean
17-
publicErrorAttributes errorAttributes() {
17+
ErrorAttributes errorAttributes() {
1818
return new DefaultErrorAttributes() {
1919
@Override
2020
public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {

‎book-api/src/main/java/com/ivanfranchin/bookapi/config/SwaggerConfig.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class SwaggerConfig {
1515
private String applicationName;
1616

1717
@Bean
18-
publicOpenAPI customOpenAPI() {
18+
OpenAPI customOpenAPI() {
1919
return new OpenAPI()
2020
.components(
2121
new Components().addSecuritySchemes(BASIC_AUTH_SECURITY_SCHEME,

‎book-api/src/main/java/com/ivanfranchin/bookapi/rest/AuthController.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.ivanfranchin.bookapi.rest.dto.AuthResponse;
66
import com.ivanfranchin.bookapi.rest.dto.LoginRequest;
77
import com.ivanfranchin.bookapi.rest.dto.SignUpRequest;
8-
import com.ivanfranchin.bookapi.security.WebSecurityConfig;
8+
import com.ivanfranchin.bookapi.security.SecurityConfig;
99
import com.ivanfranchin.bookapi.service.UserService;
1010
import jakarta.validation.Valid;
1111
import lombok.RequiredArgsConstructor;
@@ -56,7 +56,7 @@ private User createUser(SignUpRequest signUpRequest) {
5656
user.setPassword(signUpRequest.getPassword());
5757
user.setName(signUpRequest.getName());
5858
user.setEmail(signUpRequest.getEmail());
59-
user.setRole(WebSecurityConfig.USER);
59+
user.setRole(SecurityConfig.USER);
6060
return user;
6161
}
6262
}

‎book-api/src/main/java/com/ivanfranchin/bookapi/runner/DatabaseInitializer.java‎

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

33
import com.ivanfranchin.bookapi.model.Book;
44
import com.ivanfranchin.bookapi.model.User;
5-
import com.ivanfranchin.bookapi.security.WebSecurityConfig;
5+
import com.ivanfranchin.bookapi.security.SecurityConfig;
66
import com.ivanfranchin.bookapi.service.BookService;
77
import com.ivanfranchin.bookapi.service.UserService;
88
import lombok.RequiredArgsConstructor;
@@ -40,8 +40,8 @@ private List<Book> getBooks() {
4040
}
4141

4242
private static final List<User> USERS = Arrays.asList(
43-
new User("admin", "admin", "Admin", "admin@mycompany.com", WebSecurityConfig.ADMIN),
44-
new User("user", "user", "User", "user@mycompany.com", WebSecurityConfig.USER)
43+
new User("admin", "admin", "Admin", "admin@mycompany.com", SecurityConfig.ADMIN),
44+
new User("user", "user", "User", "user@mycompany.com", SecurityConfig.USER)
4545
);
4646

4747
private static final String BOOKS_STR =

‎book-api/src/main/java/com/ivanfranchin/bookapi/security/CorsConfig.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class CorsConfig {
1414

1515
@Bean
16-
publicCorsConfigurationSource corsConfigurationSource(@Value("${app.cors.allowed-origins}") List<String> allowedOrigins) {
16+
CorsConfigurationSource corsConfigurationSource(@Value("${app.cors.allowed-origins}") List<String> allowedOrigins) {
1717
CorsConfiguration configuration = new CorsConfiguration();
1818
configuration.setAllowCredentials(true);
1919
configuration.setAllowedOrigins(allowedOrigins);

‎book-api/src/main/java/com/ivanfranchin/bookapi/security/CustomUserDetails.java‎

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,4 @@ public String getPassword() {
3030
public String getUsername() {
3131
return username;
3232
}
33-
34-
@Override
35-
public boolean isAccountNonExpired() {
36-
return true;
37-
}
38-
39-
@Override
40-
public boolean isAccountNonLocked() {
41-
return true;
42-
}
43-
44-
@Override
45-
public boolean isCredentialsNonExpired() {
46-
return true;
47-
}
48-
49-
@Override
50-
public boolean isEnabled() {
51-
return true;
52-
}
5333
}

‎book-api/src/main/java/com/ivanfranchin/bookapi/security/WebSecurityConfig.java‎ renamed to ‎book-api/src/main/java/com/ivanfranchin/bookapi/security/SecurityConfig.java‎

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
88
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
99
import org.springframework.security.config.http.SessionCreationPolicy;
10-
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
10+
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
1111
import org.springframework.security.crypto.password.PasswordEncoder;
1212
import org.springframework.security.web.SecurityFilterChain;
1313

1414
@Configuration
15-
public class WebSecurityConfig {
15+
public class SecurityConfig {
1616

1717
@Bean
18-
publicSecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
18+
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
1919
return http
2020
.authorizeHttpRequests(authorizeHttpRequests -> authorizeHttpRequests
2121
.requestMatchers(HttpMethod.GET, "/api/books", "/api/books/**").hasAnyAuthority(ADMIN, USER)
@@ -27,14 +27,13 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
2727
.anyRequest().authenticated())
2828
.httpBasic(Customizer.withDefaults())
2929
.sessionManagement(sessionManagement -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
30-
.cors(Customizer.withDefaults())
3130
.csrf(AbstractHttpConfigurer::disable)
3231
.build();
3332
}
3433

3534
@Bean
36-
publicPasswordEncoder passwordEncoder() {
37-
return newBCryptPasswordEncoder();
35+
PasswordEncoder passwordEncoder() {
36+
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
3837
}
3938

4039
public static final String ADMIN = "ADMIN";

‎book-api/src/main/java/com/ivanfranchin/bookapi/security/UserDetailsServiceImpl.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ public class UserDetailsServiceImpl implements UserDetailsService {
2020

2121
@Override
2222
public UserDetails loadUserByUsername(String username) {
23-
User user = userService.getUserByUsername(username).orElseThrow(() -> new UsernameNotFoundException(String.format("Username %s not found", username)));
23+
User user = userService.getUserByUsername(username)
24+
.orElseThrow(() -> new UsernameNotFoundException(String.format("Username %s not found", username)));
2425
List<SimpleGrantedAuthority> authorities = Collections.singletonList(new SimpleGrantedAuthority(user.getRole()));
2526
return mapUserToCustomUserDetails(user, authorities);
2627
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /