diff --git a/pom.xml b/pom.xml
index b39061d..42aeccb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.7.3
+ 3.0.5
com.bezkoder
@@ -16,7 +16,7 @@
Demo project for Spring Boot Security - JWT
- 1.8
+ 17
@@ -41,8 +41,8 @@
- mysql
- mysql-connector-java
+ com.mysql
+ mysql-connector-j
runtime
diff --git a/src/main/java/com/bezkoder/springjwt/controllers/AuthController.java b/src/main/java/com/bezkoder/springjwt/controllers/AuthController.java
index 4287ba1..f386ae3 100644
--- a/src/main/java/com/bezkoder/springjwt/controllers/AuthController.java
+++ b/src/main/java/com/bezkoder/springjwt/controllers/AuthController.java
@@ -1,25 +1,5 @@
package com.bezkoder.springjwt.controllers;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import javax.validation.Valid;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
import com.bezkoder.springjwt.models.ERole;
import com.bezkoder.springjwt.models.Role;
import com.bezkoder.springjwt.models.User;
@@ -31,6 +11,20 @@
import com.bezkoder.springjwt.repository.UserRepository;
import com.bezkoder.springjwt.security.jwt.JwtUtils;
import com.bezkoder.springjwt.security.services.UserDetailsImpl;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
diff --git a/src/main/java/com/bezkoder/springjwt/models/Role.java b/src/main/java/com/bezkoder/springjwt/models/Role.java
index abf816e..2cb87e2 100644
--- a/src/main/java/com/bezkoder/springjwt/models/Role.java
+++ b/src/main/java/com/bezkoder/springjwt/models/Role.java
@@ -1,6 +1,6 @@
package com.bezkoder.springjwt.models;
-import javax.persistence.*;
+import jakarta.persistence.*;
@Entity
@Table(name = "roles")
@@ -36,4 +36,4 @@ public ERole getName() {
public void setName(ERole name) {
this.name = name;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/bezkoder/springjwt/models/User.java b/src/main/java/com/bezkoder/springjwt/models/User.java
index 9f03ab1..d11d6ef 100644
--- a/src/main/java/com/bezkoder/springjwt/models/User.java
+++ b/src/main/java/com/bezkoder/springjwt/models/User.java
@@ -1,13 +1,13 @@
package com.bezkoder.springjwt.models;
+import jakarta.persistence.*;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+
import java.util.HashSet;
import java.util.Set;
-import javax.persistence.*;
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-
@Entity
@Table(name = "users",
uniqueConstraints = {
diff --git a/src/main/java/com/bezkoder/springjwt/payload/request/LoginRequest.java b/src/main/java/com/bezkoder/springjwt/payload/request/LoginRequest.java
index 8b6bedf..de32475 100644
--- a/src/main/java/com/bezkoder/springjwt/payload/request/LoginRequest.java
+++ b/src/main/java/com/bezkoder/springjwt/payload/request/LoginRequest.java
@@ -1,6 +1,6 @@
package com.bezkoder.springjwt.payload.request;
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
public class LoginRequest {
@NotBlank
diff --git a/src/main/java/com/bezkoder/springjwt/payload/request/SignupRequest.java b/src/main/java/com/bezkoder/springjwt/payload/request/SignupRequest.java
index 899f199..7df48dc 100644
--- a/src/main/java/com/bezkoder/springjwt/payload/request/SignupRequest.java
+++ b/src/main/java/com/bezkoder/springjwt/payload/request/SignupRequest.java
@@ -1,8 +1,10 @@
package com.bezkoder.springjwt.payload.request;
-import java.util.Set;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
-import javax.validation.constraints.*;
+import java.util.Set;
public class SignupRequest {
@NotBlank
diff --git a/src/main/java/com/bezkoder/springjwt/security/WebSecurityConfig.java b/src/main/java/com/bezkoder/springjwt/security/WebSecurityConfig.java
index 3114f6b..7c050d9 100644
--- a/src/main/java/com/bezkoder/springjwt/security/WebSecurityConfig.java
+++ b/src/main/java/com/bezkoder/springjwt/security/WebSecurityConfig.java
@@ -1,31 +1,24 @@
package com.bezkoder.springjwt.security;
+import com.bezkoder.springjwt.security.jwt.AuthEntryPointJwt;
+import com.bezkoder.springjwt.security.jwt.AuthTokenFilter;
+import com.bezkoder.springjwt.security.services.UserDetailsServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
-//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
-import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-import com.bezkoder.springjwt.security.jwt.AuthEntryPointJwt;
-import com.bezkoder.springjwt.security.jwt.AuthTokenFilter;
-import com.bezkoder.springjwt.security.services.UserDetailsServiceImpl;
-
@Configuration
-@EnableGlobalMethodSecurity(
- // securedEnabled = true,
- // jsr250Enabled = true,
- prePostEnabled = true)
+@EnableMethodSecurity
public class WebSecurityConfig { // extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsServiceImpl userDetailsService;
@@ -84,10 +77,11 @@ public PasswordEncoder passwordEncoder() {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable()
- .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
- .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
- .authorizeRequests().antMatchers("/api/auth/**").permitAll()
- .antMatchers("/api/test/**").permitAll()
+ .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
+ .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
+ .authorizeHttpRequests()
+ .requestMatchers("/api/auth/**").permitAll()
+ .requestMatchers("/api/test/**").permitAll()
.anyRequest().authenticated();
http.authenticationProvider(authenticationProvider());
diff --git a/src/main/java/com/bezkoder/springjwt/security/jwt/AuthEntryPointJwt.java b/src/main/java/com/bezkoder/springjwt/security/jwt/AuthEntryPointJwt.java
index 903f6a8..4056c6a 100644
--- a/src/main/java/com/bezkoder/springjwt/security/jwt/AuthEntryPointJwt.java
+++ b/src/main/java/com/bezkoder/springjwt/security/jwt/AuthEntryPointJwt.java
@@ -1,13 +1,9 @@
package com.bezkoder.springjwt.security.jwt;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
@@ -15,7 +11,9 @@
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
@Component
public class AuthEntryPointJwt implements AuthenticationEntryPoint {
diff --git a/src/main/java/com/bezkoder/springjwt/security/jwt/AuthTokenFilter.java b/src/main/java/com/bezkoder/springjwt/security/jwt/AuthTokenFilter.java
index 2b3b6d3..15788f3 100644
--- a/src/main/java/com/bezkoder/springjwt/security/jwt/AuthTokenFilter.java
+++ b/src/main/java/com/bezkoder/springjwt/security/jwt/AuthTokenFilter.java
@@ -1,12 +1,10 @@
package com.bezkoder.springjwt.security.jwt;
-import java.io.IOException;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.bezkoder.springjwt.security.services.UserDetailsServiceImpl;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +15,7 @@
import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;
-import com.bezkoder.springjwt.security.services.UserDetailsServiceImpl;
+import java.io.IOException;
public class AuthTokenFilter extends OncePerRequestFilter {
@Autowired
@@ -57,7 +55,7 @@ private String parseJwt(HttpServletRequest request) {
String headerAuth = request.getHeader("Authorization");
if (StringUtils.hasText(headerAuth) && headerAuth.startsWith("Bearer ")) {
- return headerAuth.substring(7, headerAuth.length());
+ return headerAuth.substring(7);
}
return null;
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index d02fe7a..df50182 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,10 +1,8 @@
-spring.datasource.url= jdbc:mysql://localhost:3306/testdb?useSSL=false
-spring.datasource.username= root
-spring.datasource.password= 123456
-
-spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
-spring.jpa.hibernate.ddl-auto= update
-
+spring.datasource.url=jdbc:mysql://localhost:3306/testdb?createDatabaseIfNotExist=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Jakarta&useSSL=false&allowPublicKeyRetrieval=true
+spring.datasource.username=root
+spring.datasource.password=root
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
+spring.jpa.hibernate.ddl-auto=update
# App Properties
-bezkoder.app.jwtSecret= bezKoderSecretKey
-bezkoder.app.jwtExpirationMs= 86400000
\ No newline at end of file
+bezkoder.app.jwtSecret=bezKoderSecretKey
+bezkoder.app.jwtExpirationMs=86400000